18

我正在尝试将我的 iOS 应用程序安装到运行 iOS 5.1 的设备上。它目前尚未越狱,但如果需要的话,我会这样做。

当我运行 iOS 5.0.1 时,我关注了这个线程:如何将 iPhone 应用程序从 Xcode 部署到真正的 iPhone 设备?并创建了一个自签名证书,它就像一个魅力。

更新到 Xcode 4.3.2 和 iOS 5.1 后我无法让它工作

我也试过关注这个线程但没有成功:Test iOS app on device without apple developer program or jailbreak

那么如何在不成为开发人员计划成员的情况下将我的应用程序从 Xcode 4.3.2 安装到运行 iOS 5.1 的 iPhone 4 上?

编辑:我现在可以将应用程序放到 iPhone 上。但是当我尝试启动它们时,它们崩溃了,甚至启动图像都没有出现。我已经越狱了设备,安装了 Appsync,编辑了 SDKSettings.plist 并将构建属性更改为“不要编码签名”。

这是我尝试启动应用程序时控制台给我的信息,我在 Xcode 中没有收到任何崩溃日志:

May  8 18:25:35 unknown SpringBoard[54] <Warning>: Unable to obtain a task name port right for pid 1017: (os/kern) failure
May  8 18:25:35 unknown com.apple.launchd[1] <Notice>: (UIKitApplication:com.KerschApps.Test[0x2fa8]) Exited: Killed: 9
May  8 18:25:35 unknown com.apple.launchd[1] <Warning>: (UIKitApplication:com.KerschApps.Test[0x2fa8]) Throttling respawn: Will start in 2147483647 seconds
May  8 18:25:35 unknown SpringBoard[54] <Warning>: Application 'Test' exited abnormally with signal 9: Killed: 9
May  8 18:25:36 unknown kernel[0] <Debug>: AMFI: hook..execve() killing pid 1017: no code signature

为什么我的所有应用程序在模拟器中运行良好时都会在 iPhone 中崩溃?

谢谢/蒂姆

4

3 回答 3

11

我遇到了和你完全相同的问题,让应用程序在 iOS 5.1 和 Xcode 4.3.2 上运行,我刚刚设法让它在这里使用这种方法几乎完美地工作:

使用 Xcode 4.3.2 为 iOS 5.1 构建应用程序

它基于iPhone Dev wiki 中的这个,但我必须包含一些更改 - -gta 开关会导致构建错误,并且说明并不完全明确。完整的教程在该博客文章中,但步骤基本上是:

  1. 创建名为“iPhone Developer”的自签名证书
  2. 重新打开 Xcode 项目构建设置中的“代码签名身份” - 以使用您的自签名证书“​​iPhone 开发人员”
  3. 按照说明更改 info.plist 的出现
  4. 下载ldid,使其可执行
  5. 创建 python 脚本,将其粘贴在 /usr/bin 中,相应地更改 python 脚本引用
  6. 更改 iPhoneCodeSign.xcspec 以使用 ldid3.py
  7. 通过 ssh 触摸在设备上创建 tdmtanf 文件
  8. 不要将 -gta 标志放在“其他代码签名标志”中

我碰巧使用 Unity 进行调试,因此使用 -gta 进行 Xcode 调试的缺乏并没有打扰我——显然 Objective C 开发人员将需要这个功能,所以希望有人可以扩展它,如果他们让它工作。我目前正在我的 iPhone 5.1 上使用我的应用程序的开发版本,并且手指交叉你可以获得相同的结果。

于 2012-05-26T03:55:50.863 回答
1

我不知道你是否解决了你的问题,但我遇到了和你一样的问题。我将解释如何解决。

要求:

Xcode 4.3.2,带有 iOS 5.1.x 的 iPhone,Mac。

您所需要的只是自动签署您的应用程序。您所做的所有步骤都是正确的,因此当您从 Xcode 构建应用程序时,您需要对其进行签名。在钥匙串中创建一个自我证书,然后进入 xcode 编译应用程序的文件夹(通过终端),然后编写:

mac$ platform=/Developer/Platforms/iPhoneOS.platform
mac$ allocate=${platform}/Developer/usr/bin/codesign_allocate
mac$ export CODESIGN_ALLOCATE=${allocate}
mac$ codesign -fs "Name" Program

其中“Name”是证书的名称,Program 是 Program.app 的名称(您必须指定 .app)。通过 ssh 或cyberduck 或iTunes 将您的应用程序复制到/Applications 中......然后重新开始享受!

于 2012-05-18T06:26:02.437 回答
1

我试图做同样的事情,但有几次失败了,然后我找到了Moustafa Hassan 的博客,里面有我成功使用的步骤。

它可以在 OS X 10.8.4(在我的 Hackintosh 上)和我的 iPad 上的 iOS 6.1.2 上使用 Xcode 4.6.3 进行良好的测试

该页面包含一步一步的示例和图片来完成这项工作。只需大约 15 分钟。

我能想到的唯一没有在页面上列出的是如何在 OS X 设备上访问 /usr/local/bin。这很容易通过在终端[1]中显示隐藏文件来完成。

[1]:默认写入 com.apple.Finder AppleShowAllFiles YES

于 2013-07-29T13:04:25.390 回答