Github地址:https://github.com/AAWayne/YWAutoPackage
平时自用的iOS项目自动打包脚本,支持自动上传蒲公英、App Store等应用分发平台
前言
先说说 Xcode 打包的烦恼吧,从 Archive 打包 再到 签名 导出 IPA 包 或者直接上传,
项目大点的在这期间会浪费很多等待的时间,比如 Archive 后忘了去签名,签名后又忘了去导出等等。
本脚本就是为了解决这一系列的烦恼而生的,优点:
1、shell 脚本在 Mac 上无需环境依赖,可直接运行,并统计各个阶段的操作时间
2、自动 Archive、签名、导出IPA包、删除 Archive 包
3、自动上传预设的分发平台
正文
⚠️注意:
项目第一次必须手动打包并导出IPA成功后才能正常使用该脚本,因为 Xcode 手动打包导出后才会把打包所需证书、描述文件等备齐
使用方法:点击下载脚本相关文件
1、将YWAutoPackage文件夹
直接拖到桌面
后
2、配置打开编辑YWAutoPackage.sh
中的配置相关参数
3、再将YWAutoPackage.sh
脚本文件拖入终端
回车即可执行自动打包脚本
4、执行脚本后按需求输入选择打包版本
Dev 开发版、Hoc 测试版、App Store 生产版、Enterprise 企业版
5、如果执行脚本时出现如下错误是因为文件权限不足,只需对其授权777即可
-bash: /Users/candy/Desktop/YWAutoPackage/YWAutoPackage.sh: Permission denied
执行如下授权命令即可(这里的参考了上面的路径地址)
chmod -R 777 /Users/candy/Desktop/YWAutoPackage/YWAutoPackage.sh
6、如果需要上传 App Store,则安装 Transporter 上传工具,并且配置开发者账号和专用密码
打包脚本配置项
# ⚠️默认 Release 版,也可配置为 Debug
pro_environ=Release
# 项目路径,文件绝对路径,如下:
pro_path="/Users/xxx/BaseProject/BaseProject.xcworkspace"
# ⚠️自动上传蒲公英(uKey、_api_key)获取地址https://www.pgyer.com/doc/api#uploadApp
api_key="" # 不上传则不填
ukey="" # 不上传则不填
## ⚠️自动上传苹果商店 - 苹果开发者账号 与 专用密码(需要提前设置 https://appleid.apple.com)
apple_id="" # 不上传则不填
apple_pwd="" # 不上传则不填
打包脚本核心内容展示
# 先组装路径 archive_path、ipa_path ,用于导出 ipa 和 上传
archive_path="${temp_path}/${ipa_dir}/${pro_name}.xcarchive"
ipa_path="${temp_path}/${ipa_dir}/${pro_name}.ipa"
# Clean操作
xcodebuild clean -${pro_clean} ${pro_full_name} -scheme ${pro_name} -configuration ${pro_environ}
judgementLastIsSuccsess $? "Clean"
# Archive操作
xcodebuild archive -${pro_clean} ${pro_full_name} -scheme ${pro_name} -archivePath ${archive_path}
judgementLastIsSuccsess $? "Archive"
# 导出IPA文件操作
xcodebuild -exportArchive -archivePath ${archive_path} -exportOptionsPlist ${plist_path} -exportPath ${temp_path}/${ipa_dir}
judgementLastIsSuccsess $? "导出IPA文件"
# 删除 xcarchive 包
rm -r ${archive_path}
# ============ 上传到App Store ============
# 获取 Transporter 上传工具【推荐】
toolPath="/Applications/Transporter.app/Contents/itms/bin/iTMSTransporter"
${toolPath} -m upload -assetFile ${ipa_path} -u ${apple_id} -p ${apple_pwd} -v informational
# ============ 上传到App Store ============
如果不上传蒲公英或不上传App Store的话 注释下面两句话即可(如果没填写相关账号则不会执行上传操作)
# 上传蒲公英分发平台
uploadPGY
# 上传 App Store
uploadAppStore