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包安裝失敗。