系统进程:/System/Library/Frameworks/HealthKit.framework/healthd,我dlopen这个,出现dlerror: dlopen(/System/Library/Frameworks/HealthKit.framework/healthd,1):找不到合适的图像。确实发现:/System/Library/Frameworks/HealthKit.framework/healthd:地址空间不足 不知道怎么办,谁能给我一些资料?
最佳答案
您正在尝试 dlopen 一个 mach-o 可执行文件而不是 dylib,虽然 dyld( Darwin 动态链接器)不一定介意,但可执行段的布局方式不同,即您有 __PAGEZERO
dyld 会尝试为其分配空间并失败。即使您确实成功地 dlopen 它,您也无法用它做太多事情,因为它没有您可以 dlsym
导出的符号。
如果您尝试加载 HealthKit 框架,则应该加载框架二进制文件本身,尽管这不是必需的,因为在 iPhoneOS 的生产版本中,您可以使用 dlsym 从任何符号获取任何符号dyld 共享缓存中的框架,通常包含所有系统框架/库。
关于ios - iOS 10越狱环境下,使用dlopen system/library/framework报错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43860765/