我最近将 Google Cloud Messaging 集成到了一个针对 iOS 7 和 iOS 8 的应用程序中。刚刚下载了 Xcode 7 beta 4 以开始支持 iOS 9,现在我从链接器中收到一个错误:
ld: warning: object file (.../Pods/GoogleInterchangeUtilities/Libraries
/libProtocolBuffers.a(Descriptor.pb.o)) was built for newer iOS version (8.3)
than being linked (7.0)
对于 libProtocolBuffers.a 的部分内容,还有一些类似的。
这是否意味着需要 iOS 8.3 才能使用 GCM 库?如果是这样,为什么 Xcode 6 愉快地吐出代码(在我使用 iOS 7 设备进行的测试中)毫无问题地向 iOS 7.3 发送推送通知?
鉴于它们只是警告,我仍然可以正常编译,但我不想发布错误的代码。
编辑:我给谷歌发了邮件,他们说高层会调查它。同时,如果您正在阅读这篇文章并被警告所困扰,也许还可以发送电子邮件,以便我们鼓励他们处理它。
最佳答案
这实际上意味着所包含库的最小部署目标是 8.3,并且将其与更低的最小部署目标链接会产生此警告。
在这种情况下,库不正式支持低于 8.3 的目标。虽然将此库链接到具有 ower Minimum Deployment Target 的目标仍然有效,但如果有任何仅 8.3 的代码,它可能会在运行时产生崩溃在运行早于 8.3 的系统的设备上执行。
开发人员将 8.3 设置为最低目标是有原因的,并且此警告不应被忽略。在这种情况下它可能是无害的,但在其他情况下它不一定是无害的!
要修复这些警告,请使用旧版本的库或将最低部署目标设置为 8.3。
关于ios - Xcode 7 警告 : object file was built for newer iOS version than being linked,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31843900/