iOS配置shell脚本自动打包上传到蒲公英
来源:互联网 发布:阿里云如何关闭网站 编辑:程序博客网 时间:2024/04/29 19:16
转载请注明出处:http://blog.csdn.net/bluewindaa/article/details/73650089
前言
在Mac上配置使用脚本进行自动打包,网上搜了好多文章,自己又琢磨了一段时间,总算捣鼓好了,现在写出来总结一下。
准备工作
1.从仓库拉取代码到本地,假设文件夹名为Test (下文提到的文件夹都指该目录)
2.将打包使用到的脚本test.sh文件放入到文件夹中
3.如果是8.3以后的XCode,需从旧的Xcode中copy一份打包时要用到的PackageApplication放到如下目录中:
/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/
注:不添加会打包失败,提示
xcrun: error: unable to find utility "PackageApplication", not a developer tool or in PATH
4.然后执行命令
sudo xcode-select -switch /Applications/Xcode.app/Contents/Developer/
chmod +x /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/PackageApplication
PackageApplication下载地址:
链接: https://pan.baidu.com/s/1nuCSmpz 密码: 4gkq
开始
脚本一共分为如下几部分:路径、证书配置;拉取最新代码;打包;导出ipa;上传蒲公英;发送邮件
1.路径、证书配置
echo "\n**********************************************\n"echo "schemes: Test0 Test1 "echo "configuration: Debug Release"echo "\n**********************************************\n"SCHEMENAME=$1CONFIGURATION=$2BRANCHNAME=developDATE=`date +%Y%m%d_%H%M`HOMEPATH=/Users/Cecilia/DesktopSOURCEPATH=/Users/Cecilia/Desktop/DoubleTeacherModeIPAPATH=$HOMEPATH/iOS打包/$BRANCHNAME/$DATEIPANAME=$SCHEMENAME.ipaTest0AdHocProvisioningProfile="xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"Test0ReleaseProvisioningProfile="xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"Test0DebugProvisioningProfile="xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"Test1AdHocProvisioningProfile="xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"Test1ReleaseProvisioningProfile="xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"Test1DebugProvisioningProfile="xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"Test0ReleaseCodeSignIdentity="iPhone Distribution: xxxxxxxxxxx network technology co., LTD (xxxxxxxxxx)"Test0DebugCodeSignIdentity="iPhone Developer: xxx (xxxxxxxxxx)"Test1ReleaseCodeSignIdentity="iPhone Distribution: xxxxxxxxxx technology co., LTD (xxxxxxxxxx)"Test1DebugCodeSignIdentity="iPhone Developer: xxx (xxxxxxxxxx)"if [[ $SCHEMENAME == "Test0" && $CONFIGURATION == "Release" ]]; thenCODE_SIGN_IDENTITY="$doubleTeacherReleaseCodeSignIdentity"PROVISIONING_PROFILE="$doubleTeacherAdHocProvisioningProfile"elif [[ $SCHEMENAME = "Test0" && $CONFIGURATION = "Debug" ]]; then CODE_SIGN_IDENTITY="$doubleTeacherDebugCodeSignIdentity" PROVISIONING_PROFILE="$doubleTeacherDebugProvisioningProfile"elif [[ $SCHEMENAME = "Test1" && $CONFIGURATION = "Release" ]]; then CODE_SIGN_IDENTITY="$qiFengReleaseCodeSignIdentity" PROVISIONING_PROFILE="$qiFengAdHocProvisioningProfile"elif [[ $SCHEMENAME = "Test1" && $CONFIGURATION = "Debug" ]]; then CODE_SIGN_IDENTITY="$qiFengDebugCodeSignIdentity" PROVISIONING_PROFILE="$qiFengDebugProvisioningProfile"fi
2.拉取最新代码
echo "请输入远程电脑密码(输入密码后,按回车即可)"read macPassword# git updategit checkout $BRANCHNAMEif [ $? -ne 0 ]; then exit 1figit pull#pod update --verbose --no-repo-updateif [ $? -ne 0 ]; then exit 1fi# delete trash filesif [ -e $IPAPATH/* ]; then mv $IPAPATH/* ~/.Trash if [ $? -ne 0 ]; then echo "error:Delete trash files failed!" exit 1 fifi
3.打包
xcodebuild \-workspace $SOURCEPATH/Test0.xcworkspace \-scheme $SCHEMENAME \-configuration $CONFIGURATION \CODE_SIGN_IDENTITY="$CODE_SIGN_IDENTITY" \PROVISIONING_PROFILE="$PROVISIONING_PROFILE" \clean \build \-derivedDataPath $IPAPATH
4.导出ipa
xcrun -sdk iphoneos PackageApplication \-v $IPAPATH/Build/Products/$CONFIGURATION-iphoneos/$SCHEMENAME.app \-o $IPAPATH/$IPANAME
5.上传蒲公英,uKey和_api_key需到蒲公英官网上获取
curl -F "file=@$IPAPATH/$IPANAME" \-F "uKey=6a988d155c4870d89f23ab16ada511c6" \-F "_api_key=41b7a601a124634f7accd9454a1914d5" \https://qiniu-storage.pgyer.com/apiv1/app/upload
6.发送邮件
cd $IPAPATHzipName="tempZipName.zip"zip -r $zipName $IPAPATH/$IPANAMEexport LANG=C.UTF-8#$echo <123> | sudo -S <command># 修改大文件限制echo $macPassword | sudo -S postconf -e message_size_limit=0postconf -d | grep size# echo message_size_limit# 压缩包路径zipPath=$IPAPATH/$zipNameecho $macPassword | sudo -S postconf -e message_size_limit=0postconf -d | grep sizeemailTitle="有新包啦"emailBody="新包已经上传\n 请移步https://www.pgyer.com/xxxx 进行安装"( echo $emailBody; uuencode $zipPath ipa.zip) | mail -s $emailTitle cecilia_900@163.comecho "\033[36;1m发送邮件成功 \033[0m"
附上完整的脚本文件
#!/bin/bash# author Ceciliaecho "\n**********************************************\n"echo "schemes: Test0 Test1 "echo "configuration: Debug Release"echo "\n**********************************************\n"SCHEMENAME=$1CONFIGURATION=$2BRANCHNAME=developDATE=`date +%Y%m%d_%H%M`HOMEPATH=/Users/Cecilia/DesktopSOURCEPATH=/Users/Cecilia/Desktop/Test0IPAPATH=$HOMEPATH/iOS打包/$BRANCHNAME/$DATEIPANAME=$SCHEMENAME.ipaTest0AdHocProvisioningProfile="xxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxx"Test0ReleaseProvisioningProfile="xxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxx"Test0DebugProvisioningProfile="xxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxx"qiFengAdHocProvisioningProfile="xxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxx"qiFengReleaseProvisioningProfile="xxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxx"qiFengDebugProvisioningProfile="xxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxx"Test0ReleaseCodeSignIdentity="iPhone Distribution: xxxxxxxxxx network technology co., LTD (xxxxxxxxxx)"Test0DebugCodeSignIdentity="iPhone Developer: xxx (xxxxxxxxxx)"qiFengReleaseCodeSignIdentity="iPhone Distribution: xxxxxxxxxx network technology co., LTD (xxxxxxxxxx)"qiFengDebugCodeSignIdentity="iPhone Developer: xxx (xxxxxxxxxx)"if [[ $SCHEMENAME == "Test0" && $CONFIGURATION == "Release" ]]; then CODE_SIGN_IDENTITY="$Test0ReleaseCodeSignIdentity" PROVISIONING_PROFILE="$Test0AdHocProvisioningProfile"elif [[ $SCHEMENAME = "Test0" && $CONFIGURATION = "Debug" ]]; then CODE_SIGN_IDENTITY="$Test0DebugCodeSignIdentity" PROVISIONING_PROFILE="$Test0DebugProvisioningProfile"elif [[ $SCHEMENAME = "Test1" && $CONFIGURATION = "Release" ]]; then CODE_SIGN_IDENTITY="$qiFengReleaseCodeSignIdentity" PROVISIONING_PROFILE="$qiFengAdHocProvisioningProfile"elif [[ $SCHEMENAME = "Test1" && $CONFIGURATION = "Debug" ]]; then CODE_SIGN_IDENTITY="$qiFengDebugCodeSignIdentity" PROVISIONING_PROFILE="$qiFengDebugProvisioningProfile"fiecho "请输入远程电脑密码(输入密码后,按回车即可)"read macPassword# git updategit checkout $BRANCHNAMEif [ $? -ne 0 ]; then exit 1figit pull#pod update --verbose --no-repo-updateif [ $? -ne 0 ]; then exit 1fi# delete trash filesif [ -e $IPAPATH/* ]; then mv $IPAPATH/* ~/.Trash if [ $? -ne 0 ]; then echo "error:Delete trash files failed!" exit 1 fifi#build Test0xcodebuild \-workspace $SOURCEPATH/Test0.xcworkspace \-scheme $SCHEMENAME \-configuration $CONFIGURATION \CODE_SIGN_IDENTITY="$CODE_SIGN_IDENTITY" \PROVISIONING_PROFILE="$PROVISIONING_PROFILE" \clean \build \-derivedDataPath $IPAPATHif [ -e $IPAPATH ]; thenecho "xcodebuild Successful"elseecho "xcodebuild failed"exit 1fi#xcrun .ipaxcrun -sdk iphoneos PackageApplication \-v $IPAPATH/Build/Products/$CONFIGURATION-iphoneos/$SCHEMENAME.app \-o $IPAPATH/$IPANAMEif [ -e $IPAPATH/$IPANAME ]; thenecho "\n-------------------\n\n\n"echo "Configurations! Build Successful"echo "\n\n\n-------------\n\n"echo "Current Branch log:"git log -2open $IPAPATHelseecho "\n-------------------\n"echo "error:Create IPA failed"echo "Please check the cause of failure and contact developers"echo "\n-------------------\n"ficurl -F "file=@$IPAPATH/$IPANAME" \-F "uKey=6a988d155c4870d89f23ab16ada511c6" \-F "_api_key=41b7a601a124634f7accd9454a1914d5" \https://qiniu-storage.pgyer.com/apiv1/app/uploadcho "\n\n\n\n-------------------\n\n\n\n"echo "\033[36;1m打包总用时: ${SECONDS}s \033[0m"cd $IPAPATHzipName="tempZipName.zip"zip -r $zipName $IPAPATH/$IPANAMEexport LANG=C.UTF-8#$echo <123> | sudo -S <command># 修改大文件限制echo $macPassword | sudo -S postconf -e message_size_limit=0postconf -d | grep size# echo message_size_limit# 压缩包路径zipPath=$IPAPATH/$zipNameecho $macPassword | sudo -S postconf -e message_size_limit=0postconf -d | grep sizeemailTitle="有新包啦"emailBody="新包已经上传\n 请移步https://www.pgyer.com/xxxx 进行安装"( echo $emailBody; uuencode $zipPath ipa.zip) | mail -s $emailTitle cecilia_900@163.comecho "\033[36;1m发送邮件成功 \033[0m"
如果使用过程中有什么问题,欢迎留言。转载请注明出处,谢谢
阅读全文
0 0
- iOS配置shell脚本自动打包上传到蒲公英
- xcodebuild自动打包脚本与自动上传蒲公英脚本
- [iOS 自动打包上传并自动上传蒲公英]
- IOS蒲公英自动打包
- iOS开发进阶 - 使用shell脚本自动打包上传到fir.im上
- iOS 用个人证书shell打包上传蒲公英
- Xcode自动编译、打包、上传到蒲公英应用分发平台
- iOS一行shell脚本自动打包上传指定位置
- shell脚本自动打包上传详解
- iOS 打包上传蒲公英和AppStore出问题
- iOS 一键打包上传蒲公英
- Android 配合Jenkins使用Gradle脚本命令打包上传到蒲公英
- ios xcodebuild命令行自动打包 shell脚本
- iOS 代码自动打包上传脚本
- iOS开发集成——配置xcodeServer持续集成,自动打包上传蒲公英坑,掉一次两次三次就埋了它。。
- iOS上传应用到蒲公英分发测试
- iOS工程自动打包 (Shell脚本打包)
- [iOS 自动打包]shell脚本使用-ipa_build 脚本使用
- [LeetCode] 15. 3Sum
- CentOS 7 安装 MySQL
- spring配置多数据源,threadLocal切换数据源
- 链表-leetcode 328. Odd Even Linked List
- unity打包原理解析
- iOS配置shell脚本自动打包上传到蒲公英
- C/C++中main是void main()还是int main()
- Java 枚举(enum) 详解7种常见的用法
- Asp.Net之增删改查(三层)
- ChannelOption.SO_KEEPALIVE, true->java socket参数详解:KeepAlive
- win10的bash使用ssh连接远程服务器
- 【Linux】【Debug】一个简单的debug信息输出方法
- 配置Ubuntu·14.04+显卡驱动+cuda7.5+opencv2.4.11+caffe
- 博客小技巧:程序演示效果GIF图录制