5

我有一台运行 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

谢谢你的帮助。

4

3 回答 3

8

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

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

--

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

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

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

    就在之前</dict>

  5. 它现在应该调试并运行良好!
于 2012-06-04T05:27:55.460 回答
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 以这种方式进行调试。这按您的预期工作,您永远不必为新项目弄乱权利。

于 2012-06-22T06:47:57.357 回答
0

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

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

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

如果您的应用程序使用自库,那么也重建他的库。

于 2012-06-01T02:51:07.670 回答