我们有五个几乎相同的应用程序,具有一些不同的图标/名称/设置。它们是同一个应用程序的不同“品牌”,只是在几个不同的图标、单独的 AppGroup 和代码中的一些默认设置上有所区别。这些在 Xcode中被创建为它们自己的目标。这是一个代码库,但有 5 个目标指向它。
它开始看起来非常好,有五个不同的目标。但是,我们现在为应用程序添加了两个扩展。一个自定义“NotificationContentExtension”和一个“TodayExtension”(小部件)。由于我们有 5 个不同的目标和 5 个不同的权利/组,我们发现除了将这些扩展添加到每个目标之外没有其他方法可以实现这一点。由于扩展是另一个目标,这意味着我们现在有 15 个不同的目标。
我们现在正在经历极其缓慢的编译时间,因为每次我们打开情节提要时,Xcode 都会为每个(主要)目标编译一次。我不需要构建我的故事板 5 次。或者我的任何其他文件。我有一个应用程序,但有几个不同的文件和一些运行时设置。
这让我感到奇怪——这 15 个目标中的每一个都默认有两种构建配置:RELEASE 和 DEBUG。我注意到可以自定义这些,并添加更多。为什么不添加配置而不是目标?
例如,代替“RELEASE”和“DEBUG”,将它们设为“MYAPP1”、“MYAPP2”、“MYAPP3”等。每个配置都可以有自己的产品名称、图标等,对吧?
有什么好的理由不这样做吗?在处理不同的 AppGroups/Entitlements 等时有可能吗?我们将 CoreData 数据库存储在 AppGroups 中。重要的是,这些应用程序都可以安装在同一设备上而不会相互损坏。据我所知,只要每个配置有几个不同的 FLAG 并自定义代码,这应该不是问题。签约呢?
我阅读了有关该主题的这篇文章/教程,它解释了基础知识并帮助我入门,但要使用数据库和权利等进行实际测试将是一项巨大的工作。