缺少架构。使用 Watch OS 5.0 及更高版本 SDK 构建的应用程序必须包含其他架构

Posted

技术标签:

【中文标题】缺少架构。使用 Watch OS 5.0 及更高版本 SDK 构建的应用程序必须包含其他架构【英文标题】:Missing architecture. Apps built with Watch OS 5.0 and later SDKs must contain additional architectures 【发布时间】:2018-12-18 20:19:44 【问题描述】:

ERROR ITMS-90733

WatchApp 目标在有效架构下使用“armv7k”; WatchApp 扩展在有效架构下同时使用“armv7k”和“i386”。

当我构建并尝试部署和构建到 AppStoreConnect 时,我收到了此帖子中附加的错误消息。

我尝试了 arm64_32、armv7 和 armv64 的几种组合,但都没有成功!任何帮助深表感谢。谢谢。

【问题讨论】:

有同样的问题。 @mhamdouchi 你找到解决方案了吗? 还没有。我暂时找到了解决方法。由于暗模式和其他一些功能,我使用 Xcode 10.1 进行开发。我使用 Xcode 9.4.1 使用 fastlane 命令进行部署。我希望 Apple 在下一个 Xcode 版本中提出解决方案!!!如果我在那之前找到解决方案,我会告诉你的。 【参考方案1】:

尝试在您的手表扩展构建设置中添加 arm64_32 架构,而不是手表。

【讨论】:

我尝试在构建设置下将 arm6_32 添加到 Watch 扩展,但仍然收到相同的错误消息! 有效架构是否需要以某种方式排序?我目前拥有的是:armv7k,i386,arm6_32【参考方案2】:

我通过将 Build System 设置从 Legacy 切换到“New Build System”解决了这个问题。您可以通过点击 Xcode 的 File -> Workspace Settings 找到它。

您还必须确保将有效架构和架构设置设置为默认值(只需导航到每个并按退格键)。

【讨论】:

我确实切换回“新构建系统”,并使用退格键默认我的所有有效架构。现在,我有一个与 Adob​​eMobileLibrary 相关的新错误:ld: warning: ignoring file .../AdobeMobileLibrary_Watch.a, missing required architecture arm64_32 in file .../AdobeMobileLibrary_Watch.a (3 slices) Undefined symbols for architecture arm64_32: "_OBJC_CLASS_ $_ADBMobile",引用自:WatchStore.o 中的 objc-class-ref ExtensionDelegate.o 中的 objc-class-ref SharedStore.o ld 中的 objc-class-ref:未找到架构 arm64_32 的符号 您在 WatchApp 扩展中使用 Adob​​eMobileLibrary 吗?只需导航到 WatchApp Extension 目标,然后 Build Settings 并查找 Other Linker Flags 字段。从字段中删除所有不必要的库。【参考方案3】:

所以我通过更新 Adob​​eMobileLibrary 解决了这个问题。这是文件的链接:https://github.com/Adobe-Marketing-Cloud/mobile-services/releases

【讨论】:

以上是关于缺少架构。使用 Watch OS 5.0 及更高版本 SDK 构建的应用程序必须包含其他架构的主要内容,如果未能解决你的问题,请参考以下文章

PubNub GCM通知无法在Android 5.0及更高版本上运行

Android BLE write Characteristic 方法在 Android 5.0 及更高版本中总是返回 false

如何在 BlackBerry 5.0 及更高版本的 J2ME 代码中使用 wifi 调用 web 服务? [复制]

Fody 仅在 MSBuild 16 及更高版本上受支持。当前版本:15

如何在 BlackBerry 5.0 及更高版本的 J2ME 代码中使用 wifi 调用 HTTP URL?

处理新版本 Android(3.x 及更高版本)中缺少的 MENU 按钮