在 macOS 上使用 libimobiledevice 时 IDEVICE_E_NO_DEVICE 的调试原因

问题描述

我正在尝试编写一个使用 libimobiledevice 从 iOS 设备提取信息的 Swift 程序。程序编译并运行,但对 idevice_new调用总是返回 IDEVICE_E_NO_DEVICE

作为概念的初始证明,我使用 libimobiledivce 在 Swift 中编写了一个(命令行)程序。该程序正常工作:如果将 iOS 设备插入我的 Mac 上的 USB 端口,该程序会检测到它并使用库中的各种其他函数从中调用拉取信息。

请注意,我使用 SPM 和 Emacs 编写了命令行程序——没有 Xcode 参与。我首先编写了一个 SPM 系统包,使 libimobiledevice 在 Swift 中可用,然后使用 SPM 创建第二个包,其中包含导入第一个包的可执行目标。 (顺便说一句,我知道这已被弃用,但我无法使系统库目标起作用

在迁移到 Xcode 时,我很难让 SPM 包正常工作,所以我放弃了这种方法,只在项目中包含了 .h.dylib 文件。我必须在“签名和功能”中的“强化运行时”下选择 disable Library Validation

用于建立连接的 Swift 代码与我的工作 POC 程序中的代码完全相同。它可以编译并运行,但如上所述,它无法连接到我的 iPhone。

目前,我对如何调试这个没有任何好主意。非常感谢您的建议。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...