平常的开发过程中,提测时的构建ipa包浪费的时间很多。为了缩减这个时间,提高工作效率,在空时研究了通过脚本打包的方法。
现在把这个过程中碰到的沟沟坎坎记录下来,以供不时之需。
以下脚本都是在Jenkins执行,Jenkins如何配置这里不做记录。若直接在MAC的终端执行,有些代码则无必要。
这次有3个项目需要使用脚本打包的功能,具体情况又大同小异。为了更详细的说明,分列如下:
一、没有使用CocoaPods,证书自动配置,将文件上传到FTP服务器:
现在把这个过程中碰到的沟沟坎坎记录下来,以供不时之需。
以下脚本都是在Jenkins执行,Jenkins如何配置这里不做记录。若直接在MAC的终端执行,有些代码则无必要。
这次有3个项目需要使用脚本打包的功能,具体情况又大同小异。为了更详细的说明,分列如下:
一、没有使用CocoaPods,证书自动配置,将文件上传到FTP服务器:
#!/bin/sh
security unlock-keychain "-p" "12345" # MAC授权密码
projectpath=$(pwd) # 工程路径
basepath=$HOME #
appname="appname" # APP的名字
# 证书自动配置,故无需配置
# codesignidentify="iPhone Distribution: XXXXXXXX & Technology Co., Ltd. (AS562ZMN1Z)"
cd $projectpath #cd到工程目录下
#clean
xcodebuild -project "$appname.xcodeproj" -target "$appname" -configuration 'Release' clean >> /dev/null
#build
xcodebuild -project "$appname.xcodeproj" -target "$appname" -configuration 'Release' >> /dev/null # CODE_SIGN_IDENTITY="$codesignidentify"
#获取版本号,生成文件名,打包
bundleversion=$(/usr/libexec/PlistBuddy -c "print :CFBundleShortVersionString" "$projectpath/$appname/Info.plist")
ipaname="${appname}_v${bundleversion}_`date "+%Y%m%d%H%M"`.ipa"
ipapath="$basepath/Desktop/XXX"
apppath="$projectpath/build/Release-iphoneos/$appname.app" # .app文件在projectpath路径下
xcrun -sdk ip