【问题标题】:Install iOS Apps on device without developer program, iOS 5.1在没有开发人员程序的设备上安装 iOS 应用程序,iOS 5.1
【发布时间】:2012-05-16 16:30:38
【问题描述】:

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

当我运行 iOS 5.0.1 时,我关注了这个线程:How can I deploy an iPhone application from Xcode to a real iPhone device? 并创建了一个自签名证书,它就像一个魅力。

更新到 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 中崩溃?

谢谢/蒂姆

【问题讨论】:

  • 你看到这个帖子了吗stackoverflow.com/questions/9898039/…
  • 错过了那个帖子,我试试看。谢谢!
  • 现在完成所有步骤,编辑 plist,越狱我的 iPhone,我可以在没有代码签名的情况下将应用程序安装到我的 iPhone。但是当我尝试启动应用程序时它在启动时崩溃。我什至无法看到启动图像。它在模拟器中运行良好,我已经尝试过其他应用程序。你知道问题可能是什么吗?
  • 您看到设备的崩溃日志了吗?
  • 我将编辑问题,以便您可以在那里查看。内容不适合评论。

标签: iphone ios xcode ios5 iphone-developer-program


【解决方案1】:

我遇到了和你一样的问题,让应用程序在 iOS 5.1 和 Xcode 4.3.2 上运行,我只是在这里使用这种方法让它几乎完美地运行:

Building Apps for iOS 5.1 with Xcode 4.3.2

它基于this one from 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. 通过 touch over ssh 在设备上创建 tdmtanf 文件
  8. 不要将 -gta 标志放在“其他代码签名标志”中

我碰巧使用 Unity 进行调试,因此没有使用 -gta 进行 Xcode 调试的问题并没有困扰我 - 显然 Objective C 开发人员将需要此功能,因此希望有人可以在此功能上进行扩展。我目前正在我的 iPhone 5.1 上使用我的应用程序的开发版本,手指交叉你可以获得相同的结果。

【讨论】:

  • 谢谢。我也会试试这个解决方案。
  • 我设法让它按照你的方式工作。您的第 5 步令人困惑。我必须将 ldid 放入 /usr/bin/ldid 并相应地更改 ldid3.py(第 12 和 24 行)。
  • 是的,我在 ldid3.py 丢失其可执行权限标志时遇到了一些麻烦,因此按照 wiki 链接的步骤并将其和 ldid 放入 /usr/local/bin 可能会有更多的运气。此外,即使遵循上述步骤,iDevices 似乎也会拒绝运行使用最新 SDK 构建的应用程序 - 如果我在 Unity(游戏引擎/编辑器)中选择使用 iOS 5.1 SDK 构建,应用程序将在点击后立即崩溃, Xcode 会在控制台报出原帖的错误信息(异常退出...无代码签名)。使用 iOS SDK 4.2 构建后,我终于让它工作了。
  • @fundead ldid 和 ldid3.py 在/usr/bin/chmod +x /usr/bin/ldid 等下工作正常...设置权限。
  • 要让调试工作,只需在 python 脚本中的 f.write(...) 行之后添加 f.flush() 即可。这会将 plist 写入磁盘。希望对您有所帮助。
【解决方案2】:

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

要求:

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 中...然后重新启动并享受!

【讨论】:

  • 不,我没有解决问题。我会试试你的解决方案。谢谢!
【解决方案3】:

我尝试做同样的事情,但有几次失败,然后我找到了Moustafa Hassan's blog,其中包含我成功使用的步骤。

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

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

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-12-01
    • 2016-05-26
    • 1970-01-01
    • 2013-12-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多