两个谷歌豆荚之间的重复符号



我知道duplicate symbol是一个反复出现的问题,但这个问题很特别,或者至少我在 iOS 开发方面的知识对我没有帮助。

我曾经在我的最终应用程序中使用GooglePlayGames(GPG),在我的SDK中使用GoogleCloudMessaging (GCM),但是由于某种原因,今天事情开始爆炸式增长(想法:由于上次GCM更新,但我无法获得旧版本)

考虑到我的SDK中GCM的最新版本,我有:

豆荚文件

pod 'MySDK'                 # All good
pod 'Google/CloudMessaging' # Nothing special...

输出

$ pod update
Update all pods
Updating local specs repositories
Analyzing dependencies
Downloading dependencies
...
Installing GGLInstanceID (1.1.5)                 # Dependencies
Installing Google (1.3.2)                        # relative to GCM
Installing GoogleCloudMessaging (1.1.2)            
Installing GoogleIPhoneUtilities (1.1.1)
Installing GoogleInterchangeUtilities (1.1.0)
Installing GoogleNetworkingUtilities (1.0.0)
Installing GoogleSymbolUtilities (1.0.3)
Installing GoogleUtilities (1.1.0)
...
Generating Pods project
Integrating client project

在我的最终申请中:

豆荚文件

pod 'GooglePlayGames' # Nothing special...

输出

$ pod update
Update all pods
Updating local specs repositories
Analyzing dependencies
Downloading dependencies
...
Installing GoogleAppUtilities (1.0.0)           # Dependencies relative
Installing GoogleAuthUtilities (1.0.1)          # to GPG
Installing GooglePlayGames (5.0)
Installing GooglePlusOpenSource (1.7.1)
Installing GoogleSignIn (2.4.0)
...
Generating Pods project
Integrating client project

当我构建最终应用程序时,这是我遇到的错误(显式但找不到任何解决方案......

duplicate symbol _OBJC_CLASS_$_GIPLocale in:
/Users/Path/To/App/Pods/GoogleIPhoneUtilities/Libraries/libGIP_Locale.a(GIPLocale.o)
/Users/Path/To/App/Pods/GooglePlayGames/gpg-cpp-sdk/ios/gpg.framework/gpg(GIPLocale.o)

据我了解,我已经GIPLocale两次,这使我有重复的符号。如果我们看一下相关的 Pods,一个属于GPG,另一个属于GCM .

我尝试了很多事情,但没有成功。这可以很容易地用一个空项目重现,并在同一 Podfile 中添加这两个依赖项。请注意,必须禁用ENABLE_BITCODE

可能是某个愚蠢的东西,在某个地方,在 Xcode 配置中丢失了......

我在Google Clound Messaging Github上创建了同样的问题,答案很清楚,这是他们需要修复的错误。

希望它很快就会到来。

您是否尝试过删除第一个库(libGIPLocale.a)? 这听起来绝对像是一个问题,两个库都直接使用相同的内部库(所以真正的修复不是你这边),但如果他们试图获取的代码是相同的,那么简单地不尝试链接副本可以很好地解决你的链接问题。

最新更新