iOS 应用程序不可能以编程方式获取电话号码。
但如果你将 iPhone 插入 iExplorer 应用程序,它会显示数字。它是如何获得的?
从技术上讲,iOS 应用程序和桌面(Windows 和 OS X)应用程序都可以通过与特定设备通信来检索电话号码(以及其他设备特定信息,例如 IMEI、序列号等)。 iOS 中的锁定守护进程。锁定守护进程 ( lockdownd
) 是在设备上运行的守护进程,并通过 Apple 的专有 API 和协议提供对这些信息的访问。
这一切如何运作?对于桌面应用程序,开发人员必须链接到 MobileDevice 库(据我所知,它默认存在于 OS X 上并与 Windows 上的 iTunes 一起安装)并使用反向工程头文件(此处)中的函数来获取这样的数据。供您参考,在 Linux 上,同样可以使用libimobiledevice来实现。
对于 iOS 应用程序,应用程序的开发人员必须链接/usr/lib/liblockdownd.dylib
并导入相应的(逆向工程)头文件liblockdown.dylib
,才能使用其功能。