ios - 将 WatchKit 扩展代码 (git repo) 与现有 iPhone 代码 (repo) 分开

标签 ios xcode swiftui watchos watchos-6

我想将 WatchKit 扩展(在 iOS13+ 上支持 SwiftUI)添加到我现有的应用程序(目标 iOS12),同时保持两个代码库分离(两个存储库)。

  • 如何将 WatchKit 扩展代码与 Mobile One 分离?
  • 我的 SwiftUI watch 应用是否仅适用于使用 WatchOS 6 和 iOS13 的用户,而不影响使用 iOS12 的现有用户?
  • 应用二进制文件大小增加怎么样?

感谢您的阅读!

最佳答案

我不确定是否有更简单的解决方案,但这个应该可行:

两个应用程序的分离:

如果您在 Xcode 中打开源代码管理导航器,您会看到分支、标签和远程属于项目导航器中的主条目,即属于 Xcode 项目。因此,为了拥有单独的存储库,您需要单独的 Xcode 项目,您可以为其分配单独的存储库。
不过,您可以在一个工作区中拥有多个项目,以便所有文件都在此工作区中可用。
要拥有一个独立应用程序和一个带有 watch 扩展的应用程序,只需使用独立应用程序设置一个工作区,然后添加另一个新项目即可。这个新项目需要原始应用程序的所有文件以及 watch 扩展。
由于您还需要一个项目中的文件到另一个项目中,因此您可以将它们从一个项目拖动到新项目,但随后它们将被复制(拖动过程中会显示绿色 + 标记)。通常这不是您想要的,因为您通常不想单独维护两个副本。相反,您可以在查找器中显示此类文件,然后将其从查找器拖动到新项目。在这种情况下,您只能选择复制引用。

两个应用程序的独立性:

由于您有两个独立的项目,因此您可以根据需要在目标的build设置中设置部署目标。

尺寸:

每个项目都会获得单独的产品,独立应用只有 xxx.app,新项目有 xxx.app、Watch.app 和 Watch Extension.appex。所以不应该有任何开销。

编辑(由于 Ouadie 在他的问题中的评论):

我不确定我是否理解您的问题:
通过上述过程,您将获得一个工作区,其中包含两个共享部分文件的独立项目。
“移动项目”与您现在使用的相同。它只有一个专门使用所需源构建的目标(尽管有测试目标)。因此它的大小与现在相同。
“ watch 项目”是新的。它有 3 个目标,“移动”目标、Watch 目标和 Watch Extension 目标(尽管有测试目标)。它是使用共享源和附加监视扩展源构建的。因此它的大小更大,但增加当然取决于您的来源。
由于您有 2 个存储库,因此项目是解耦的,但两个存储库共享一些文件。如果您想将它们完全解耦,您可以将文件从当前项目复制到新项目(而不是仅复制引用),但是您必须维护 2 个副本。
我希望这有帮助!

关于ios - 将 WatchKit 扩展代码 (git repo) 与现有 iPhone 代码 (repo) 分开,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60121468/

相关文章:

ios - 表单中的 SwiftUI 选择器不显示所选行

swift - `withAnimation` 将第一项添加到@State 数组时只做一次动画

ios - Unity iOS RequestStore查看更多信息

ios - distinctUnionOfObjects 不工作

ios - Xcode 9.3.1 组件列表为空,无法下载 iOS 10 模拟器

ios - 带解析的 iMessage 扩展

ios - 仅在发布版本中找不到适用于应用程序的有效 'aps-environment' 权利字符串

swift - TextField ViewModifier 不符合 ViewModifier?

iOS 应用程序被拒绝 - 元数据被拒绝

ios - linkedin 获取个人资料 - 请求失败 : forbidden (403) error swift