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

标签 ios xcode apple-watch watchos-2 xcode-scheme

我有一个带有 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 中打开项目,您应该很高兴看到“构建阶段”部分,转到那里并删除“目标依赖项”和“嵌入应用程序扩展”中的旧扩展引用,并将其替换为新的。完成后返回到 project.pbxproj 并撤消更改并将 WatchOS 目标设置回 productType = "com.apple.product-type.application.watchapp2";

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

关于ios - 使用 Xcode 上的 App 和扩展复制 WatchOS2 的目标,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33000527/

相关文章:

iphone - 为什么 "Run > Run with Performance Tool > Shark"在 Xcode 中总是灰色的?怎么称呼呢?

ios - 如何快速清除ImageView?

ios - 调试堆栈跟踪?

ios - 将 presentModalViewController 与 Storyboard一起使用

push-notification - WatchKit handleActionWithIdentifier : forRemoteNotification is not called

swift - 接口(interface)未定义 View Controller 类

ios - Xcode 8 beta 2/IOS10 beta 2/WatchOS 3 beta 2 - 配对的 Apple Watch 没有符号?

ios - 如何根据内容大小获取 CollectionViewCell 内容高度?

xcode - 无法在Xcode 9中对我的Swift文件进行重构

iOS 7 - 静默推送通知