2012-12-19 131 views
22

我想了解代码签名过程是如何工作的。我的目标是获取与公司A的企业证书签署的.ipa文件,更改包ID,然后再与签署公司B的App Store分发证书并发布到App Store。如何重新签署App Store发布的iOS应用程序?

首先,这甚至有可能吗?我读here,“...我敢肯定,你不能(也不应该)使用这个工具来取消App Store分发证书的应用程序”。有人可以详细说明吗?

我已经尝试了许多脚本像thisthisthis,但一些调整后,他们都似乎有同样的问题,当我尝试发送应用程序使用应用程序加载器的审查。我得到的错误是:

  • 应用程序失败的codesign验证。签名无效, 包含不允许的权利,或者未使用iPhone 分发证书进行签名。
  • 无法抽取的权利从/var/folders/67/(large_number)/new.ipa/Payload/original.app/original

任何人可以帮助我吗?请注意,我知道如何通过出口证书等方式来实现这一目标 - 但在此我正在探讨,如果我向他们提供公司A的.ipa文件,公司B是否可以自己做到这一点。我可以更详细地解释我在做什么,如果需要 - 请问。

谢谢!

编辑:我已经知道this closed SO question,但我发布了一个新的,因为我认为我的更具体,我不是要求一种通用的方式来实现我想要的 - 我只想看看是否描述情况是可能的。

回答

0

我已经使用AirSign应用程序节省了大量时间(当我发布我的原始问题时这是不可用的)。

6

要退出一个新的应用程序,这应该是可能的,您将需要在开发者门户中创建所有新的分发配置文件(假设您有这么多)。一切都需要从你的应用程序匹配到新的配置文件。应用ID可能是最重要的。当你创建一个新的,你必须在你的项目中进行设置以匹配。通常是com.companyname.appname.optional。这个新的应用程序ID必须在您的构建设置中与Bundle标识符配对。一旦你匹配了,你应该能够将它与新的发行版/配置文件配对。

FWIW,交换这些配置文件必须是所有iOS开发中最复杂的过程。这可能需要一些修补和试验和错误,但我确信它可以完成。祝你好运。

+0

是的,我拥有测试所需的所有配置文件。我看到,当我辞职时,Bundle ID会发生变化,但我认为权利会出问题。你对此有更多了解吗? – phi

+0

我很确定权利是项目特定的,与任何供应无关。您应该能够从摘要选项卡配置权利,并让Xcode为您解决问题。 –

2

我以前遇到过麻烦。在Xcode中设置新的配置文件并重新构建似乎可行,但在编辑带有包ID的plist后,使用命令行退出现有应用程序让我非常痛心。我怀疑这是在构建应用程序时嵌入的配置文件,但说实话,我不确定。

我看到你遇到了权利问题 - 请注意,其中一些设置在开发者档案中(推送通知,IAP和iCloud),并且必须在那里正确。

第二个技巧是Xcode在项目中(某处)缓存dev配置文件,所以即使从Library文件夹中的移动配置文件文件夹中删除了一个文件夹,也必须实际在Xcode的目标设置中进行更改项目或它可能仍然使用旧的(grrr)。

相关问题