iOS开发iOS相关技术实现android开发技巧

iOS 最省时的打包姿势

2018-01-30  本文已影响1761人  SHyH5

前言

现在网上有很多自动化打包的脚本,上网搜索一下就有这么些个,眼花缭乱,大多是使用xcodebuild命令,或者在Jenkins上面部署,方便实用。


auto1.png

打包方式

1 自动化脚本打包

无论是jekins部署还是使用xcodebuild指令的shell脚本都是不错的选择。可以自行google ,网上很多类似的案例。

2 Apple推荐的方式

使用xcode的archive功能:Product -> Archieve -> Export

3 手动build打包 (推荐指数五星)

(1) 手动编译,生成 .app 文件
(2) 把 .app 文件放在名字为 Payload 文件夹下
(3) 压缩文件夹,生成 .zip 文件
(4) 修改文件名:.zip -> ipa,打包完成
(5) 登陆各个平台(蒲公英,fir等),把本地的ipa包上传

*******************画重点***********************

这里有小弟自己写的一个上传脚本,地址在此:上传ipa脚本地址
只需要编译一下工程,生成.app文件,再配置一下脚本中的参数即可,一键上传ipa包,具体步骤如下:

遵从以上步骤之后,打开终端,输入 sh + 脚本文件路径 (可以直接把文件拖动到终端中即可)等待完成即可

代码在此:

# ************************ 相关参数配置(蒲公英和fir 二选一) **************************

# 设置是使用fir上传(改成fir)还是蒲公英上传pgyer(改成pgyer) --
isFir="fir"
# 换算成自己主文件路径 --(使用绝对路径报错,不知道为何)--
desktop="/Users/自己的用户名"
# .app 文件的路径
appFileFullPath="自己的.app文件路径,如下"
#appFileFullPath="$desktop/Library/Developer/Xcode/DerivedData/FirTextExmple-aqjhktrtgzvszeevtcsdjrypkvfs/Build/Products/Debug-iphoneos/FirTextExmple.app"

# 蒲公英的参数: 自行填写自己账号对应的key值  上传文档地址:https://www.pgyer.com/doc/api#uploadApp
uKey="自己的uKey,获取方式上面链接"
apiKey="自己的apiKey,获取方式上面链接"
# 蒲公英需要填写的版本描述
updateDescription="这是一个测试路径的版本"

# 上传到fir时,运行脚本之前要先登录一下:fir login API Token。 出现成功字段即可
# fir的参数:
#apiToken="62284d44d88e34c013e481184b409fb8"
apiToken="自己的apiToken"
#
projectDir="这是一个上传测试fir的脚本描述"
# **************************************************

programBag="$desktop/Desktop/ProgramBag"
payloadPath="$desktop/Desktop/Payload"
#计时
SECONDS=0

uploadMethod() {
if [ $isFir == "fir" ]; then
#  或者上传IPA到fir上面 -- 明天写 --
echo "正在上传到fir.im...."
fir publish "$programBag/Payload.ipa" -T "$apiToken" -c ${projectDir}
echo "\n🎉🎉打包上传更新成功!"
#输出总用时
echo "===总计用时为: ${SECONDS}s==="
rm -rf ${programBag}
else

echo "正在上传到蒲公英...."
#  上传IPA到蒲公英  file=@$programBag/Payload.ipa
curl -F "file=@$programBag/Payload.ipa" \
-F "uKey=$uKey" \
-F "_api_key=$apiKey" \
-F "updateDescription=$updateDescription" \
https://www.pgyer.com/apiv1/app/upload

if [ $? -eq 0 ]
then
echo "\n🎉🎉上传蒲公英成功"
echo "===总计用时为: ${SECONDS}s==="
rm -rf ${programBag}
else
echo "上传蒲公英失败"
fi
fi
}

mkdir -p ${payloadPath}
cp -r ${appFileFullPath} ${payloadPath}
mkdir -p ${programBag}
cp -r ${payloadPath} ${programBag} && rm -rf ${payloadPath}
cd ${programBag}
zip -q -r ./Payload.zip ./* && rm -rf Payload
if [ $? -eq 0 ]
then
mv Payload.zip Payload.ipa
echo "压缩成功"
uploadMethod
else
echo "压缩失败"
fi
image.png GifMakerProject2.gif
******************************************
结语

个人认为自动化打包脚本,打包的速度有点慢,因为自动化的脚本一般都是封装的xcodebuild指令,实际上和手动打包的原理差不多,用到了achive方法。(swift的项目可能会比oc的项目要编译的慢一点,再加上一些代码书写问题可能就会更慢(多提一嘴,这里给swift项目开发的小伙伴安利一个检测项目编译时间的工具,很实用,地址在此:BuildTimeAnalyzer-for-Xcode))
而且部署起来也稍稍有些麻烦,不错还好,一错就各种找不着头脑(可能我在网上找的脚本都比较low,或者我比较low)。
选择第二种方式,手动build 之后,生成.app 文件,然后运行自己写的脚本,是目前我觉得最省时最快捷的方式。。由于是shell初学,可能代码写的一般,旨在解决问题,哈哈(轻喷轻喷)。
对前端开发来说,shell语言的学习可以在一些方面提高我们的开发效率,毕竟人生苦短嘛!!!

如果觉得能帮到您的,麻烦点个小星星,哈哈!!大家加油!!!

参考文章:

ios自动话打包探索
shell教程,菜鸟教程

上一篇 下一篇

猜你喜欢

热点阅读