IOS打包脚本思路

简介:
ios 打包脚本。目的直接生成可用于上传APP STORE的ipa文件,提供测试直接测试。
前提是已经有一个可以编译的工程,并且有苹果的开发账号并生成了各种证书
主要三个步骤:
一、准备证书文件(都是distribution的),并导入;
这里用到3个相关文件,一个.p12、一个.cer,还有一个.mobileprovision(暂且用 distribution.p12、distribution.cer、distributionProfile.mobileprovision 命名)
双击可以将上述文件导入到系统当中,我们这里介绍用命令行导入的方法,以便用机器来帮助我们完成这些工作。
首先是需要导入证书:这步骤前请确认这3个文件保存的目录,用终端进入这个目录。
#解锁钥匙串,证书是需要导入到钥匙串中的,如果钥匙串处于锁定状态,可以用这个命令解锁,USERNAME是用户名
[run in terminal] security unlock-keychain /Users/USERNAME/Library/Keychains/login.keychain
#导入distribudion证书私钥,PASSWORD是证书的密码
[run in terminal] security import ./distribution.p12 -k ~/Library/Keychains/login.keychain -P PASSWORD -T /usr/bin/codesign
#导入distribudion证书公钥,可以下载得到
[run in terminal] security import ./distribution.cer -k ~/Library/Keychains/login.keychain
#导入产品provision,USERNAME是用户名
cp ./distributionProfile.mobileprovision "/Users/USERNAME/Library/MobileDevice/Provisioning Profiles/distributionProfile.mobileprovision"
执行完上述的命令后可以,分别在钥匙串中看到公钥和私钥的证书,在iPhone实用工具(或xcode4+ /Organizer/Devices/Provision Profiles)找到provision记录。
注意:如果要用ssh命令远程启动执行步骤2中的脚本,需要用到钥匙串的解锁。
 
二、 编译脚本的编写,与执行
用脚本生成ipa文件主要用到两个命令,一个是 xcodebuild、一个是 cxrun,细节可以问google,文档很多。可以直接将下面的两个/*——————*/之间的内容拷贝生成一个 build.sh文件。
将这个build.sh连同上面的distributionProfile.mobileprovision文件一同拷贝到你的工程目录下(与.xcodeproj同一个目录)。终端中cd到这个目录下,运行下面的命令
[run in terminal]sh build.sh
注意脚本中需要修改两处,证书名称"iPhone Distribution: XXXXX"替换成你自己证书的名称,这个名称可以通过下面的命令得到。
[run in terminal]certtool d ./distribution.cer |grep iPhone
这个命令的输出:   Common Name     : iPhone Distribution: XXXXXXX
只要拷贝其中的"iPhone Distribution: XXXXXXX"覆盖即可。
还需要将TARGET_LIST缓存你自己project中的工程名字
/*————————————————————————————————————————————————*/
#!/bin/sh
TARGET_LIST="wirelessframe"
CONFIGURATION="Release"
DISTRIBUTION_CERTIFICATE="iPhone Distribution: XXXXX"
PROVISIONING_PROFILE_PATH="distributionProfile.mobileprovision"
# BUILD_DATE_TAG=$(date "+%Y%m%d")
# LOG_FILE="$(pwd)/${BUILD_DATE_TAG}.log"
 
