【问题标题】:iOS Enterprise: Re-certify existing IPA with new certificateiOS Enterprise:使用新证书重新认证现有 IPA
【发布时间】:2011-12-06 15:03:42
【问题描述】:

我们已加入 iOS 企业计划。用于我们发布的应用程序的配置文件即将到期,因此我获得了新的证书和配置文件。

我需要使用新的配置文件重新分发我们的一些应用程序,而不是重新构建它们。如何?

(我隐约记得看到一个实用程序正是这样做的:您选择一个 IPA 和一个配置文件,它会使用新的配置文件和证书创建一个新的 IPA。工具的名称是什么,我在哪里可以得到吗?)

【问题讨论】:

    标签: ios distribution provisioning ios-provisioning provisioning-profile


    【解决方案1】:

    理论上,在 XCode 中构建最后一个 IPA 的人应该使用 Archive - 这会创建一个构建,您可以签名以创建 IPA(使用 XCode)。

    您也可以尝试使用命令行签名工具XCRun 重新签署您现有IPA 中捆绑的应用程序:

    http://skabber.com/package-your-ios-application-with-xcrun

    【讨论】:

      【解决方案2】:

      好的,原来你知道what term to google,这里有很多优秀的资源……

      它们都指向xcrun。我使它与这个 shell sn-p 一起工作,改编自 this promising build script:

      APP_FILENAME=MyApp.app
      BUILD_DIRECTORY=/Path/To/Target/Dir
      IPA_FILENAME=MyApp.ipa
      DISTRIBUTION_CERTIFICATE='iPhone Distribution'
      PROVISIONING_PROFILE_PATH='/Path/To/Profile.mobileprovision'
      /usr/bin/xcrun -sdk iphoneos PackageApplication -v "$APP_FILENAME" -o "$BUILD_DIRECTORY/$IPA_FILENAME" --sign "$DISTRIBUTION_CERTIFICATE" --embed "$PROVISIONING_PROFILE_PATH"
      

      【讨论】:

        【解决方案3】:

        iOS SDK 工具中包含的 codesign 命令行实用程序将允许添加/更改用于签署开发人员构建的应用程序的证书和配置。

        【讨论】:

          【解决方案4】:

          正如 hotpaw2 的回答所说。您也可以使用协同设计工具辞职。

          我这样做的方式(这可能不是最有效的,但很有效)

          1. 将 .ipa 重命名为 .zip 并解压

          2. 运行以下命令:

            /usr/bin/codesign -f -s "iPhone Distribution: Company Name" "Payload/MyApp.app"
            
          3. 重新压缩 Payload 文件夹并重命名为 .ipa

          注意:您也可以使用此方法编辑embedded.mobileprovisioning 文件!如果您使用的是 finder,请记住删除 .DS_Store (rm Payload/.DS_Store)。

          【讨论】:

            【解决方案5】:

            如果您只是按照以下步骤从同一帐户中退出应用程序,则可以手动方式

            所有这些都使用 shell 脚本,只要你知道如何使用 shell 命令,就超级简单。

            1. 将 IPA 重命名为 zip
            2. 将此文件解压缩到临时文件夹
            3. 从所有目标中删除旧的 _CodeSignature 文件夹(如果您有多个目标,例如 main、watch、watch extn、siri、widget、message 等)
            4. 将所有目标 prov-profiles 放在一个文件夹中,并将每个目标的所有 embedded.provisioningprofile 文件替换为新文件
            5. 删除存档的....xccent 文件,因为这是旧文件(可选)
            6. 为所有权利(如果有应用程序使用)创建的 entitlements.plist 代码签名。
            7. 在代码签名后将文件夹压缩回去,一切正常,没有错误
            8. 将 zip 重命名为 IPA

            注意:要在上传到 Apple 之前验证 IPA,您可以使用内置 XCode App Loader 中的 altool 来检查新的 IPA。

            参考:这里也解释了命令的步骤: http://www.enterpriseios.com/forum/topic/Resigning_3rd_party_apps

            如果您想摆脱手动签名,请使用 fastlane 工具,它非常简单且易于配置。https://fastlane.tools/

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 1970-01-01
              • 2017-11-24
              • 2011-04-08
              • 2012-08-13
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2020-10-05
              相关资源
              最近更新 更多