2016-12-02 99 views
3

我已生成一個IPA文件,未簽名xcodebuild實用程序,現在我的客戶想要簽名它。 可以使用由開發人員帳戶生成的現有配置文件對其進行簽名嗎? 另一個問題,有可能使用與xcode相關的命令行來做到這一點?如何簽名未簽名的IPA?

回答

2

IPA只是一個.zip壓縮文件。下面是一個示例腳本的想法

IPA=$1 
PROVISION="/path/to/nameOfProfile.mobileprovision" 
CERTIFICATE="iPhone Developer: nameOfCertificate (2472ZKDHVF2A)" # must exist in keychain 
# unzip the ipa 
unzip -q "$IPA" 
# remove the signature 
rm -rf Payload/*.app/_CodeSignature Payload/*.app/CodeResources 
# replace the provision 
cp "$PROVISION" Payload/*.app/embedded.mobileprovision 
#copy existing entitlements to use it for resigning 
cp Payload/*.app//archived-expanded-entitlements.xcent entitlements.plist 
# sign with the new certificate 
/usr/bin/codesign -f -s "$CERTIFICATE" --entitlements "entitlements.plist" Payload/*.app 
# zip it 
zip -qr newIpaName.ipa Payload 
#clean up 
rm -f entitlements.plist 
rm -rf Payload 

要找到證書名稱:

  • 打開「鑰匙串訪問」
  • 右鍵+點擊證書 - >「獲取信息」
  • 複製並使用「通用名稱」
+0

感謝您的提示。你能告訴我: CERTIFICATE =「iPhone開發者:nameOfCertificate(2472ZKDHVF2A)」 文件名是 .cer還是其他的東西? –

+0

已更新的答案。 – shallowThought

+0

對不起。腳本中使用的「entitlements.plist」參考是什麼?是一個特定的文件或我必須生成的東西?在此先感謝.. –