链接器命令失败,退出代码为1; 架构armv7s的未定义符号。
这是我第一次尝试将二进制文件(新版iOS应用程序,而不是全新的应用程序)上传到iTunes商店。 当我尝试创建存档时,我收到三个Apple Mach-o linker errors
,这些Apple Mach-o linker errors
在问题导航Apple Mach-o linker errors
中显示为红色。
这是出现的:
ld: warning: ignoring file /Users/alinam/Library/Developer/Xcode/DerivedData/Latina_1-bklvousdwnrhhgenrxpftegwerkb/Build/Intermediates/ArchiveIntermediates/Latina 1/BuildProductsPath/Release-iphoneos/libCordova.a, file was built for archive which is not the architecture being linked (armv7s): /Users/alinam/Library/Developer/Xcode/DerivedData/Latina_1-bklvousdwnrhhgenrxpftegwerkb/Build/Intermediates/ArchiveIntermediates/Latina 1/BuildProductsPath/Release-iphoneos/libCordova.a Undefined symbols for architecture armv7s: "_OBJC_METACLASS_$_CDVViewController", referenced from: _OBJC_METACLASS_$_MainViewController in MainViewController.o "_OBJC_CLASS_$_CDVViewController", referenced from: _OBJC_CLASS_$_MainViewController in MainViewController.o` ld: symbol(s) not found for architecture armv7s clang: error: linker command failed with exit code 1 (use -v to see invocation)`
在一个现有的讨论中,我读到它可能与二进制与库的链接有关。
那么,在Build Phases -> Link Binary With Libraries the libCordova.a shows up red (missing?)
。
如果是这样,我如何以及在何处获得它,然后我该怎么做呢?
更新:
我通过在应用程序的Build Settings -> Architectures -> Valid Architectures
删除armv7s
和arm64
(并只留下armv7
)解决了无法归档应用程序的问题。
现在看起来像这样 。
我已经保留了CordovaLib.xcodeproj -> Build Settings -> Architectures
,如下所示 。
所以我有一个新问题:我是否可以简单地从有效架构中删除armv7s
和arm64
而不会产生任何后果? 该应用程序是否应该在所有设备上运行? 在我读过的所有相关讨论中,我找不到明确的答案。