2

我创建了一个新的“可可触摸框架”的目标,我叫MyApp的 iPad的项目称为MyAppCore,以把一些常用的代码在那里的意图。总的来说,它的效果很好,但是,我在添加Google Analytics提供的静态库时遇到了问题。使用两个App和可可触摸框架静态库目标

我希望能够使用谷歌Analytics(分析)不仅在MyApp的目标,但MyAppCore目标内为好。为了构建这两个目标,我必须将两个目标与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. 

我如何可以共享两个目标之间的谷歌Analytics(分析)的成功之路?

+0

您是否找到解决方案? –

回答

1

我在MyAppCore目标中创建了Google Analytics的包装类(无论如何,它都非常方便)来解决这个问题。所有对Google Analytics的访问都将通过这个包装。这样,直接使用Google Analytics的唯一目标是MyAppCore,因此我只需将该目标与Google Analytics关联即可。

这并不能解决我的应用程序目标和Cocoa Touch Framework之间共享静态库的根本问题,但为此目的,它的工作原理也一样。

0

即使您的静态库依赖于外部静态库,也请不要链接它。您的主应用程序将链接您的图书馆和第三方图书馆。静态库是一堆内置的代码,所以你有两个副本来处理你现在正在做的事情。

您应该仍然能够引用第三方库的头文件,并且事情应该在静态库上进行编译而不会有任何警告。

在我的应用程序中,我有两个静态库。 “Wraith”依赖于“PhilosophersStone”,该应用依赖于两者。 (构建阶段中的目标依赖关系)

“Wraith”不与“PhilosophersStone”链接,主要应用程序链接与两者都有关联。 (Link Binary with Library in Build Phases)

+1

谢谢你的回答。这在我的情况下不起作用,可能是因为MyAppCore不是一个静态库(如你的例子中的Wraith)。 MyAppCore是一个动态框架,XCode称之为“Cocoa Touch Framework”。不是“可可触摸静态库”。 – zath

相关问题