系统进程:/System/Library/Frameworks/HealthKit.framework/healthd,I dlopen this,出现dlerror: dlopen(/System/Library/Frameworks/HealthKit.framework/healthd,1):找不到合适的图片。找到:/System/Library/Frameworks/HealthKit.framework/healthd:超出地址空间 我不知道该怎么做,有人能给我一些信息吗?
答案 0 :(得分:1)
你试图破坏一个mach-o可执行文件而不是一个dylib,而dyld(Darwin动态链接器)并不一定介意,可执行段的布局方式是不同的,即你有__PAGEZERO
dyld试图分配空间和失败。即使你成功地设置了它,你也无法用它做很多事情,因为它没有你可以导出的符号dlsym
。
如果你正在尝试加载HealthKit框架,你应该加载框架二进制文件本身,虽然它没有必要,因为在iPhoneOS的生产版本中你可以使用dlsym
来获取任何框架二进制文件。来自dyld共享缓存的任何框架中的符号,通常包含所有系统框架/库。