【问题标题】:How do I sign an unsigned IPA?如何签署未签名的 IPA?
【发布时间】:2017-04-17 08:03:10
【问题描述】:

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

【问题讨论】:

    标签: ios xcode code-signing ipa xcodebuild


    【解决方案1】:

    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
    

    要查找证书的名称:

    • 打开“钥匙串访问”
    • 右击证书->“获取信息”
    • 复制并使用“通用名”

    【讨论】:

    • 感谢您的提示。你能告诉我:CERTIFICATE="iPhone Developer: nameOfCertificate (2472ZKDHVF2A)" 是文件名 .cer 还是别的东西?
    • 更新答案。
    • 对不起.. 您的脚本中使用的“entitlements.plist”引用是什么?是一个特定的文件还是我必须生成的东西?提前谢谢..
    • 它应该存在于您的 ipa 中。无需做任何事情。
    • 我得到“archived-expanded-entitlements.xcent:没有这样的文件或目录”,我该怎么办?
    【解决方案2】:

    您可以使用以下应用:

    https://github.com/maciekish/iReSign

    【讨论】:

      猜你喜欢
      • 2013-12-04
      • 2011-07-06
      • 2011-10-17
      • 1970-01-01
      • 2017-09-04
      • 2013-02-22
      • 1970-01-01
      • 1970-01-01
      • 2013-01-30
      相关资源
      最近更新 更多