我有3个项目:
- 我自定义开发的框架“XXX.framework”(依赖于第 3 方“YYY.framework”)。两个框架对于真实设备和模拟器都有不同的版本,因此它们构建的架构不同
- Objc-C 'DemoObjC.app' 和 Swift 'DemoSw.app' 中的 2 个演示应用程序使用了我的 'XXX.framework'。
我将我的自定义“XXX.framework”链接到这两个分别构建和正常运行的演示应用程序。
但是,当我将 3 个项目嵌入工作区以在一个窗口中同时处理所有项目时,我面临着奇怪的行为。有时我无法在设备或模拟器上运行应用程序。我的意思是有时它可以正常构建和运行,但是没有任何更改它就会失败。或者它可以在模拟器上正常运行但不能在真实设备上运行,但是在 XCode 重新启动后可能会发生它已经可以在设备上运行但不能在模拟器上运行的情况。我尝试清理项目,删除 DerivedData,重新启动 XCode,然后重新启动,但它只对成功运行几次有帮助,之后我仍然会出现意外行为。
例如,在工作区中,我尝试在设备上运行“DemoObjC.app”,我得到了
ld: warning: ignoring file /Path_Here/SIMULATOR/YYY.framework/YYY,
missing required architecture arm64 in file /Path_Here/SIMULATOR/YYY.framework/YYY, (2 slices)
Undefined symbols for architecture arm64:
<List of files that can't be find>
我不明白为什么当我在设备上运行它时它在 SIMULATOR 上失败?项目和目标似乎配置得很好,因为单独的项目可以正常构建和运行。
或者当我尝试在模拟器上运行时出现错误:
ignoring file /Path_Here/NOT_A_SIMULATOR/YYY.framework/YYY,
missing required architecture x86_64 in file /Path_Here/NOT_A_SIMULATOR/YYY.framework/YYY (2 slices)
Undefined symbols for architecture x86_64:
XCode 8.2 和 8.2.1 中的相同问题
任何胶水有什么问题吗?我倾向于认为这是与 XCode 相关的问题。