xcodebuild自动打包脚本与自动上传蒲公英脚本

本文提供了使用xcodebuild工具进行iOS应用自动打包的脚本,并介绍了如何结合蒲公英实现自动上传。脚本可以在Sublime Text中编辑,通过终端执行sh命令运行。在使用脚本前,需要根据自身项目配置修改相关参数,如打包目录、项目路径、证书信息、描述文件等。

https://github.com/potato512/SYIPAGeneratedScript


脚本文件"xxx.sh"使用"Sublime_Text"工具进行编辑。

在终端执行脚本时的命令:sh xxx.sh


# 脚本功能说明

# 在终端,使用xcodebuild进行自动打包,以及上传到蒲公英
#
# 使用步骤:
# 1 目录配置(打包上传目录、项目目录)
# 2 项目配置(版本、名称、证书、描述文件UUID、描述文件、archive保存目录、ipa保存目录)
# 3 删除旧文件
# 4 清除旧项目
# 5 生成archive
# 6 生成ipa
# 7 上传ipa到蒲公英(上传路径、userKey、apiKey)

#


注意:以下示例代码可以正常使用,在使用前需要修改配置为你自己的信息。如打包上传目录upload_path,项目目录target_path,项目名称target_name,证书名称codeSignIdentity,描述文件provisioning_profile,描述文件UUIDprovision_UUID,以及上传到蒲公英时的文件地址file。


# 1 目录(打包上传目录;项目目录)
upload_path="/Users/zsy/Desktop/uploadIPA"
target_path="/Users/zsy/Desktop/iOSTest"

echo "upload_path打包路径:$upload_path"
echo "target_path项目路径:$target_path"
# 2 配置信息 Release版本
configuration="Release"

# 项目名称
target_name="iOSTest"
project_name="${project_name}.xcodeproj"
workspace_name="${target_name}.xcworkspace"
scheme="$target_name"

echo "configuration配置:$configuration"
echo "target_name项目名称:$target_name"
echo "workspace_name工作空间名称:$workspace_name"
echo "scheme名称:$scheme"

# archive包时使用证书、描述文件UUID;ipa包时使用描述文件(描述文件名称)
codeSignIdentity="iPhone Developer: zsy Test (5DD779QQBQ)"
provision_UUID="06b7492h-083a-4313-c633-15de685929q4"
provisoning_profile="iOSTestDevelopProfile"

echo "codeSignIdentity开发证书:$codeSignIdentity"
echo "provision_UUID描述文件UUID:$provision_UUID"
echo "provisoning_profile描述文件:$provisoning_profile"

# 存储目录(不同电脑修改下用户名"zsy"即可)
# project_dir=`pwd`
# echo "project_dir目录:$project_dir"

# XCODE_PRJ="xcodeproj"
# FILE_EXTENSION='xcworkspace'
# PROJECT_DIR=`pwd`
# CD_XCODE_PRJ=`pwd`/$PROJECT_NAME.$XCODE_PRJ
# PROJECT_WORKSPACE=$PROJECT_DIR.
# PROJECT_BUILD=`pwd`/$PROJECT_NAME/BUILD

# 进入项目目录时
# ipa_path="archive/${target_name}.ipa"
# archive_path="archive/${target_name}.xcarchive"
# log_path="./archive/log.txt"

# 指定目录时
cd "$upload_path"
ipa_path="$upload_path/${target_name}.ipa"
archive_path="$upload_path/${target_name}.xcarchive"
log_path="$upload_path/log.txt"

pwd
echo "ipa_path导出路径:$ipa_path"
echo "archive_path生成路径:$archive_path"
echo "log_path打印路径:$log_path"
# 3 删除旧文件
rm -rf "$log_path"
rm -rf "$archive_path"
rm -rf "$ipa_path"
cd "$target_path"
pwd
# 4 清理构建目录
# xcodebuild clean -configuration "$configuration" -alltargets
xcodebuild clean -configuration "$configuration" -alltargets >> $log_path
# 5 归档(其他参数不指定的话,默认用的是.xcworkspace或.xcodeproj文件里的配置)
xcodebuild archive -workspace "$workspace_name" -scheme "$scheme" -configuration "$configuration" -archivePath "$archive_path" CODE_SIGN_IDENTITY="$codeSignIdentity" PROVISIONING_PROFILE="$provision_UUID" >> $log_path
# 6 导出IPA
xcodebuild -exportArchive -exportFormat IPA -archivePath "$archive_path" -exportPath "$ipa_path"  -exportProvisioningProfile "$provisoning_profile" >> $log_path
# 7 上传IPA到蒲公英
curl -F "file=@/Users/zsy/Desktop/uploadIPA/iOSTest.ipa" \
-F "uKey=a512b58c56285d23456e011fgh706509" \
-F "_api_key=ab9c240d2efg9hi17j9642k3l5mnop5q" \
https://www.pgyer.com/apiv1/app/upload













脚本完善 20180709

// 路径设置
upload_path="/Users/zhangshaoyu/Desktop/build"
archive_path="${upload_path}/uploadIPA/${target_name}.xcarchive"
# ipa_path="${upload_path}/uploadIPA/${target_name}.ipa" # 未使用plist文件打包时
ipa_path="${upload_path}/uploadIPA/ipa/" # 使用plist文件打包时
plist_path="${upload_path}/xcodebuildPlist_script.plist"
 
# 4 导出IPA xcodebuild
# 方法(使用plist配置生成ipa;不需要指定包格式,且生成目录不需要设置文件名称,即只需要"./archive/",而不是"./archive/test.ipa")
# plist文件配置说明
# 1 提交App Store的plist文件参数设置,如:method=app-store,uploadBitcode=YES,uploadSymbols=YES
# 2 内测的plist文件参数设置,如:method=ad-hoc,compileBitcode=NO
# 3 method的可选值为:app-store, package, ad-hoc, enterprise, development, developer-id
xcodebuild -exportArchive \
-archivePath "$archive_path" \
-exportPath "$ipa_path" \
-exportOptionsPlist "$plist_path" -quiet >> "$log_path"






评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

番薯大佬

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值