我已接近完成我的第一个相对简单的Xcode项目(自定义安装程序),我需要做22次构建。是的,这不是一个错字!每个版本的不同之处是PRODUCT_NAME,这是一个资源包文件夹中的源文件,以及一个表明该软件是否为试用版的变量。
从我到目前为止所读到的内容来看,复制现有的目标似乎是在只有几个版本的情况下实现它的方法,但对于22来说仍然如此吗?这似乎是一项非常多的工作。我想到的是一种更改PRODUCT_NAME的方法,即复制到Resources文件夹的源文件和试用模式boolean。但是我被困住了。
感谢
答案 0 :(得分:2)
我的直觉反应是22个不同的构建只有一个源文件不同...
问题不能转过来吗?在一个版本中包含所有22个不同版本的应用程序,并在.app文件夹中提供22个不同的密钥/许可证文件,每个文件解锁22个版本中的一个。
答案 1 :(得分:2)
我过去完成此任务的一种方法是使用本地化。当您使用NSLocalizedString
风格的宏时,其中一些宏能够指定tableName(即,与默认值不同的字符串文件)。然后,每当我需要不同品牌的构建时,我只需使用适当的键值对创建一个新的.strings文件。
然后我有一个构建目标,用于使用默认值构建代码,第二个目标使用构建的代码并将相应的.strings文件复制到其正确的位置。这非常有效,并且允许我们管理许多不同的构建风格。
答案 2 :(得分:1)
我可能会编写一个使用.xcodeproj模板和sed
生成所有必要组合的脚本。
答案 3 :(得分:1)
您可能需要查看CMake以维护此大量构建。
脚本编写当然可以完成工作,但是一旦项目增长到大量文件,或者如果您发现自己正在更改构建数量,更改脚本可能会变得毛茸茸。 CMake将允许您组织这些脚本,因此将来至少可以更容易地进行修改。