关于xcode:将IPA从开发转移到企业

Resign IPA from development to enterprise

是否可以将使用开发证书签名的.ipa文件重新签名为企业证书?

背景:我的客户需要.ipa文件。 他拥有不会与我们共享的企业证书。 我的想法是,我用自己的开发证书交付.ipa文件,然后将其交付给他。 他使用企业证书将其辞职,因此可以将其应用程序部署在内部应用程序商店中。

目前,我已经签名了.ipa文件,并且可以提交文件了,但是我必须确定这是可能的。

我读了这篇文章,但是假设有一个配置文件是针对Adhoc的,还是针对Enterprise分发的。这不是我的情况,我也不知道这是否重要。


建立IPA之后,可以将其辞职。

  • 终端方式-您可以尝试此操作。 https://coderwall.com/p/cea3fw/resign-ipa-with-new-distribution-certificate

  • 工具-https://github.com/xndrs/XReSign-一个出色的IPA签名工具。


  • 您可以使用fastlane和resign命令

    在文档中安装

    用法:

    1)fastlane init

    2)fastlane/Fastlane(file)

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    default_platform(:ios)

    platform :ios do
      desc"Resigning Current Provision"
      lane :resigner do
        resign(
          ipa:"location/appName.ipa",    
          signing_identity:"iPhone Distribution: Bbalbalbalbal.xxxxx",
          provisioning_profile:"location/xxxxx.mobileprovision",
        )
        # add actions here: https://docs.fastlane.tools/actions
      end
    end

    3)运行fastlane ios resigner


    要为企业或临时分发ipa辞职,您可以按照以下简单步骤操作:

    要使用终端设备退出应用,您可以按照以下步骤操作:

  • 解压缩ipa

    unzip MyApp.ipa

  • 删除现有签名

    rm -rf Payload/MyApp.app/_CodeSignature/

  • 将您的Ad-Hocenterprise供应配置文件复制到有效负载的embedded供应配置文件。

    cp ~/Desktop/MyAdHoc.mobileprovision Payload/MyApp.app/embedded.mobileprovision

  • 使用钥匙串中可用的Ad-Hocenterprise证书的相关代码签名身份重新签名.app文件。

    codesign -f -s"iPhone Distribution: Code signing Certificate for Enterprise or Ad-hoc app" Payload/MyApp.app

  • 压缩有效负载并提供所需的ipa名称。

    zip -qr MyApp_Resigned.ipa Payload/


  • 不要将开发二进制文件用于生产。

    您不应将开发二进制文件辞职为企业/生产二进制文件。开发二进制文件通常包含许多额外的东西,这些东西可以调试和运行所有那些工具,这些工具可以帮助我们改善应用程序。这些会使二进制文件更大,更慢,使用更多功率并带来安全风险。

    为了回答这个问题,您可以做的最简单的事情就是提供一个未签名的应用程序,您的客户可以自己签名。

  • 存档应用。在菜单中执行产品->存档
  • 打开管理器。窗口->组织者
  • 选择该应用,然后将您刚创建的存档。
  • 右键单击存档,然后选择"在Finder中显示"。
  • 从那里你可以

    • 如果希望他们具有调试信息和位,请交付整个.xcarchive(ZIP文件)。

    要么

    • 进入.xcarchive,然后进入"产品"->"应用程序",并将未签名的.ipa文件交付给他们。

    这对您来说工作量较小,并且可以避免遇到任何陷阱,例如意外地将它们发送给您开发的二进制文件。