步驟:

  1. 通過 xcode 申請 mobile provision

  2. 解壓 ipa 文件
    unzip "$ipa_path"
  3. 刪除原有簽名
    rm -rf Payload/Application.app/_CodeSignature
  4. 修改 Bundle ID 爲 mobile provision 中的 bundle ID
    /usr/libexec/PlistBuddy Payload/Application.app/Info.plist
    Set :CFBundleIdentifier com.mycompany.newbundleidentifier
    save
    quit
  5. 複製 mobile provision 文件
    cp "$mobile_provision_path" Payload/Application.app/embedded.mobileprovision
  6. 添加 provision.plist
    security cms -D -i Payload/Application.app/embedded.mobileprovision > provision.plist
    /usr/libexec/PlistBuddy -x -c 'Print :Entitlements' provision.plist > entitlements.plist
  7. 查找證書名稱
    security find-identity -p codesigning
  8. 重新簽名
    codesign -f -s "$identiti_name" --entitlements entitlements.plist Payload/Application.app
  9. 打包
    zip -qr resigned.ipa Payload/
  10. 最後,用 xcode 安裝到手機