Hi Carlos,

thanks for the solutions, see my remarks inline.

On Sun, Sep 20, 2015 at 11:07 AM, Carlos Santana <csantan...@gmail.com> wrote:
> Hi Tobias
>   You should be able to achieve what you want today.
> I have done it here in some our project's.
>
> Today you should be able to include and distribute a library inside a
> plugin.
> 1) Best choice is to compile and package your library as a .framework
> here is sample on how to specify:
> <framework src="src/ios/WorklightSDK/Frameworks/sqlcipher.framework"
> custom="true" />
>
> Distributing a framework is better than a static lib, it allows better
> flexibility and better handle for different architectures

That's what I have today - but I had problems with the symlinks (from
Versions/Current -> Versions/A) and with npm. I also had problems with
codesigning - although it works, the codesign -verify complains.

>
> 2) Second choice will be compile and package your library as a static lib
> SomethingLib.a
> <source-file src="src/ios/WorklightSDK/libWorklightStaticLibProject.a"
> compiler-flags="-Obj-C" framework="true" />

that would have been my fallback.

>
> This is is an old example, we moved away from static libs, and now using
> .framework for everything

>
> 3) Third choice is to distribute your source code by itself .h and .m
> You can see any of the core cordova plugins (i.e. camera, contacts)
>
> No need to distribute you .xcodeproj if you can do it with one of these 3
> options

yes. but my lib has 40 files...this gives a rather big plugin.xml.
however, having the .xcodeproj also makes it easier for development.

>
> If you are having trouble getting this done today, please open a JIRA issue
> to see how can we fix it.
>
> Distributing a .xcodeproj it can be a bit complex, and we know we package
> CordovaLib as xcodeproj :-).
>
> Today cordova doesn't support workspaces, that's plan for cordova-ios@5 [1]
> I think after cordova supports workspaces will be easier to manage multiple
> xcodeprojects inside a single workspace, to able to compile a target
> resolving all dependencies within the workspace.

that would be cool.
>
> At work we are looking closely at workspaces, after this is done then we
> can see how can distribute our native ios code (i.e. in source code) once
> to cococapods, and then have a cordova plugin depend on it [2].
>
> Maybe all this doesn't cover your exact use case, so maybe you can open a
> enhancement lira item, and put some seudo code there on what exactly you
> want to achieve.
>
> I know Windows supported the attribute type="projectReference" [3] for the
> <framework> element, the tricky part with ios is dealing with dependencies
> conflicts of other puglins, and the user's own code.

I don't think it is too complicated. If I compare the pbxproj before
and after I add my library manually,
it only has a few additions. adding the project to the frameworks is
already handled - the only thing missing is copying the sources and
adding the proxy target to the link section. I will look into it when
I get some spare time.

>
> In terms of copying files that you can't do with <assets> or
> <resource-file> you can use a plugin hook, do it there at plugin install
> event. we have done this also at work.

ok. I'll try this as well.
thanks alot.

regards, toby

>
> [1]: https://issues.apache.org/jira/browse/CB-5921
> [2]: https://issues.apache.org/jira/browse/CB-7942
> [3]:
> http://cordova.apache.org/docs/en/edge/plugin_ref_spec.md.html#Plugin%20Specification_framework_element
>
> -- Carlos
>
> On Sat, Sep 19, 2015 at 4:38 PM Anis KADRI <anis.ka...@gmail.com> wrote:
>
>> The library that we use (node-xcode) supports: System Frameworks, Custom
>> Frameworks (ones you would drag&drop into your project) and static
>> libraries. It does not support XCode subprojects as far as I know.
>> If you want to add support for it, you're more than welcome. Repository is
>> right here: https://github.com/alunny/node-xcode
>>
>> Anis
>>
>> On Fri, Sep 18, 2015 at 11:14 PM Tobias Bocanegra <tri...@apache.org>
>> wrote:
>>
>> > Hi,
>> >
>> > I want to add a plugin to a ios/osx project. the plugin contains a
>> > .xcodeproj of a static library, incuding the sources. I want to avoid
>> > distributing the binary .a in the plugin.
>> >
>> > I tried various ways of how to specify this library, with <framework>
>> > with <src framework=true> etc. but it never adds the lib.a to the
>> > linker section in build phases.
>> >
>> > looking at the pbxproj, it looks like it would have to specify a proxy
>> > reference to the library project. which is a bit more complex than
>> > just add the framwork reference.
>> >
>> > Is this something that would be desired by others? If so, I can try to
>> > improve the plugman script to deal property with the library.
>> >
>> > the 2nd problem is, that xcode usually has the sources beside the
>> > xcodeproj. so for example:
>> >
>> > mylib.xcodeprj/
>> > mylib/
>> >
>> > but there is no tag to copy an entire directory. using the <framework>
>> > tag also for the sources, would embed it to the frameworks section,
>> > which is also wrong.
>> >
>> > ideally we would be able to specify the source directory, like
>> >
>> > <framework src="frameworks/osx/mylib.xcodeproj" custom="true"
>> > sources="frameworks/osx/mylib" />
>> >
>> > OR
>> >
>> > add a new sub-project tag, like:
>> >
>> > <sub-project src="frameworks/osx/mylib"
>> > project="frameworks/osx/mylib.xcodeproj" framework="true"
>> > link-targets="libMyLib.a" />
>> >
>> > WDYT?
>> >
>> > Regards, Toby
>> >
>> > ---------------------------------------------------------------------
>> > To unsubscribe, e-mail: dev-unsubscr...@cordova.apache.org
>> > For additional commands, e-mail: dev-h...@cordova.apache.org
>> >
>> >
>>

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@cordova.apache.org
For additional commands, e-mail: dev-h...@cordova.apache.org

Reply via email to