动态更改构建设置的PRODUCT_BUNDLE_ID

时间:2017-02-02 10:42:01

标签: ios fastlane

我想知道如何在编译和构建应用程序之前动态更改Build Settings中的PRODUCT_BUNDE_ID。我正在使用fastlane并使用update_info_plist更改CFBundleIdentifier,但这也不会更改构建设置中的PRODUCT_BUNDLE_ID。据我所知,从xCode7开始就不能以这种方式实现。任何人都可以指导我解决这个问题吗?

非常感谢

1 个答案:

答案 0 :(得分:0)

正如您更新plist值一样,也请更新xcodeproj / xcworkspace文件。有多种方法可以实现这一目标,但我个人认为:

  1. 只需解析值需要更新的文件,然后执行gsub或其他类型注入即可更新文件。
  2. 示例:

    File.write(file_with_value, File.open(file_with_value,&:read).gsub(/PRODUCT_BUNDLE_IDENTIFIER/, updated_bundle_id))
    

    这将只是读取文件,查找PRODUCT_BUNDLE_IDENTIFIER的每次出现并将其替换为您提供的值。 警告:这可能会产生问题,具体取决于您的配置

    1. 使用各种fastlane插件之一为您处理此操作。最新/热门选项似乎是:https://github.com/Mindera/fastlane-plugin-cosigner