天天看點

iOS證書及ipa包重簽名探究

identifier的基礎上增加了證書id,也就說安裝包和手機上已安裝app的bundle identifier即使一緻,如果兩者簽名的證書id不相同,那麼安裝包也無法正常安裝。證書id是什麼?

iOS證書及ipa包重簽名探究

圖中方框裡字元串就是證書id,更新後的ipa辨別就是證書id+bundleid,隻有兩者完全比對,安裝包才能覆寫安裝,否則就會提示安裝失敗。解決辦法就是解除安裝安裝包,重新安裝!

1

the entitlements specified in your application’s code signing entitlements file do not match those specified in your provisioning profile

目前,重簽名主要用于企業證書重簽名個人證書釋出的ipa包,包括各種助手及企業内測包的釋出等。在重簽名前,讓我們先看看一個完整的ipa包有哪些與證書相關的東西!打開ipa包,會發現_codesignature和embedded.mobileprovision兩個檔案

iOS證書及ipa包重簽名探究

_codesignature,ipa包簽名檔案

embedded.mobileprovision,證書配置檔案

iOS證書及ipa包重簽名探究

1、解壓ipa安裝包

cp olinone.ipa olinone.zip

2、替換證書配置檔案(檔案名必須為embedded,不得自定義)

cp embedded.mobileprovision payload/olinone.app

3、重簽名(certifiername為重簽名證書檔案名,可以加證書id字尾)

2

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包安裝失敗。如果有其它關于簽名的問題,可以在文章下面跟我留言!

繼續閱讀