美文网首页
xcode编译版本号、bundleID自动化方案

xcode编译版本号、bundleID自动化方案

作者: xo1988 | 来源:发表于2021-11-08 14:23 被阅读0次

    之前比较懒,也是思想上比较懒,没有解放生产力,一次偶然的上线问题把这个事情给安排上了。

    前情提要

    项目分了两个上线的target,一个是主项目,一个是widget。

    主项目 widget
    BundleID(测试环境) com.henshuxueTest com.henshuxueWidgetTest
    显示名(测试环境) 很数学测试 很数学测试
    build(测试环境) 249 249
    BundleID com.henshuxue com.henshuxueWidget
    显示名 很数学 很数学
    build 249 249

    上线的时候手动修改一下这两个部分,需要修改6块,非常麻烦,而且含容易出错。显示名如果修改出错在testflight里边都很难看出来,也真是头疼。

    解决方案

    显示名、bundleID

    针对于显示名称跟 bundleID 这个在 xcode 里边已经有了很好的配置办法,只不过就是没有注意过怎么配置。
    显示名推荐配置是:

    1. Project -> Build Settings -> 搜索 Bundle Display Name 然后分环境分别配置显示名称
    2. 在 Target 对应的 info 栏里边增加 Bundle display name 属性设置为 $(INFOPLIST_KEY_CFBundleDisplayName)

    bundleID推荐配置是:

    1. Target -> Build Settings -> 搜索 Product Bundle Identifier 然后分环境分别配置 bundleID

    这样基本上就不用手动在管这两部分了。


    有个特别需要注意的地方,xcode的build settings里边的配置,如果修改过的话那么字体是加粗的!!!之前还真没有注意过,如果发现报莫名其妙的错误的时候看配置是空的,但是key是加粗的时候其实是说明还是修改了,只不过修改是空。。。

    在Project的build settings 中设置的属性,默认在target中是继承的,因此能设置在Project中的还是尽量设置在Project中会比较方便。如果在target里边需要修改在单独修改,此时修改的key是加粗显示的,知道了这个变化之后还是挺明显的


    build号自动化

    参考

    推荐配置方式:
    由于修改版本号只在 Archive 的时候用到其他的时候这个版本号基本上也没啥用处。所以针对于这种情况,只需要修改一下 scheme 的配置。

    1.添加一个脚本内容如下,在archive之前执行一下。

    #!/bin/bash
    
    VERSION=""
    
    while getopts "v:h" arg #选项后面的冒号表示该选项需要参数
    do
        case $arg in
            v)
                VERSION=$OPTARG
                ;;
            h)
                echo "-v 输入版本号"
                ;;
            ?)
                echo "-v 输入版本号"
                exit 1
                ;;
        esac
    done
    
    
    if [[ $VERSION == "" ]]; then
        echo "-v 输入版本号"
        exit 1
    fi
    
    agvtool new-marketing-version $VERSION
    
    build_Number=`date +%Y%m%d%H`
    agvtool new-version -all ${build_Number}
    
    echo "编译版本号:$VERSION.${build_Number}"
    

    相关文章

      网友评论

          本文标题:xcode编译版本号、bundleID自动化方案

          本文链接:https://www.haomeiwen.com/subject/phbuzltx.html