将 IPA 从开发转移到企业

Resign IPA from development to enterprise

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

背景:我的客户需要.ipa文件。他拥有企业证书,他不会与我们分享。思路是我把.ipa文件连同我自己的开发证书一起交付给他。他使用他的企业证书辞职,以便他可以在他的内部应用程序商店中部署他的应用程序。

目前我已经签署了我的 .ipa 文件并准备好提交文件,但我必须确定它是否可行。

我阅读了 this 文章,但假设配置文件是针对 Adhoc 或企业分发的。这不是我的情况,我不知道这是否重要。

ipa构建后可以resign

  1. 终端方式 - 你可以试试这个。 https://coderwall.com/p/cea3fw/resign-ipa-with-new-distribution-certificate

  2. 工具 - https://github.com/xndrs/XReSign - 退出 IPA 的绝佳工具。

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

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

  1. 解压 ipa

    unzip MyApp.ipa

  2. 删除现有签名

    rm -rf Payload/MyApp.app/_CodeSignature/

  3. 将您的 Ad-Hocenterprise 配置文件复制到负载的 embedded 配置文件。

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

  4. 使用钥匙串中可用的 Ad-hocEnterprise 证书的相关代码签名标识重新签署 .app 文件。

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

  5. 压缩 payload 并给出你想要的 ipa 的名称。

    zip -qr MyApp_Resigned.ipa Payload/

您可以使用fastlane and resign命令

在文档中安装

用法:

1) fastlane init

2) fastlane/Fastlane(file)

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

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

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

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

  1. 存档应用程序。在菜单中执行 Product -> Archive
  2. 打开管理器。 Window -> 组织者
  3. Select 应用程序,然后将您刚刚创建的存档。
  4. 右键单击存档并选择 在 Finder 中显示

从那里你可以

  • 如果您希望他们拥有调试信息和位,请提供整个 .xcarchive(这是一个 ZIP 文件)。

  • 进入 .xcarchive,然后进入 Products -> Applications 并在那里提供未签名的 .ipa 文件。

这对您来说工作较少,并且可以防止您 运行 陷入任何陷阱,例如不小心向他们发送您为开发构建的二进制文件。