信息
我的应用程序在运行 watchOS 4 和 5 的 Apple Watch 上崩溃。一些新功能(即Combine
)依赖于 watchOS 6,并且这些方法的使用明确标记为
@available(watchOSApplicationExtension 6.0.0, *)
该应用程序是使用 Xcode 9/10 创建的(我忘了具体是哪个),并以 watchOS 4 为目标。现在,当它使用 Xcode 11 构建并且具有依赖于 Combine 的文件时,它会在 watchOS 5 Apple Watch 上崩溃。
错误是
dyld: Library not loaded: /System/Library/Frameworks/Combine.framework/Combine
Referenced from: /private/var/containers/Bundle/Application/7A361FAB-EBE7-483D-BFD7-E915F15B5B14/Chirp WatchKit App.app/PlugIns/Chirp WatchKit Extension.appex/Chirp WatchKit Extension
Reason: image not found
很明显,Combine
,打得不好。
此外,它不会在 watchOS 5 模拟器中启动,并且错误更能说明问题:
dyld: Library not loaded: /System/Library/Frameworks/Combine.framework/Combine
Referenced from: /Users/willbishop/Library/Developer/CoreSimulator/Devices/C6F36860-E70A-45E6-AC3B-E54DBCEA7C7A/data/Containers/Bundle/Application/1B2EC7C4-731F-4EC1-B23F-09A0B49CD055/Chirp WatchKit App.app/PlugIns/Chirp WatchKit Extension.appex/Chirp WatchKit Extension
Reason: no suitable image found. Did find:
/System/Library/Frameworks/Combine.framework/Combine: mach-o, but wrong architecture
我试过的:
我认为这可能是因为我有 watchOS 6 依赖代码,与 watchOS 5 文件混合在一起。但是,将代码移动到单独的文件后,问题仍然存在。
清理项目
移除
Derived Data/
尽管如此,还是没有运气。我认为这是某处的构建设置,但我不会有最微弱的线索来确定哪个。