列出全部開發者證書文件:html
security find-identity -p codesigning -v
ios
security cms -D -i XX.mobileprovision > profile.plist
/usr/libexec/PlistBuddy -x -c 'Print :Entitlements' profile.plist > entitlements.plist
cat entitlements.plist
|
cp XX.mobileprovision Payload/XX.app/embedded.mobileprovision
git
/usr/libexec/PlistBuddy -c "Set :CFBundleIdentifier com.XX.XX" Payload/XX.app/Info.plist
github
rm -rf Payload/XX.app/_CodeSignature
app
/usr/bin/codesign --force --sign 84A4B9F1F902462CC33D01E9FF72C1BA04A97653 --entitlements entitlements.plist /Payload/XX.app/Frameworks/JSONModel.framework
ide
/usr/bin/codesign --force --sign 84A4B9F1F902462CC33D01E9FF72C1BA04A97653 --entitlements entitlements.plist Payload/XX.app/XX
工具
codesign -vv -d Payload/XX.app
url
注意:重簽名有順序,先把framework和dylib簽名,最後再簽名:XX.app/XX,順序弄錯了,就算簽名成功也可能會安裝失敗!調試
ios-deploy -d -b Payload/XX.app
code
出現以下success字樣,就證實成功了!
過程當中若是遇到錯誤提示:「Error 0xe8000067: There was an internal API error. AMDeviceSecureInstallApplication(0, device, url, options, install_callback, 0)」
錯誤緣由:可能存在有framework或者dylib未簽名的狀況。
解決方案:把app文件夾下面的framework所有簽名。
zip -qry ppdest.ipa Payload
rm -rf Payload/
|