使用越狱iPhone(Xcode)开发

时间:2012-05-31 23:26:33

标签: iphone xcode device jailbreak

我有一个运行iOS 5.1.1的越狱iPhone 4S。我有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

感谢您的帮助。

3 个答案:

答案 0 :(得分:8)

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

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

-

要使用Xcode 4.3在应用程序的Entitlements文件中启用“get-task-allow”,请执行以下操作:

  1. 点击项目导航器下的项目,然后在“目标”列下选择项目名称。
  2. 接下来,转到摘要标签,然后在“授权”下,选中“启用授权”。
  3. 接下来,右键单击/命令单击项目naviagtor下的“YOURAPP.entitlements”文件,然后选择“在Finder中显示”。
  4. 在TextEdit中打开,并添加:

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

    </dict>之前。

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

答案 1 :(得分:1)

有一个简单的答案。 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进行调试。这可以按照您的预期方式运行,您将永远不必搞乱新项目的权利。

答案 2 :(得分:0)

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

如果没有帮助,请清理项目并执行完全清理(how do a Full delete

从iPhone中移除应用并重建。

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