开发/发布版本的不同应用程序名称

时间:2015-03-04 15:07:44

标签: ios

我有一个iOS应用程序,在开发版本中只有“sysadmin”功能,这些功能在发布版本中被删除。

在内部测试设备上有两个构建的最简单方法是什么,一个在开发模式下,一个在发布模式下在iOS主屏幕上有不同的名称?

目前的情况是,当我们想要测试发布版本时,我必须为每个设备手动重建它。当我们想要切换回来时,我必须再次手动重建应用程序。

2 个答案:

答案 0 :(得分:2)

正如LoVo所提到的 - 您将需要不同的应用标识符和捆绑显示名称。以下是我将如何解决问题:

  1. 在Project的构建设置中,设置以下值:

    • 预处理Info.plist文件 -
    • Info.plist预处理器前缀文件 - InfoPlist_proc.h
  2. 将标题生成脚本添加到Xcode项目中。

  3. 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
    
    1. 现在处于方案的“构建”阶段( Cmd + Shift + )创建“运行脚本”预执行:
    2. "Run Script" pre-action

      1. 向以前创建的脚本($ chmod a+x script.rb)添加执行权限,并将其设置为从预构建脚本运行阶段运行:
      2. Run ruby script in build's pre-action

        1. 最后在您当前的Info.plist文件中,使用预处理器定义更改包标识符和显示名称值:
        2. Preprocessor defines as values in Info.plist file

          现在,每次构建应用时,都会重新生成InfoPlist_proc.h文件。这有一个缺点:要更改应用程序的包标识符或名称,您必须编辑脚本,而不是Info.plist

          但它也有一个优势:你可以从你的cvs给你的注入捆绑版本和短版本字符串。我通常使用git rev-list --count --all作为捆绑版本,使用git describe --tags --first-parent作为简短版本字符串。

          希望这有帮助。

答案 1 :(得分:1)

设置不同的应用标识符和分发包显示名称