美文网首页
2018-07-09 自动打包到上传fir 和可视化操作

2018-07-09 自动打包到上传fir 和可视化操作

作者: 大也 | 来源:发表于2018-07-09 15:05 被阅读18次

    iOS 自动打包 从shell脚本到 jenkins的可视化操作

    1. 1.png
    2. 2.png
    3. 3.png
    4. 4.png

    然后我们来研究下shell脚本怎么配置

    #注意路径请安格式写不要空格
    
    
    #这里配置我们需要的参数
    #工程名
    project_name="WaWang"
    
    #打包模式 Debug/Release
    development_mode="Release"
    
    #上传fireToken
    upload_token="48093c9614dc50be05a5cb3563424d30"
    
    #scheme名
    scheme_name="WaWang"
    
    
    #工程绝对路径
    #project_path="/Users/msh/wawang-ios/工程/WaWang"
    project_path=$(cd `dirname $0`; pwd)
    
    #build文件夹路径
    build_path="$project_path/build"
    
    #上传哪里
    upload_style=1
    
    #这里配置我们需要的打包模式
    echo "\033[36;1m请选择打包方式(输入序号,按回车即可) \033[0m"
    echo "\033[33;1m1. 上传fire       \033[0m"
    echo "\033[33;1m2. 上传AppStore    \033[0m"
    # 读取用户输入并存到变量里
    read parameter
    sleep 0.5
    method="$parameter"
    # 判读用户是否有输入
    if [ -n "$method" ]
    then
    if [ "$method" = "1" ] ; then
    upload_style=1
    elif [ "$method" = "2" ] ; then
    upload_style=2
    else
    echo "输入的参数无效!!!"
    exit 1
    fi
    fi
    
    # AdHoc,AppStore,Enterprise三种打包方式的区别: http://blog.csdn.net/lwjok2007/article/details/46379945
    echo "\033[36;1m请选择打包方式(输入序号,按回车即可) \033[0m"
    echo "\033[33;1m1. AdHoc       \033[0m"
    echo "\033[33;1m2. AppStore    \033[0m"
    echo "\033[33;1m3. Development  \033[0m"
    # 读取用户输入并存到变量里
    read parameter
    sleep 0.5
    method="$parameter"
    # 判读用户是否有输入
    if [ -n "$method" ]
    then
    if [ "$method" = "1" ] ; then
    build_path="$project_path/build/AdHoc"
    elif [ "$method" = "2" ] ; then
    build_path="$project_path/build/AppStore"
    elif [ "$method" = "3" ] ; then
    build_path="$project_path/build/Development"
    else
    echo "输入的参数无效!!!"
    exit 1
    fi
    fi
    
    
    #这里是xcode的打包编译方式无需改动 如果项目时project就改动.xcworkspace和 workspace
    #plist文件所在路径
    exportOptionsPlistPath="$build_path/exportOptions.plist"
    #导出Archive文件所在路径
    appArchivePath="$build_path/$scheme_name"
    appArchiveFilePath="$build_path/$scheme_name.xcarchive"
    
    #导出.ipa文件所在路径
    exportFilePath="$build_path/$scheme_name"
    exportFileFilePath="$build_path/$scheme_name/$scheme_name.ipa"
    
    echo '*** 正在 清理工程 ***'
    
    xcodebuild clean -workspace ${project_name}.xcworkspace \
    -scheme ${scheme_name} \
    -configuration ${development_mode} -quiet  || exit
    
    echo '*** 清理完成 ***'
    
    
    
    echo '*** 正在 编译工程 For '${development_mode}
    
    xcodebuild archive -workspace ${project_name}.xcworkspace \
    -scheme ${scheme_name} \
    -configuration ${development_mode} \
    -archivePath ${appArchiveFilePath} \
    -allowProvisioningUpdates
    
    echo '*** 编译完成 ***'
    
    
    echo '*** 正在 打包 ***'
    xcodebuild  -exportArchive \
    -archivePath ${appArchiveFilePath} \
    -exportPath ${exportFilePath} \
    -exportOptionsPlist ${exportOptionsPlistPath} \
    -allowProvisioningUpdates
    
    
    if [ -e $exportFilePath/$scheme_name.ipa ]; then
    echo "*** .ipa文件已导出 ***"
    open $exportFilePath
    else
    echo "*** 创建.ipa文件失败 ***"
    fi
    echo '*** 打包完成 ***'
    
    
    
    
    echo '*** 上传分发平台开始 ***'
    
    #上传分发平台
    if [ $upload_style == 1 ] ; then
    fir login -T $upload_token       # fir.im token
    fir publish $exportFileFilePath
    echo "*** fir上传成功 ***"
    
    else
    echo "*** App Store上传失败 ***"
    ###验证并上传到App Store
    ### 将-u 后面的XXX替换成自己的AppleID的账号,-p后面的XXX替换成自己的密码
    ##altoolPath="/Applications/Xcode.app/Contents/Applications/Application Loader.app/Contents/Frameworks/ITunesSoftwareService.framework/Versions/A/Support/altool"
    ##"$altoolPath" --validate-app -f ${exportIpaPath}/${scheme_name}.ipa -u XXX -p XXX -t ios --output-format xml
    ##"$altoolPath" --upload-app -f ${exportIpaPath}/${scheme_name}.ipa -u  XXX -p XXX -t ios --output-format xml
    fi
    echo '*** 上传分发平台完成 ***'
    #
    #exit 0
    
    

    相关文章

      网友评论

          本文标题:2018-07-09 自动打包到上传fir 和可视化操作

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