IOS 打包也非常的简单。
首先你得有 Mac 的电脑,xcode, 开发者证书。
安装 xctool, 如不会,请自行度娘。
配置好证书,然后在命令行转到项目目录 (如果你证书配置搞不定,让开发帮忙。)
1.清除
EthantekiiMac:CTest ethan$ xcodebuild clean
2.编译
EthantekiiMac:CTest ethan$ xcodebuild -target CTest -configuration Release
3.打包ipa
EthantekiiMac:CTest ethan$ xcrun -sdk iphoneos PackageApplication -v /Volumes/workildCommand/test/CTestild/Release-iphoneos/CTest.app -o /Volumes/workildCommand/test/CTest/CTest.ipa
跟 android ant 打包一样,也是三条命令。
然后我整了个脚本:
#!/bin/sh
# autoBuild.sh
# Created by Xie Ming on 15-04-28.
# Copyright (c) 2015年 XieMing. All rights reserved.
###############################################
#使用方法
#./autoBuild.sh arg1 arg2
#arg1 项目的路径,例如:/Users/apple/code
#arg2 为项目编译ID
###############################################
###############################################
#参数检查
if [ -z "$1" ];
then
echo "error:项目路径为空"
exit 1
fi
if [ -z "$2" ];
then
echo "error:项目编译ID为空"
exit 1
fi
#日志地址
logPath="${1}/log.txt"
#ipa地址
ipaPath="${1}/${2}.ipa"
##############################################
#清理项目
cd $1
xcodebuild clean
###############################################
#编译并将日志写到文件 正式使用需要修改 Debug/Release
xcodebuild -target XXXX -configuration Debug > ${logPath}
#判断是否编译成功
if [[ $? -eq 0 ]];
then
echo "build success"
else
cho "build error"
exit 2
fi
###############################################
#生成ipa
xcrun -sdk iphoneos PackageApplication -v build/Debug-iphoneos/*.app -o ${ipaPath}
if [[ $? -eq 0 ]]; then
rm -rf build
echo "create ipa success"
exit 0
else
echo "create ipa error"
exit 2
fi
打包能成功。通过 Debug/Release 来控制签名和不签名。
Jenkins 上要装 xcode 的插件。 配置好后,你会发现一直失败,每次都会在 codsign 出错。然后你不在 jenkins 中调用,只用命令执行是通过的。这个问题困惑了我好久,最后找到了方案:
在 jenkins 中设置 Unlock Keychain.
现在能打包成功。
但是下一个问题又来了。
打好的包只是在运行打包的机子上。
找到一种解决方案是配置 FTP,然后用网页下载。
但是没有 FTP 服务器资源。
最终自己写了个脚本,用邮件发附件形式发出来,虽然很丑,也算是曲线救国把。
好像打包过程中,可以把单元测试也一起做了,没有去尝试,等有空了去看看。