打ipa包, 最传统的从xcode中archive 就不说了 ,
写点省事的,脚本打包. 脚本打包前还是需要手动配置好工程的,脚本只能代替你完成点击archive 到生成ipa的过程, 证书配置是做不到的.
说实话,第一次接触脚本,费了很多时间,看了2个小时视频,在加上看了点博客,懂了一点点语法,终于能看懂并且能运行了. 视频链接 http://study.163.com/course/courseMain.htm?courseId=306001 博客 http://blog.csdn.net/xiaominghimi/article/details/7603000
简单说,把下面内容复制到一个新的文件中,保存为脚本名.sh , 我不会告诉你,连这一步我当时都不会,保存成了 脚本名.shell , 然后 气得想砸电脑 .
然后 cd 进入脚本所在的文件夹 ,第一次执行需要给脚本开权限 以后就不用了 执行 chmod +x 脚本名.sh
脚本有了权限后 执行 ./脚本名 工程所在路径 包名 就行了, 第一次看人家写的例子 , 他是(工程路径), 我没去掉括号, 就一直出错 , 发现这个错误后 感觉被狗日了,生无可恋了 .
运行成功后, 在工程所在路径下有一个build/ipa 文件夹, 里面就是ipa包了, 注意 证书设置 ,如果只是开发者,打出来的包是内测包,需要在开发者账号中添加设备才能运行 , 企业证书打包 是 企业版, 不用添加设备了 .
#!/bin/bash
#参数判断
if [ $# != 2 ];then
echo "Params error!"
echo "Need two params: 1.path of project 2.name of ipa file"
exit
elif [ ! -d $1 ];then
echo "The first param is not a dictionary."
exit
fi
#工程路径
project_path=$1
#IPA名称
ipa_name=$2
#build文件夹路径
build_path=${project_path}/build
#编译工程
cd $project_path
xcodebuild || exit
#打包
cd $build_path
if [ -d ./ipa ];then
rm -rf ipa
fi
mkdir -p ipa/Payload
cp -r ./Release-iphoneos/*.app ./ipa/Payload/
cd ipa
zip -r ${ipa_name}.ipa *
rm -rf Payload
看完视频后就可以试着改一些参数了, 下面是修改完的. 其实就是把需要传的参数,写死在脚本里了. 不用以后传参数了
#!/bin/bash
#工程路径
project_path="/Users/ly/Desktop/无名高地/完美启动页"
#IPA名称
ipa_name="完美启动页"
#build文件夹路径
build_path=${project_path}/build
#编译工程
cd $project_path
xcodebuild || exit
#打包
cd $build_path
if [ -d ./ipa ];then
rm -rf ipa
fi
mkdir -p ipa/Payload
cp -r ./Release-iphoneos/*.app ./ipa/Payload/
cd ipa
zip -r ${ipa_name}.ipa *
rm -rf Payload
还是一个是上传, fir,蒲公英都可以, 我是采用了fir, https://github.com/FIRHQ/fir-cli
fir还是有很多坑 ,安装比较费事. 第一次浪费一下午,然而以后却节省了更多的时间,所以还是推荐这个.
后期主要用了这个脚本,和上面的相比来说,少了xcodebuild这一步,这一步我是自己command + B完成的.
说下用这个脚本打包的过程.
配置 : Sourse是xcode生成的.app路径,PayLoad可以是任意地方,一般是设置成桌面路径.除此以外还需要设置下fir的token.
打包:1.选择好证书;2.选择generic iOS Device;3.编译,command+B;4.编译完成后,执行此脚本. 执行完成后会打开一个网页.大功告成.
熟练的话,打一个包2-3分钟即可完成.而且操作也很少.
# 参考文章 https://www.jianshu.com/p/1f47066da6f7
Sourse=/Users/edz/Library/Developer/Xcode/DerivedData/KPL-fwavfsoypkvtvgalgbsmmbrcqxdt/Build/Products/Debug-iphoneos/KPL.app
PayLoad=/Users/edz/Desktop/Payload
bag=/Users/edz/Desktop/ProgramBag
mkdir -p ${PayLoad}
cp -r ${Sourse} ${PayLoad}
mkdir -p ${bag}
cp -r ${PayLoad} ${bag}
cd ${bag}
zip -r ./Payload.zip .
mv Payload.zip Payload.ipa
fir p ${bag}/Payload.ipa -T "fir的token"
yes | rm -r ${PayLoad}
yes | rm -r ${bag}
open https://fir.im/mp8y