问题描述
我正在尝试编写一个使用 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 (将#修改为@)