iOS 自动打包 IPA 相关
Posted lesten
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了iOS 自动打包 IPA 相关相关的知识,希望对你有一定的参考价值。
自动安装证书和描述文件
#解锁 钥匙串
security unlock-keychain -p 电脑密码 $HOME/Library/Keychains/login.keychain
# 导入 证书
security import $run_path/$accountDir/$bundleid.p12 -k $HOME/Library/Keychains/login.keychain -P $p12Pwd -T /usr/bin/codesign
#拷贝 描述文件 $HOME/Library/MobileDevice/"Provisioning Profiles"/ 电脑都所有描述文件都放在这个路径下
cp $run_path/$accountDir/$bundleid.mobileprovision $HOME/Library/MobileDevice/"Provisioning Profiles"/$bundleid.mobileprovision
#自动出包 或者App 破解 重新打包 都需要用到重签名。
#重签名 根据描述文件 导出证书相关信息
security cms -D -i "$upload_path/upload/embedded.mobileprovision" > t_entitlements_full.plist
#通过PlistBuddy 从中拿出重签名需要的部分
/usr/libexec/PlistBuddy -x -c ‘Print:Entitlements‘ t_entitlements_full.plist > t_entitlements.plist
#同样的解锁钥匙串
security unlock-keychain -p lesten123 $HOME/Library/Keychains/login.keychain
#然后进行签名 ipacert="iPhone Distribution: XXXXXXXX. (*****)"
# codesign -fs "$ipacert" embedded.mobileprovision --entitlements t_entitlements.plist game.ipa
签名成功后,可以用codesign校验 签名是否有效, 需要 将game.ipa 解压出app 然后用以下命令
codesign --verify game.app
如果什么都没输出 说明校验通过
这样就不用等上传苹果后台才知道签名是否成功了
同时你还可以通过以下命令查看 app都签名信息
# xxx 待会儿补
我 遇到一个困扰我 几天的问题
a sealed resource is missing or invalid
一直没找到问题在哪里
我试了脚本打包出ipa 然后手动xcode签名 没有问题
也试了xcode打包ipa 然后xcode签名 都没有问题
然而 我通过脚本打包ipa 同时脚本签名的时候 就出现这个错误 无法上传 后台
找了种种方式 最后才找到问题
思路是这样的 我们需要了解苹果包的内容
一个app包 里面包括 一个_CodeResource 文件夹 里面的文件记录了整个App包的内容和签名
我通过 对比我脚本打包出来的App包 和 xcode 打包同一个工程的App包 的 _CodeResource 文件 发现一个隐藏文件的签名不一致
最终找到 并解决了这个问题 脚本签名的时候会 无法读取到它 但是xcode 会把它干掉 是__MacOS 文件夹里的隐藏文件
以上是关于iOS 自动打包 IPA 相关的主要内容,如果未能解决你的问题,请参考以下文章