在 Xcode 上使用 App 和扩展复制 WatchOS2 的目标

Duplicating target for WatchOS2 with App and Extension on Xcode

我有一个包含 WatchOS2 目标和扩展的项目。我想复制 WatchOS App 目标和扩展。但是,当我复制 WatchOS App 目标时,它仍然链接到旧扩展。由于我们不再有权访问 WatchOS 应用程序的构建阶段,因此我无法在嵌入应用程序扩展阶段更改它。

初始状态

最终状态

是否可以更改 WatchOS App Target 以接受重复的扩展作为嵌入的选择(除了手动编辑 .pbxproj)

在浪费了很多时间之后,我发现现在最不烦人的方法是将 WatchOS 应用程序更改为像框架一样运行,因此 Xcode 提供构建阶段部分。

在文本编辑器中打开 project.pbxproj,转到类似/* Begin PBXNativeTarget section */ 的部分,在配置中找到您的 WatchOS 目标(您要更改的目标),它应该有一行:

productType = "com.apple.product-type.application.watchapp2";

将此更改为:

productType = "com.apple.product-type.application";productType = "com.apple.product-type.framework";

现在打开 Xcode 中的项目,您应该很高兴看到构建阶段部分,去那里删除 "Target Dependencies" 和 "Embed App Extension" 中的旧扩展引用,并将其替换为新的。完成后返回 project.pbxproj 并撤消更改并将 WatchOS 目标恢复为 productType = "com.apple.product-type.application.watchapp2";

有时您可能需要为 WatchOS 和 iOS 应用制定全新的构建方案,但这应该可以解决问题![​​=17=]