我更新了Xcode到11.1版本后出现了预期的错误:
备注2:iOS应用程序中没有使用WKInterfaceController或者WatchKit。它仅在WatchAppExtension部分中使用。
我所尝试的方法如下:当我搜索Undefined symbols for architecture x86_64类型的错误时,通常会有许多不同的建议。尽管我认为这并不依赖于架构,但我尝试在所有目标中将构建活动架构仅设置为no。最常建议的在搜索路径中添加$(inherited)已经在之前完成。
检查了.m文件的目标,它们都没问题。
我甚至去注释了所有使用WKInterfaceController的代码。之后并没有任何变化。我还删除了watch app,但不确定是否正确地执行了_OBJC_CLASS_$_WKInterfaceController检查。
我使用
然后我按建议从iOS应用目标中删除了WatchKit。自那以后,我一直遇到以下错误:在构建iOS模拟器时,无法使用WatchKit。
备注:x86_64部分取决于设备/模拟器的选择。如果我选择真实设备,它会为arm64提供相同的错误。因此,我不认为这是一个架构问题,也因为包含WKInterfaceController的框架只是标准的watchOS框架Watchkit。对于x86_64架构未定义符号:
"_OBJC_CLASS_$_WKInterfaceController",引用自: objc-class-ref in INFOnlineLibrary(IOLWatchKitHelper.o) ld: symbol(s) not found for architecture x86_64 clang: error: linker command failed with exit code 1 (use -v to see invocation)未定义符号:_OBJC_CLASS_$_WKInterfaceController
备注2:iOS应用程序中没有使用WKInterfaceController或者WatchKit。它仅在WatchAppExtension部分中使用。
我所尝试的方法如下:
- 第一件事是将WatchKit框架添加到WatchApp和WatchAppExtension目标中。
file WatchKit.framework
命令检查WatchKit.framework设备支持文件,发现其支持arm64。然后手动添加该库到“libraries”,在设备上运行,但仍然无法正常工作。