信息
我的应用在运行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/
尽管如此,还是没有运气。我认为这是某个地方的构建设置,但是我不会知道哪一个是最模糊的线索。
最佳答案
我相信您需要做的是使Combine.framework
可选链接。由于某种原因,Combine不能为此使用普通的UI(还可以吗?),但是another thread中似乎有解决方案。
关于swift - 在watchOS 5.2崩溃中找不到适合Combine的合适图像,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/57638220/