BUILD_DIRECTORY="$(pwd)/build/${CONFIGURATION}-iphoneos"
rm -f ${BUILD_DIRECTORY}/*.ipa
 
 
/usr/bin/xcodebuild -sdk iphoneos $TARGET_LIST -configuration "${CONFIGURATION}" clean build
 
if [ ! -d "$(pwd)/build/${CONFIGURATION}-iphoneos/${TARGET_LIST}.app" ]; then
echo "ERR::Building APP file fail."
exit
else
echo "--BUILD APP OK"
fi
 
APP_FILENAME="${TARGET_LIST}.app"
    IPA_FILENAME="${TARGET_LIST}_${BUILD_DATE_TAG}.ipa"
 
 
/usr/bin/xcrun -sdk iphoneos PackageApplication -v "${BUILD_DIRECTORY}/${APP_FILENAME}" -o "${BUILD_DIRECTORY}/${IPA_FILENAME}" --sign "${DISTRIBUTION_CERTIFICATE}" --embed "${PROVISIONING_PROFILE_PATH}"
 
if [ $? != 0 ]; then
echo "ERR::Building IPA fail."
exit
else
echo "--${IPA_FILENAME} OK"
fi
 
# cp ${BUILD_DIRECTORY}/*.ipa ${PACKAGE_DIR}
/*————————————————————————————————————————————————*/
 
如果以前正常会生成一个ipa文件包,这个包就是我们用来测试和上传的ipa文件了。这里如果遇到codesion的错误,表示证书可能有问题,你可以检查证书,并确保证书正常导入。
 
三、 上传工具介绍
xcode自带了上传工具,以xcode4.5为例 在Finder中找到xcode->鼠标右击选择显示包内容->Contents->Applications->Application Loader
用法可以见 【 http://open.zhui.cn/index.php?title=AppStore新应用上传指南
 
另外:扩展方面,在此脚本的基础上做一些变动可以支持打越狱的渠道包。也可以做OTA下载等等。如果将上面的3个证书缓存开发证书,还可以配合hudson完成自动化的提交验证和定时打包等。
目录
相关文章
|
3月前
|
Linux 数据安全/隐私保护 虚拟化
iOS 打包 IPA 教程
iOS 打包 IPA 教程
|
3月前
|
Linux 数据安全/隐私保护 iOS开发
如何使用 Xcode 打包导出 IPA 文件并进行 iOS 应用内测,无需支付苹果开发者账号费用?
如何使用 Xcode 打包导出 IPA 文件并进行 iOS 应用内测,无需支付苹果开发者账号费用?
|
2月前
|
数据安全/隐私保护 开发者 iOS开发
iOS-打包上架构建版本一直不出现/正在处理/自动消失
iOS-打包上架构建版本一直不出现/正在处理/自动消失
34 0
|
2月前
|
数据安全/隐私保护 iOS开发 开发者
uniapp IOS从打包到上架流程(详细简单) 原创
uniapp IOS从打包到上架流程(详细简单) 原创
51 1
|
2月前
|
移动开发 监控 小程序
mPaaS常见问题之uniapp ios端云打包的配置config文件如何解决
mPaaS(移动平台即服务,Mobile Platform as a Service)是阿里巴巴集团提供的一套移动开发解决方案,它包含了一系列移动开发、测试、监控和运营的工具和服务。以下是mPaaS常见问题的汇总,旨在帮助开发者和企业用户解决在使用mPaaS产品过程中遇到的各种挑战
35 0
|
2月前
|
iOS开发 开发者
【教程】uni-app iOS 打包解决 profile 文件与私钥证书不匹配问题
【教程】uni-app iOS 打包解决 profile 文件与私钥证书不匹配问题
|
3月前
|
安全 网络安全 数据安全/隐私保护
iOS App的打包和上架流程
iOS App的打包和上架流程
|
3月前
|
移动开发 开发工具 数据安全/隐私保护
iOS APP 版本更新升级教程:如何打包上架新的 APP 版本?
iOS APP 版本更新升级教程:如何打包上架新的 APP 版本?
iOS APP 版本更新升级教程:如何打包上架新的 APP 版本?
|
3月前
|
数据安全/隐私保护 iOS开发 开发者
Uniapp 最新版 iOS 打包详细步骤详解
Uniapp 最新版 iOS 打包详细步骤详解
|
4月前
|
数据安全/隐私保护 开发者
iOS- 打包上架构建版本一直不出现 / 正在处理 / 自动消失
iOS- 打包上架构建版本一直不出现 / 正在处理 / 自动消失