在 Xcode 上使用 App 和扩展复制 WatchOS2 的目标
Duplicating target for WatchOS2 with App and Extension on Xcode
我有一个包含 WatchOS2 目标和扩展的项目。我想复制 WatchOS App 目标和扩展。但是,当我复制 WatchOS App 目标时,它仍然链接到旧扩展。由于我们不再有权访问 WatchOS 应用程序的构建阶段,因此我无法在嵌入应用程序扩展阶段更改它。
初始状态
- WatchAppTarget1(嵌入扩展 - WatchAppExtension1)
- WatchAppExtension1
最终状态
- WatchAppTarget1(嵌入扩展 - WatchAppExtension1)
- WatchAppExtension1
- WatchAppTarget-Duplicate(嵌入扩展仍然指向 - WatchAppExtension1)
- WatchAppExtension-重复
是否可以更改 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=]
我有一个包含 WatchOS2 目标和扩展的项目。我想复制 WatchOS App 目标和扩展。但是,当我复制 WatchOS App 目标时,它仍然链接到旧扩展。由于我们不再有权访问 WatchOS 应用程序的构建阶段,因此我无法在嵌入应用程序扩展阶段更改它。
初始状态
- WatchAppTarget1(嵌入扩展 - WatchAppExtension1)
- WatchAppExtension1
最终状态
- WatchAppTarget1(嵌入扩展 - WatchAppExtension1)
- WatchAppExtension1
- WatchAppTarget-Duplicate(嵌入扩展仍然指向 - WatchAppExtension1)
- WatchAppExtension-重复
是否可以更改 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=]