###############设置需编译的项目配置名称
buildConfig="Release" #编译的方式,有Release,Debug,自定义的AdHoc等
##########################################################################################
##############################以下部分为自动生产部分,不需要手动修改############################
##########################################################################################
projectName=`find . -name *.xcodeproj | awk -F "[/.]" '{print $(NF-1)}'` #项目名称
target_name="Escort"
workspace_name="${target_name}.xcworkspace"
scheme="$target_name"
ExportOptionsPlistPath="./AdHocExportOptionsPlist.plist"
scheme_name="Escort"
# 强制删除旧的文件夹
#rm -rf ./$scheme_name-IPA
# 指定输出ipa路径
export_path=./$scheme_name-IPA
# 指定输出归档文件地址
export_archive_path="$export_path/$scheme_name.xcarchive"
# 指定输出ipa地址
export_ipa_path="$export_path"
projectDir=`pwd` #项目所在目录的绝对路径
buildAppToDir=$projectDir/build #编译打包完成后.app文件存放的目录
isWorkSpace=true #判断是用的workspace还是直接project,workspace设置为true,否则设置为false
echo "~~~~~~~~~~~~~~~~~~~开始编译~~~~~~~~~~~~~~~~~~~"
###############进入项目目录
cd $projectDir
#rm -rf ./build
buildAppToDir=$projectDir/build #编译打包完成后.app文件存放的目录
###############获取版本号,bundleID
infoPlist="$projectDir/Escort/Escort/Info.plist"
bundleVersion=`/usr/libexec/PlistBuddy -c "Print CFBundleShortVersionString" $infoPlist`
bundleIdentifier=`/usr/libexec/PlistBuddy -c "Print CFBundleIdentifier" $infoPlist`
bundleBuildVersion=`/usr/libexec/PlistBuddy -c "Print CFBundleVersion" $infoPlist`
###############开始编译app
echo "版本信息"
echo $bundleVersion
echo $bundleIdentifier
echo $bundleBuildVersion
echo $projectName
echo -workspace
security unlock-keychain -p "103503" ~/Library/Keychains/login.keychain
echo "~~~~~~~~~~~~~~~~~~~pod install~~~~~~~~~~~~~~~~~~~"
export LANG=en_US.UTF-8
export LANGUAGE=en_US.UTF-8
export LC_ALL=en_US.UTF-8
#第一次执行了pod之后就不用再次执行了
#pod install --verbose --no-repo-update
echo "开始编译workspace...."
xcodebuild archive -workspace "$workspace_name" -scheme "$scheme" -configuration $buildConfig -archivePath $export_archive_path
#CODE_SIGN_IDENTITY="iOS Distribution: Beijing Ubox Science & Trading Co, Ltd." PROVISIONING_PROFILE="32ba6a9e-e4d8-46e6-950d-af55549d831a"
echo "~~~~~~~~~~~~~~~~~~~ 编译完成~~~~~~~~~~~~~~~~~~~"
echo "~~~~~~~~~~~~~~~~~~~ 开始打包~~~~~~~~~~~~~~~~~~~"
appDir=$projectDir/ #app所在路径
echo "开始打包$projectName.app成$projectName.ipa....."
echo "打包地址$export_archive_path"
echo "输出地址$export_ipa_path"
xcodebuild -exportArchive -archivePath $export_archive_path -exportPath $export_ipa_path -exportOptionsPlist $ExportOptionsPlistPath CODE_SIGN_IDENTITY="iOS Distribution: Beijing Ubox Science & Trading Co, Ltd." PROVISIONING_PROFILE="32ba6a9e-e4d8-46e6-950d-af55549d831a"
fir login 7b444bd2c652a260d074845df04d2183
fir publish $export_ipa_path/Escort.ipa
#上传到fir
#fir publish $export_ipa_path/Escort.ipa -T firtoken -c "7b444bd2c652a260d074845df04d2183"
Jenkins中iOS打包shell脚本
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
推荐阅读更多精彩内容
- 问题 使用 Jenkins 来做 iOS 项目的持续集成,升级 Xcode 9 之后,编译完成之后打包会一直报如下...
- 安装Jenkins 安装jenkins方法有两种: 1,使用homebrew安装. 2,直接下载安装包安装; 方法...
- 上文讲述了作者如何在Jenkins上配置了iOS打包服务,其中脚本实现采用python。本文详细讲述一下这个脚本的...
- 背景: 随着公司业务的扩大,人员的增多,每次通过XCode给测试人员Run代码进行测试,已经满足不了,况且Run出...