我从客户那里获得了一个.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工具来解决我的问题,不幸的是再次没有成功。在我的情况下,我开始相信没有解决方案来运行应用程序,但对于其他人来说,接受的答案(丹尼斯)可能是要走的路。
和平。
答案 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
中找到。
可能是应用程序与您的设备不兼容而无法启动。您可能会发现仍可以运行应用程序的设备,但通常最好使用源代码来运行应用程序。