【发布时间】:2017-07-06 15:14:27
【问题描述】:
我正在使用 firebase 作为我在 iOS 中工作的项目的一部分,当我尝试针对 iPhone 6 或 7 模拟器编译代码以进行测试时,我偶然发现了以下链接错误。
Undefined symbols for architecture x86_64:
"_OBJC_CLASS_$_GTMSessionUploadFetcher", referenced from:
objc-class-ref in FirebaseStorage(FIRStorageUploadTask_d5061b1e2b5f1bb249816cc5fc42ff62.o)
"_OBJC_CLASS_$_GTMLogger", referenced from:
objc-class-ref in FirebaseMessaging(GIPReachability_ae5504e4a6a28a1d8997c6f38e8bff8b.o)
"_kGTMSessionUploadFetcherStandardChunkSize", referenced from:
-[FIRStorageUploadTask enqueue] in FirebaseStorage(FIRStorageUploadTask_d5061b1e2b5f1bb249816cc5fc42ff62.o)
"_GTMFetcherStandardUserAgentString", referenced from:
-[FIRAuthBackendRPCIssuerImplementation init] in FirebaseAuth(FIRAuthBackend_ea73237c278bd1b78e1c76db2a16775a.o)
"_OBJC_CLASS_$_GTMSessionFetcher", referenced from:
objc-class-ref in FirebaseStorage(FIRStorageDownloadTask_c390366e83519f6636ca985ecb70e5d0.o)
objc-class-ref in FirebaseStorage(FIRStorage_691ea9ac7cb4d224d37df2ff8a911989.o)
"_OBJC_CLASS_$_GTMSessionFetcherService", referenced from:
objc-class-ref in FirebaseAuth(FIRAuthBackend_ea73237c278bd1b78e1c76db2a16775a.o)
objc-class-ref in FirebaseStorage(FIRStorage_691ea9ac7cb4d224d37df2ff8a911989.o)
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
我使用的是 Xcode 8.2.1,swift 3.0,我的项目中还有以下 Pod 文件
pod 'Braintree'
pod 'Firebase/Auth'
pod 'Firebase/Database'
pod 'Firebase/Core'
pod 'Firebase/Storage'
pod 'Firebase/Messaging'
pod 'Firebase/RemoteConfig'
pod 'GeoFire', :git=>'https://github.com/firebase/geofire-objc.git'
pod 'ObjectMapper', '~> 2.2'
我已经更新了 pod,以防万一有些东西过时了,但没有运气。当我使用 iPhone 4 或 5 模拟器时,代码编译并运行良好。
编辑:
我已将 Build Active architectures 设置为 No,在有效的架构中我列出了 arm64、armv7、armv7s,现在 Objectmapper 失败了,即使在文件中声明了 import ObjectMapper
Use of undeclared type 'Mappable'
任何帮助将不胜感激!提前谢谢你。
乔治。
【问题讨论】:
-
在 XCode 中标记
Build Setting > Build Active Architectures only > YES -
嗨,Sachin,感谢您的建议,但不幸的是,此设置已设置为 YES
-
对不起,应该是
NO。 -
我刚刚尝试过,但现在我遇到了更多类似于我之前遇到的错误
-
我认为我的问题是我的有效架构下有 arm64。我自己没有把它放在那里,我只是注意到它的存在。现在我删除了它的编译。我希望我没有通过删除这个来搞砸任何其他事情