我正在使用Ionic 4框架开发应用程序,目前正在尝试为iOS构建它并将其发布到App Store。我收到的错误是当我尝试在Xcode中运行应用程序时,它将在链接阶段失败,并显示以下错误:
ld:架构x86_64 clang的346个重复符号:错误:链接器 命令失败,退出代码为1(使用-v查看调用)。
这之前是重复符号的列表,如下所示:
中的重复符号_OBJC_IVAR _ $ _ FIRInstanceIDURLQueryItem._name: /Users/james/Library/Developer/Xcode/DerivedData/Jambox-ataoinheliizvyaczvbklhkqvhpf/Build/Products/Debug-iphonesimulator/FirebaseInstanceID/libFirebaseInstanceID.a(FIRInstanceIDURLQueryItem.o) Jambox / Plugins / cordova-plugin-firebase / FirebaseInstanceID.framework / FirebaseInstanceID(FIRInstanceIDURLQueryItem_ce817fff617a4255d51c2a25da32a1f0.o)
这些与以下框架有关:
GoogleUtilities.framework
nanopb.framework
FirebaseCore.framework
我已经尝试了一些解决此问题的方法,但是都没有成功:
1)。从其他链接器标记中删除-ObjC和$(继承)-这将导致应用程序成功构建和链接,但在启动时因以下错误而崩溃:
***由于未捕获的异常'NSInvalidArgumentException'而终止应用程序,原因:'+ [FIRApp registerAsConfigurable:]:无法识别的选择器已发送给类 0x1080bc178'
2)。删除重复符号列表中的每个框架-这有助于减少重复符号的数量。我可以将其减少到65个重复的符号,直到必须删除GoogleUtilities.framework,这会导致构建失败并显示以下错误:
x86_64体系结构的未定义符号:
从以下位置引用的“ _OBJC_CLASS _ $ _ GULObjectSwizzler” FirebasePerformance(FPRObjectInstrumentor_f65d32035cadef24185912716f0b12f9.o)中的objc-class-ref FirebasePerformance中的objc-class-ref(FPRNetworkTrace_3053ec2ab59f2fcfec4b18c29e4b4cec.o) FirebasePerformance中的objc-class-ref(FPRNSURLConnectionInstrument_5611d225f62417fa73742554b6a45401.o) ld:找不到架构x86_64的符号clang:错误:链接器 命令失败,退出代码为1(使用-v查看调用)
3)。删除DerivedData文件夹-执行此操作后出现相同的错误。
4)。删除和添加iOS平台-同样的错误。
答案 0 :(得分:0)
就我而言,当同时使用phonegap-plugin-push和cordova-plugin-firebase-analytics时会出现此问题。我在此issue thread中找到了解决方法。
基本上,转到Xcode中的“项目导航器”,然后“构建阶段”,展开“使用库链接二进制文件”,单击“ +”,然后添加“ libGoogleToolboxForMac.a”和“ libPodsYourProjectName.a”,然后重做构建。 / p>