Entitlements其实是一个配置文件,对于一些要开启的app功能,需要使用Entitlements文件来做配置。Entitlements文件管三个东西:iCloud、push notification、App沙盒(ios下app沙盒是自动配置的,并不需要Entitlements,所以这里实际上是指mac下的app沙盒)。
代码签名探析文中还提到entitlements.plist授权文件,重签名时也需要处理。按照下图内容创建plist文件,输入相关信息。
整个签名过程如下(文件路径自定义)
1、解压ipa安装包
cp olinone.ipa olinone.zip
2、替换证书配置文件(文件名必须为embedded,不得自定义)
cp embedded.mobileprovision Payload/olinone.app
3、重签名(certifierName为重签名证书文件名,可以加证书ID后缀)
certifierName="iPhone Distribution: olinone Information Technology Limited(6a5TVN58SY)"
codesign -f -s $certifierName --entitlements entitlements.plist Payload/olinone.app
4、打包
zip -r olinone.ipa Payload
很多人在重签名时会忽略第二步或者没有指定entitlements.plist,都会造成ipa包安装失败。