我有一个iOS应用程序,在开发版本中只有“sysadmin”功能,这些功能在发布版本中被删除。
在内部测试设备上有两个构建的最简单方法是什么,一个在开发模式下,一个在发布模式下在iOS主屏幕上有不同的名称?
目前的情况是,当我们想要测试发布版本时,我必须为每个设备手动重建它。当我们想要切换回来时,我必须再次手动重建应用程序。
答案 0 :(得分:2)
正如LoVo所提到的 - 您将需要不同的应用标识符和捆绑显示名称。以下是我将如何解决问题:
在Project的构建设置中,设置以下值:
将标题生成脚本添加到Xcode项目中。
ruby中的脚本应如下所示:
#!/usr/bin/env ruby
# build type is going to be passed
build_type = ENV["CONFIGURATION"]
proc_header_path = File.join(ENV["SRCROOT"], "InfoPlist_proc.h")
File.open(proc_header_path, "w+") do |f|
f.write("#define BUNDLE_IDENTIFIER com.company.app.#{ build_type.downcase }\n")
f.write("#define BUNDLE_DISPLAY_NAME \"My App #{ build_type.downcase }\"")
end
$ chmod a+x script.rb
)添加执行权限,并将其设置为从预构建脚本运行阶段运行:
现在,每次构建应用时,都会重新生成InfoPlist_proc.h
文件。这有一个缺点:要更改应用程序的包标识符或名称,您必须编辑脚本,而不是Info.plist
但它也有一个优势:你可以从你的cvs给你的注入捆绑版本和短版本字符串。我通常使用git rev-list --count --all
作为捆绑版本,使用git describe --tags --first-parent
作为简短版本字符串。
希望这有帮助。
答案 1 :(得分:1)
设置不同的应用标识符和分发包显示名称