在 watchOS 5.2 崩溃时找不到适合组合的图像

Posted

技术标签:

【中文标题】在 watchOS 5.2 崩溃时找不到适合组合的图像【英文标题】:No suitable image for Combine found on watchOS 5.2 crash 【发布时间】:2019-08-24 13:04:28 【问题描述】:

信息

我的应用程序在运行 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/

尽管如此,还是没有运气。我认为这是某处的构建设置,但我不知道是哪一个。

【问题讨论】:

【参考方案1】:

我相信您需要做的是使Combine.framework 成为可选链接。出于某种原因,Combine 无法为此使用普通 UI(还没有?),但another thread 中似乎有解决方案。

【讨论】:

以上是关于在 watchOS 5.2 崩溃时找不到适合组合的图像的主要内容,如果未能解决你的问题,请参考以下文章

WatchOS 3 在收到推送通知时崩溃

watchOS 2 HealthKit HKSampleQuery 崩溃

iOS XCode - 为Profile构建时找不到Swift类

Bower:找不到适合 Angular 的版本

Watch Complication 导致 dyld 崩溃:找不到符号:_OBJC_CLASS_$_CLKFullColorImageProvider

XCode 11.3 崩溃,iOS 13.2.2 模拟器 iPhone X 和 watchOS 4.2 Apple Watch 42mm