【发布时间】:2018-05-25 02:29:37
【问题描述】:
所以,我有以下场景:
我正在开发一个供不同公司使用的 iOS 应用程序。 对于每家公司,存在一些差异:
- 应用图标
- 主题颜色
- 图片(例如,公司徽标)
- 字符串(例如,公司名称)
最好的方法是编写一个代码,然后为每个应用程序覆盖一些值和资产。
在 Android 中,我可以通过重写资源来为每个公司创建一个库模块(具有应用程序的核心)和一个应用程序模块(没有 Java 代码),从而轻松实现这一点。
我正在尝试在 XCode 上开发相同的结构,但我不清楚这样做的方式。 经过简短的研究,我考虑了一些选项:框架、静态库和子项目。
哪一种是正确的做法?我应该考虑使用依赖项/包管理器(如 Swift 包管理器、CocoaPods 或 Carthage)吗?
这些包管理器是 git 依赖的?因为我正在使用 SVN,此时切换到 Git 是不可行的。
项目设置:
XCode 9
斯威夫特 4
【问题讨论】:
-
如果您可以完全控制项目,另一种选择是具有多个目标的单个工作区/项目。这样,您将拥有一个具有不同(每个目标)资产和设置的通用代码库。
-
您的问题的简单答案是,是的,使用 one project 和 variations。 (请注意,Swift 包管理器、CocoaPods、Carthage 之类的东西在这里是无关紧要的。)有很多方法可以实现这一点 - 其他人已经给出了很多很好的指导。
-
(顺便说一句,永远不要使用可可豆荚。迦太基很棒。)
-
有一件事是,回想一下故事板在 iOS 开发中是非常固有的。确实,您会很高兴听到 Xcode/iOS固有地包含给定类/屏幕的“备用故事板”的想法。 (例如 - 很简单,您可以(如果您愿意)为 iPhone 和 iPad 这样做。)根据您的具体需求,这可能对您有用。