iOS開發(fā)——ipa包重簽

在iOS開發(fā)中,為了方便測試和內(nèi)部體驗(yàn),往需要對ipa使用企業(yè)證書重新簽名,然后在內(nèi)部進(jìn)行分發(fā)。接下來,就介紹如何對ipa包進(jìn)行重簽。

簡單重簽

如果想要了解,iOS的證書及代碼簽名機(jī)制,可以閱讀這篇文章代碼簽名探析,這里就不再介紹。
  首先,下載iReSign。這是一個(gè)開源工具,下載完成后打iReSign,選擇要重簽的ipa包和重簽時(shí)使用的開發(fā)者證書,點(diǎn)擊“重新簽名”按鈕,就會(huì)在原ipa包同目錄下生成一個(gè)重簽后的ipa包。

QQ20160317-0@2x.png

  使用iTunes安裝重簽后的ipa包,這時(shí)在iOS8以下的系統(tǒng)可以正常安裝,但iOS8及以上系統(tǒng)就會(huì)安裝失敗。這是由于蘋果在iOS8.1.3系統(tǒng)以后加強(qiáng)了對ipa安裝包簽名的驗(yàn)證,主要區(qū)別在于ipa唯一標(biāo)識在原有Bundle Identifier的基礎(chǔ)上增加了證書ID,也就說安裝包和手機(jī)上已安裝APP的Bundle Identifier即使一致,如果兩者簽名的證書ID不相同,那么安裝包也無法正常安裝。

完整重簽

  1. 首先使用重簽時(shí)用的開發(fā)者證書創(chuàng)建一個(gè)App ID,bundleID隨意。


    iReSign_identifiers.png
  2. 為上一步創(chuàng)建的App ID創(chuàng)建一個(gè)Provisioning Profile并下載到本地(可以通過Xcode來完成)


    iReSign_provisioning_profile.png
  3. 創(chuàng)建Entitlements Plist。
    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
    <plist version="1.0">
    <dict>
    <key>application-identifier</key>
    <string>PREFIX.yourappBundleID</string>
    <key>aps-environment</key>
    <string>production</string>
    <key>get-task-allow</key>
    <false/>
    <key>keychain-access-groups</key>
    <array>
    <string>PREFIX.yourappBundleID</string>
    </array>
    </dict>
    </plist>

新建一個(gè)plist文件,將上面代碼粘貼過去。將其中的PREFIX.yourappBundleID替換成前第1步截圖中的PrefixID,然后將文件保存為entitlements.plist。該文件中內(nèi)容配置可以參考代碼簽名探析,比如沒有推送功能的話,就去掉如下兩行:

    <key>aps-environment</key>
        <string>production</string>
最后,打開iReSign
QQ20160317-0@2x.png
  • 第一行填待重簽ipa包的路徑
  • 第二行填第2步中下載的Provisioning Profile的路徑
  • 第三行填第3步創(chuàng)建的entitlements.plist文件路徑
  • 第四行勾選修改ID,然后填寫第1步中的bundle ID。
  • 第五行選擇重簽使用的開發(fā)者證書
  • 點(diǎn)擊重新簽名,大功告成!

重新簽名的ipa包將會(huì)存放在原ipa包同一目錄。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容