# ipa 重新簽名 流程 Apple 在包版時,會產生ipa檔,其中就包含重要的簽名檔 & profile ,不清楚[iOS App Distribute flow 可先參考這篇](https://hackmd.io/nKw3RWGURbil77eFIa6V-g)。 ---------------------------------- ## 壹、產生新配置文件(profile) :::danger 從ipa重新簽名這件事,較非正式,有機會被官方鎖帳號!要斟酌風險。 ::: ### 一. 開起 新專案 把 Signing & Capabilities 這塊設定好。 ![](https://i.imgur.com/cDf5N5d.png) ### 二. 在實機上運行 ![](https://i.imgur.com/TJzdbv1.png) ### 三. 保存 profile 檔 run成功後,代表相關配置文件xcode已經產生好。 回到專案中,在 poeject editor 的 Products 找到.app檔,右鍵 Show in Finder 。 ![](https://i.imgur.com/axBm8N7.png) 在 .app 上 右鍵 顯示套件內容 ![](https://i.imgur.com/e8G4y8A.png) 打開套件後,裡面有一個 ==.mobileprovision 檔==,這就是我們要的profile,把他複製到其他地方後面會用到。 ![](https://i.imgur.com/V7CteM7.png) :::info #### 如在poeject editor 找不到 Products 資料夾,調整如下: 1. 在該專案的資料夾位置,找到 .xcodeproj 右鍵 顯示套件內容 ![](https://i.imgur.com/BiUReXy.png) 2. 找到 .pbxproj 檔 ,用xcode開起來。 ![](https://i.imgur.com/Bv0LPAK.png) 3. 搜尋 "productRefGroup" ,後面接有 ==/* Products */== 不要找錯。 ![](https://i.imgur.com/SkaVIH0.png) 4. 用上面"mainGroup" 的值,把 “productRefGroup” 的值替換掉(2個要一樣)。 - 儲存後,重開專案 “Products” 就會出現了。 ![](https://i.imgur.com/DCg4tSn.png) ::: ## 貳、查開發者 ID 這邊提供2種找法: 1. 如果已經安裝[applesign](https://github.com/nowsecure/node-applesign) ``` ./applesign.js -L ``` 2. 用 ``` security find-identity -v ``` 找到剛剛簽名的開發者,前面ID 可以先記錄後續會用到。 ![](https://i.imgur.com/XsilfcU.png) ## 參、開始打包 先下載 [applesign](https://github.com/nowsecure/node-applesign) 這工具是.js檔,在terminal 直接執行就好。 ``` bin/applesign.js -r -a -i 這邊key開發者ID -m 這邊放profile檔路徑 這邊放要重新簽名的ipa ``` enter 執行後,就完成了。 需注意log 有沒有報錯。 ## 肆、裝到實機 這邊提供2種方式使用 1. 使用Xcode 安裝,把ipa拉進 "INSTALLED APPS" 中。 ![](https://i.imgur.com/pp1ri04.jpg) ![](https://i.imgur.com/X4zPu8L.png) 2. 安裝[ideviceinstaller](https://www.cnblogs.com/chen-xia/articles/14268025.html) ``` ideviceinstaller -i your_ipa_path ``` ## 伍、實機需信任開發者 手機路徑:設定 -> 一般 -> 裝置管理 -> 選擇開發者 -> 信任 ![](https://i.imgur.com/JcNENOa.png) ## Tool - [applesign](https://github.com/nowsecure/node-applesign) - [ideviceinstaller](https://www.cnblogs.com/chen-xia/articles/14268025.html)