Objective c 执行22种不同构建的最有效方法
我即将完成我的第一个相对简单的Xcode项目(一个自定义安装程序),我需要进行22次构建。是的,那不是打字错误!每个版本的不同之处在于产品名称、bundle Resources文件夹中的一个源文件以及一个表示软件是否为试用版的变量 从我到目前为止读到的内容来看,当只有几个构建时,复制现有目标似乎是一种方法,但对于22个构建来说,这仍然是正确的吗?这似乎是一个可怕的工作很多。我想到的是一种更改产品名称、复制到Resources文件夹的源文件和试用模式的方法。但是我被卡住了Objective c 执行22种不同构建的最有效方法,objective-c,xcode,macos,xcodebuild,Objective C,Xcode,Macos,Xcodebuild,我即将完成我的第一个相对简单的Xcode项目(一个自定义安装程序),我需要进行22次构建。是的,那不是打字错误!每个版本的不同之处在于产品名称、bundle Resources文件夹中的一个源文件以及一个表示软件是否为试用版的变量 从我到目前为止读到的内容来看,当只有几个构建时,复制现有目标似乎是一种方法,但对于22个构建来说,这仍然是正确的吗?这似乎是一个可怕的工作很多。我想到的是一种更改产品名称、复制到Resources文件夹的源文件和试用模式的方法。但是我被卡住了 谢谢我可能会编写一个脚本
谢谢我可能会编写一个脚本,使用.xcodeproj模板和
sed
来生成所有必要的组合。您可能想检查一下如何维护这么多的构建
编写脚本当然可以完成任务,但是一旦项目增长到大量文件,或者如果您发现自己更改了构建数量,那么更改脚本可能会很麻烦。CMake将允许您组织这些脚本,因此将来至少可以更轻松地进行修改。我的直觉反应是,只有一个源文件不同的22个不同版本是错误的
这个问题不能扭转吗?在一个版本中包含应用程序的所有22个不同版本,并在.app文件夹中提供22个不同的密钥/许可证文件,每个文件解锁22个版本中的一个。我过去实现这一点的一种方法是使用本地化。当您使用
NSLocalizedString
风格的宏时,其中一些宏能够指定一个表名(即,与默认值不同的字符串文件)。然后,每当我需要一个不同品牌的构建时,我就创建一个新的.strings文件,其中包含适当的键值对
然后,我有一个构建目标,该目标使用默认值构建代码,第二个目标使用构建的代码并将适当的.strings文件复制到其适当的位置。这非常有效,允许我们管理许多不同的构建风格。不幸的是,没有。这些是不可复制保护的插件,因此它们需要为单独下载而单独构建。插件-构建一个应用程序并提供不同的插件,每个插件都包含所需的功能。虽然这几乎又带来了22个版本的问题。。。