我有下面的场景:
我正在开发一个iOS应用程序,它被不同的公司使用,每个公司都有一些不同之处:
- 应用程序图标
- 主题颜色
- 图像(例如,公司徽标)
- 字符串(例如,公司名称)
最好的方法是编写一个代码,然后为每个应用程序重写一些值和资产。在Android中,我可以很容易地通过重写资源为每个公司创建一个库模块(带有应用程序的核心)和一个应用程序模块(没有Java代码)来实现这一点。
我试图在XCode中开发相同的结构,但我不清楚具体的方法,经过简单的研究,我考虑了一些选择:框架、静态库和子项目。
哪一个是正确的方法?我应该考虑使用依赖项/包管理器(像Swift包管理器,CocoaPods或Carthage)吗?
这些包管理器是依赖于Git的吗?因为我正在使用SVN,切换到Git在这一点上是不可行的。
项目设置:
X代码9
雨燕4
2条答案
按热度按时间wtlkbnrh1#
我建议你使用目标。
让我向您展示如何使用
assets
/settings
处理这个层次结构。资产
我的
Assets
目录*公用文件夹包含公用
images
*公司1文件夹包含
images
/colors
/certificates
您必须通过仅选择
Company1 > Images
确实需要引用的目标来更改Target Membership
。例如,
common > Assets
需要引用所有targets
。编号
如果需要在每个目标中执行不同的操作,可以对代码执行相同的操作。
就我个人而言,我使用
extension
的强大功能将代码拆分到不同的源文件中,以便能够引用不同的目标。将此文件引用到
Company1
目标将此文件引用到
Company2
目标将此文件引用到所有
targets
您还可以在
Build Settings
中为每个目标传递一些flags
使用这些解决方案,你将能够在Android中做同样的.
ar7v8xwq2#
你可以用Static Framework来开发这类项目。现在,Static Framework有它自己的起起唐斯。
https://www.raywenderlich.com/65964/create-a-framework-for-ios
**注意:**在应用发布期间,不要忘记确保ipa文件的有效负载结构正确。