2

我想在我现有的应用程序(目标 iOS12)中添加一个 WatchKit 扩展(iOS13+ 支持 SwiftUI),同时保持两个代码库分开(两个 repos)。

  • 如何将 WatchKit 扩展代码与 Mobile One 分开?
  • 我的带有 SwiftUI 的 Watch App 是否仅适用于使用 WatchOS 6 和 iOS13 的用户,而不影响使用 iOS12 的现有用户?
  • 应用程序二进制大小增加如何?

谢谢阅读!

4

1 回答 1

2

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

两个应用程序的分离:

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

两个应用程序的独立性:

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

尺寸:

每个项目将获得单独的产品,独立应用只有一个 xxx.app,而新项目 xxx.app、Watch.app 和 Watch Extension.appex。所以应该没有开销。

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

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

于 2020-02-16T13:12:28.347 回答