gpt4 book ai didi

ios - 用于开发/发布构建的不同应用程序名称

转载 作者:行者123 更新时间:2023-12-01 18:54:08 25 4
gpt4 key购买 nike

我有一个 iOS 应用程序,它在开发版本中仅具有“系统管理员”功能,这些功能在发布版本中被删除。

在我们的内部测试设备上构建两个版本,一个处于开发模式,一个处于 Release模式,在 iOS 主屏幕上具有不同的名称,最简单的方法是什么?

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

最佳答案

正如 LoVo 提到的 - 您将需要不同的应用程序标识符和捆绑显示名称。这是我解决问题的方法:

  • 在项目的build设置中设置以下值:
  • 预处理 Info.plist 文件 -
  • Info.plist 预处理器前缀文件 - InfoPlist_proc.h
  • 将 header 生成脚本添加到您的 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
  • 现在在方案的“构建”阶段(Cmd+Shift+,)创建“运行脚本”预操作:

  • "Run Script" pre-action
  • 将执行权限添加到先前创建的脚本 ( $ chmod a+x script.rb ) 并将其设置为从预构建脚本运行阶段运行:

  • Run ruby script in build's pre-action
  • 最后,在您当前的 Info.plist 文件中,使用预处理器定义更改捆绑标识符和显示名称值:

  • Preprocessor defines as values in Info.plist file

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

    但它也有一个优势:您可以从您的 cvs 给您的内容中注入(inject)捆绑版本和短版本字符串。我一般用 git rev-list --count --all对于捆绑版本和 git describe --tags --first-parent用于短版本字符串。

    希望这可以帮助。

    关于ios - 用于开发/发布构建的不同应用程序名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28857816/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com