【问题标题】:Python Hello World in PyObjC on iPhone?iPhone上PyObjC中的Python Hello World?
【发布时间】:2011-05-14 02:02:02
【问题描述】:

我从 Cydia 安装了 iphone-python 包,但是当我从 Springboard 运行 HelloPython 应用程序时它会立即关闭。

这可能是一个红鲱鱼,但我在终端中找到了 .py 文件并尝试使用 python 运行它并得到一个 python 错误:

$ python /private/var/stash/Applications.pwn/HelloPython.app/HelloPython.py
Traceback (most recent call last):
  File "/private/var/stash/Applications.pwn/HelloPython.app/HelloPython.py", line 9, in <module>
    import objc
  File "/usr/lib/python2.5/objc/__init__.py", line 17, in <module>
    _update()
  File "/usr/lib/python2.5/objc/__init__.py", line 14, in _update
    import _objc
ImportError: dlopen(/usr/lib/python2.5/lib-dynload/_objc.dylib, 2): Symbol not found: _OBJC_CLASS_$_Object
  Referenced from: /usr/lib/python2.5/lib-dynload/_objc.dylib
  Expected in: /usr/lib/libobjc.A.dylib

我正在运行 4.3.3。

我怎样才能让这个应用程序工作,所以我将有一个 PyObjC 的工作示例?

【问题讨论】:

  • 看来您需要将 PyObjC 与 iphone-python 分开安装。你这样做了吗?应用崩溃时日志中没有错误消息?
  • Cydia 报告 PyObjC 已安装且版本为 1946-4。我应该检查的日志在哪里?
  • 如果您将手机连接到 Xcode,您应该能够在设备管理器中找到日志。它们也同步到您的计算机并放入 ~/Library/Logs/CrashReporter/MobileDevice/ 我不确定它们存储在设备本身的什么位置;可能是类似的位置。
  • 我没有看到任何带有 sudo find / -mmin 1 的日志。我刚刚同步并找到了 CrashReporter 目录,但那里似乎没有任何与 HelloPython 相关的内容。我不知道如何使用 Xcode,但我确实可以访问它。
  • 您正在从 python 环境中获取回溯,因此从 CrashReporter 的角度来看,这可能不是崩溃。但是我在 4.3.3 下遇到了同样的错误,同样的 _objc.dylib 在 4.1 下工作正常。

标签: iphone python pyobjc cydia


【解决方案1】:

由于新 ios 上的可执行文件运行方式发生了变化,动态库已损坏。由于升级了objective-c,mach-o 将不再运行,因此解决方法是从源代码编译pyobjc 并正常运行。唯一的问题是 iphone 的 pyobjc 版本是为 uikit 构建的,因此您需要找到 saurik (Jay Freeman) 的源代码并编译它。我可能会为自己这样做,所以如果我这样做的话,我会用 deb 文件回帖。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多