如何签署未签名的 IPA?

How do I sign an unsigned IPA?

我生成了一个未使用 xcodebuild 实用程序签名的 IPA 文件,现在我的客户想要对其进行签名。 可以使用开发人员帐户生成的现有配置文件对其进行签名吗? 另一个问题,是否可以使用与xcode相关的命令行来执行此操作?

IPA 只是一个 .zip 存档。这是一个示例脚本来理解这个想法

IPA=
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

要查找证书的名称:

  • 打开"Keychain Access"
  • 右键单击证书 -> "Get Info"
  • 复制并使用"Common Name"

您可以使用以下应用程序:

https://github.com/maciekish/iReSign