使用越狱的iPhone(Xcode)进行开发



我有一个越狱的iPhone 4S,运行iOS 5.1.1。我有Xcode 4.3.2,我已经能够在iPhone上运行我的应用程序,但以一种奇怪的方式。如果我单击Xcode上的调试按钮,它会尝试在越狱的iPhone上打开该应用程序,但失败,因为它快速打开然后关闭。即使发生这种情况,如果我手动打开应用程序,通过在主屏幕上单击它,它运行良好。这很烦人。最烦人的是,这会导致它不再允许调试,因为 Xcode 看不到它正在运行。

这是它生成的输出:

error: failed to launch '/Users/hetelek/Library/Developer/Xcode/DerivedData/spyapp-flynnmpiqhjoilezvqsbaqdnkesn/Build/Products/Debug-iphoneos/spyapp.app/spyapp' -- failed to get the task for process 3741

当然,进程 ID 每次都会更改。

这是我用于在越狱iDevice上进行开发的教程:http://iphonedevwiki.net/index.php/Xcode#Developing_without_Provisioning_Profile

感谢您的任何帮助。

我会尝试再次逐步完成该教程,以确保您正确运行了设置。似乎您可以毫无问题地安装应用程序,但调试器在安装后无法附加到应用程序。如果您确实需要调试器,您可以尝试在安装后打开设备上的应用程序,然后在它运行时(并且您的设备已插入运行 Xcode 的 Mac),打开 Xcode 并转到 Product -> Attach to Process ,然后从列表中选择您的应用程序(如果不存在,那就是另一个问题)。

此外,请尝试 YllierDev 的建议,即在应用的授权文件中启用get-task-allow(如果没有,您可以在 Xcode 中从项目的信息页面轻松创建一个)。假设您正确完成了本教程,这应该会有所帮助。

--

要使用 Xcode 4.3 在应用的授权文件中启用"获取任务允许",请执行以下操作:

  1. 在项目导航器下点击您的项目,然后在"目标"列下选择项目的名称。
  2. 接下来,转到摘要选项卡,然后在"权利"下,选中"启用权利"。
  3. 接下来,右键单击/命令单击项目导航器下的"YOURAPP.entitlements"文件,然后选择"在查找器中显示"。
  4. 在"文本编辑"中打开,然后添加:

    <key>get-task-allow</key> <true/>

    就在</dict>之前.

  5. 它现在应该可以调试并运行正常!

有一个简单的答案。 iPhoneDevWiki上的说明几乎是正确的。 write()临时文件后,您需要刷新,否则临时文件为空。 您的 ldid3.py 应如下所示:

#!/usr/bin/python
from sys import argv
from subprocess import call, check_call
from os.path import basename, splitext, join
from tempfile import NamedTemporaryFile
app = argv[-1]
obj_path = join(app, splitext(basename(app))[0])
if '-gta' not in argv:
    check_call(['/usr/local/bin/ldid', '-S', obj_path])
else:
    with NamedTemporaryFile() as f:
        f.write("""
            <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
            <plist version="1.0">
            <dict>
            <key>get-task-allow</key>
            <true/>
            </dict>
            </plist>n""")
        f.flush()
        check_call(['/usr/local/bin/ldid', '-S' + f.name, obj_path])

我在 Xcode 4.3.3 和 iOS 5.1.1 上以这种方式进行调试。 这按照您的预期方式工作,您永远不必弄乱新项目的权利。

尝试重新启动 iPhone 和 Mac。也许某些进程在后台并且仍在运行。

如果没有帮助,则清理项目并进行完全清理(如何进行完全删除)

从iPhone中删除应用程序并重建。

如果你的应用使用自我库,那么也重建他。

相关内容

最新更新