在iOS SDK 4.2上构建越狱设备

时间:2010-11-26 22:17:26

标签: iphone objective-c cocoa-touch xcode jailbreak

我有一个我在Cydia上发布的应用程序。它没什么好看的,只是一个连接到Web API的GUI。

我最后一次提交更新是在SDK 4.0之前,我使用了可用的指令here从Xcode构建它而没有签名,并在OSX终端上使用ldid对其进行签名。一切都很好。

现在,当我使用4.2 SDK完全像以前那样构建时,无代码签名(和ldid)仍然有效,我可以在4.2设备上运行它,但应用程序赢了' t在3.1.3设备上运行(只显示Default.png和崩溃)。如果我建立&另一方面,它从Xcode运行,它可以在任何设备上运行,从iOS 3.0到4.2。因此,我不认为这可能是库或链接的问题,而是代码签名。

在项目设置上,我有4.2作为基础SDK,3.0作为部署目标。

如果我尝试在3.0 iPhone 2G设备上启动应用程序,这就是我在控制台上获得的内容:

kernel[0] <Debug>: seatbelt: hook..execve() killing pid 913: outside of container && !i_can_has_debugger
SpringBoard[162] <Warning>: Failed to spawn MyApp. Unable to obtain a task name port right for pid 913: (os/kern) failure
com.apple.launchd[1] <Notice>: (UIKitApplication:org.lobato.MyApp[0xaa9d]) Exited: Killed
com.apple.launchd[1] <Warning>: (UIKitApplication:org.lobato.MyApp[0xaa9d]) Throttling respawn: Will start in 2147483647 seconds
SpringBoard[162] <Warning>: Application 'MyApp' exited abnormally with signal 9: Killed

任何人都有这方面的经验,可能会指出我正确的方向吗?

谢谢!

3 个答案:

答案 0 :(得分:1)

我看到的与你完全相同。我有一个使用最新的xcode编译的应用程序,目标是最新的SDK(4.2)和Device 3.0。

我正在尝试安装原装iphone jailbroken运行3.1.3。

当我编译没有代码签名并运行ldid时,我在启动时看到同样的崩溃。我找到的一件事是,如果我只使用我的开发证书和SSH签名到设备它运行正常(没有安装配置文件)。需要再试一次,以确保它真的有效。我试图确保删除了所有配置文件并重新启动以确保内存中没有任何内容。

答案 1 :(得分:1)

可以签署胖二进制文件的更新ldid heresource

答案 2 :(得分:0)

问题是ldid无法签署胖二进制文件,这意味着您只需要为armv6armv7(而不是两者)构建应用。您可以通过进入项目设置并编辑Architectures参数来实现。

要仔细检查您的二进制文件只有一个体系结构,您可以使用lipo工具:

lipo -i MyApp.app/MyApp