
前言
自己開發的或朋友給的
.ipaor.app如何讓親朋好友安裝后把玩?
那個誰把手機的 UDID 給我~
那個誰把手機拿過來我給你用 Xcode 裝一個~
...

解決方案
除了上架 App Store 我們還可以利用 重簽名 讓我或者公司開發的 app 安裝到非測驗設備上,也就是本文主要內容,
準備作業
1、需要被重簽名 app、archive 包、 ipa
2、$ 299 企業開發者賬號 or 企業證書(P12 檔案)+ 與此證書相匹配的任意描述檔案(.mobileprovision)
3、有效的證書(可以在鑰匙串中查找),記錄一下企業證書名稱備用

4、.mobileprovision 配置描述檔案** (以下三種獲得途徑)
-
存盤路徑:
~/Library/MobileDevice/Provisioning Profiles拷貝出來重命名embedded.mobileprovision -
可以在 Xcode 中找一個有效的,右鍵
show in finder,將檔案復制出來,重命名為embedded.mobileprovision

-
解壓又當前企業賬號 build 后的到 app
顯示包內容得到embedded.mobileprovision拷貝出來備用

(* 注:安裝包與描述檔案放到同一目錄下,我這里全部都放到桌面)
重簽名
新建 Demo 專案, 用我個人賬號對編譯出 Demo.app ,再用企業賬號對 Demo.app 重簽名,
1、選擇非企業開發者賬號編譯工程得到 Demo.app ,拷貝到桌面與上面得到的 embedded.mobileprovision 放到同一目錄下

Show in Finder

顯示包內容

將 準備作業 的第 4 步中 embedded.mobileprovision 拷貝到這里進行替換
2、 生成 entitlements.plist 檔案
先通過“security”命令,從 mobileprovision 檔案中生成一個完整的 plist 檔案
命令 : security cms -D -i "mobileprovision檔案" > "entitlements檔案"

得到結果:

我們只是為了得到里面的 Entitlements 欄位,使用如下的命令
命令 : /usr/libexec/PlistBuddy -x -c 'Print:Entitlements' tmp_entitlements.plist > Entitlements.plist

得到結果:

3、簽名
命令 : codesign -f -s "證書" --entitlements "entitlements檔案" "需要簽名的app檔案"

新建檔案夾 Payload,將 Demo.app 拷貝到檔案夾 Payload 中執行命令
命令:zip -r new_demo.ipa Payload

總結

轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/229033.html
標籤:iOS
