Google SignIn for iOS无法构建,因为它正在寻找不存在的文件

谷歌刚刚将他们的ios登录库更新到3.0.0版 。 在这个过程中,看起来它们也导致库无法构建错误ld: file not found: MY_APP_PATH/Pods/GoogleUtilities/Libraries/libGTM_NSData+zlib.a

我该怎么做才能解决这个问题? 我正在使用Cocoapods。

我大多提出这个问题,以便有一个关于如何解决这个问题的google-able答案。

就像我在上面的问题中所述,问题是由2016年3月22日的谷歌iOS库v3.0.0更新引起的。

我认为导致我的构建错误

考虑到围绕Cocoapods生态系统架构的性能问题, Google Signin Podspec v3.0.0 (我实际上并不建议您遵循该链接)将库GoogleUtilities列为依赖项。

 "dependencies": { "GoogleUtilities": [ "~> 1.0" ], 

GoogleUtilities Podspec v1.2.0使导入它的人可以使用这些文件:

 "vendored_libraries": [ "Libraries/libGTM_iPhone_external.a", "Libraries/libGTM_core_external.a", "Libraries/libGTM_UIFont+LineHeight_external.a", "Libraries/libGTM_SystemVersion_external.a", "Libraries/libGTM_StringEncoding_external.a", "Libraries/libGTM_RoundedRectPath_external.a", "Libraries/libGTM_Regex_external.a", "Libraries/libGTM_NSStringXML_external.a", "Libraries/libGTM_NSStringHTML_external.a", "Libraries/libGTM_NSScannerJSON_external.a", "Libraries/libGTM_NSDictionary+URLArguments_external.a", "Libraries/libGTM_NSData+zlib_external.a", "Libraries/libGTM_KVO_external.a", "Libraries/libGTM_GTMURLBuilder_external.a", "Libraries/libGTM_DebugUtils_external.a", "Libraries/libGTM_AddressBook_external.a", "Libraries/libGTMStackTrace_external.a" ], 

请注意, GoogleUtilities不会使libGTM_NSData+zlib可用。 以前版本的GoogleUtilityies可能确实提供了该文件,但由于上述性能问题,我无法通过查看podspec的先前版本来确认这一点。

我是如何修复构建错误的

我通过将我的GoogleSignIn依赖关系回滚到先前版本2.4.0来修复了构建错误。

为此,请打开Podfile并替换

 pod 'Google/SignIn' 

 pod 'GoogleSignIn', '2.4.0' 

在项目范围内进行搜索和替换,用替换

不幸的是,GoogleSignIn 3.0.0版本需要更新版本的某些依赖项 – 运行pod install不会提取它们,因为它们仍然满足Podspec中的匹配。

你能尝试运行pod update – 它应该获取所有库的最新版本。

我发现只需在应用程序的GoogleUtilities中指定以前版本的GoogleUtilities ,或者使用Google SignIn进行依赖。

'GoogleUtilities', '1.2.0'修正了我遇到的问题。