如何在不同的(开发人员)设备上运行从应用商店下载的.IPA文件?

时间:2011-11-25 12:19:33

标签: iphone ipad ipa provisioning-profile

我从客户那里获得了一个.ipa文件(没有源代码访问权限)。此应用在应用商店中不再存在。我的客户现在希望我再次编写此应用程序。要了解这个应用程序的含义,我试图通过转到Organzer > Devices然后选择我的设备来在我的开发者设备上安装.ipa文件。使用Add to portal我将文件添加到设备。

然而,在我的设备上启动应用程序时,它会上升到打开但在达到全屏尺寸之前消失。没有发布消息。

问题: 我试图弄清楚这是否是应用程序的错误(没有错误日志)或者是否不可能这样做?如果有可能,我该如何让应用程序运行?

编辑:控制台说:

SpringBoard[15] <Warning>: Unable to obtain a task name port right for pid 2582: (os/kern) failure 
Nov 25 13:25:16 unknown com.apple.launchd[1] <Notice>: (UIKitApplication:com.dcomplex.NVRViewerMilestone[0xdb31]) Exited: Killed: 9 
Nov 25 13:25:16 unknown com.apple.launchd[1] <Warning>: (UIKitApplication:com.dcomplex.NVRViewerMilestone[0xdb31]) Throttling respawn: Will start in 2147483647 seconds 
Nov 25 13:25:16 unknown SpringBoard[15] <Warning>: Application 'hawk-i' exited abnormally with signal 9: Killed: 9 
Nov 25 13:25:17 unknown kernel[0] <Debug>: AppleFairplayTextCrypterSession::fairplayOpen() failed, error -42004

更新:

使用Denis中提到的脚本后,我能够用我的替换现有签名。不幸的是我无法启动应用程序并获得如上所述的确切控制台消息,除了最后一行因不同的错误编号而异:

unknown kernel[0] <Debug>: AppleFairplayTextCrypterSession::fairplayOpen() failed, error -42022

更新2:

Denis非常善良并尝试使用谷歌的iResign工具来解决我的问题,不幸的是再次没有成功。在我的情况下,我开始相信没有解决方案来运行应用程序,但对于其他人来说,接受的答案(丹尼斯)可能是要走的路。

和平。

3 个答案:

答案 0 :(得分:4)

您可以尝试从.ipa中提取.app并使用以下bash shell文件重新签名:

#! /bin/bash 
export CODESIGN_ALLOCATE=/Developer/Platforms/iPhoneOS.platform\
/Developer/usr/bin/codesign_allocate

codesign -f -s "iPhone Developer: John Doe (XXXXXXXXXX)" $1.app

这要求您安装开发人员证书并安装配置文件,这将与通配符ID一起使用;

用法将是这样的

$>myresign.sh <your-app-filename>

this nice tool可以直接用于.ipa文件。 如果您有开发版本,它将适用于这些案例,而不是发送到iTunes Connect的版本。

答案 1 :(得分:2)

如果您从未向客户提供设备的UDID,则您将无法获得在设备上实际启动应用的权限(或正确的配置文件)。

您需要从客户那里获取源代码并构建并安装到您的设备上。如果客户没有原始开发人员的源代码而您的客户无法获得该代码,both of you are S.O.L.

答案 2 :(得分:1)

您甚至可以在设备上安装.ipa,这有点令人惊讶。这意味着您处于该应用程序的配置文件中。

所以看起来应用程序在启动时会崩溃。您可以在设备的日志中找到一些提示,您可以在Organizer -> Your Device -> Device Logs中找到。

可能是应用程序与您的设备不兼容而无法启动。您可能会发现仍可以运行应用程序的设备,但通常最好使用源代码来运行应用程序。