我已经创建了一个新的" Cocoa Touch Framework"我的iPad项目中名为 MyApp 的目标名为 MyAppCore ,目的是在其中放置一些常用代码。总的来说,它很有效,但是,我在添加Google Analytics提供的静态库时遇到了问题。
我希望不仅可以在 MyApp 目标中使用Google Analytics,还可以在 MyAppCore 目标内部使用Google Analytics。为了构建两个目标,我必须使用libGoogleAnalyticsServices.a链接这两个目标。这似乎有效,但是当我运行应用程序时,日志会受到如下消息的轰炸:
Class GAI is implemented in both /path/to/MyAppCore.framework/MyAppCore
and /path/to/MyApp.app/MyApp.
One of the two will be used. Which one is undefined.
如何以成功的方式在两个目标之间共享Google Analytics?
答案 0 :(得分:1)
我设法通过为My AnalyticsCore目标创建一个Google Analytics的包装类来解决这个问题(无论如何都非常方便)。对Google Analytics的所有访问都将通过此包装。这样,直接使用Google Analytics的唯一目标是MyAppCore,因此我只需将该目标与Google Analytics相关联。
这并没有解决在我的应用程序目标和Cocoa Touch Framework之间共享静态库的根本问题,但为了这个目的,它也能正常工作。
答案 1 :(得分:0)
即使您的静态库依赖于外部静态库,也不要链接它。您的主应用程序将链接您的图书馆和第三方图书馆。静态库是一堆构建的代码,因此您可以按照现在的方式执行所有操作的两个副本。
您仍然可以引用第三方库的标题,并且应该在静态库上编译而没有任何警告。
在我的应用程序中,我有两个静态库。 "幽灵"取决于" PhilosophersStone"并且应用程序依赖于两者。 (构建阶段中的目标依赖性)
"幽灵"没有链接" PhilosophersStone",主要应用程序链接两者。 (链接二进制文件与构建阶段的库)