首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >DYLD_INSERT_LIBRARIES和iPhone

DYLD_INSERT_LIBRARIES和iPhone
EN

Stack Overflow用户
提问于 2011-10-27 09:08:20
回答 4查看 4.2K关注 0票数 4

我知道苹果不支持在iPhone应用程序中使用动态库。但我们正在开发一个内部应用程序,并且我们对使用动态库有一个独特的要求。我们的需求是加载一个动态库作为"iPhone“应用程序启动的一部分。我读到过DYLD_INSERT_LIBRARIES就是为这个目的而设计的。所以我编辑了Info.plist并添加了下面的条目。LSEnvironment DYLD_INSERT_LIBRARIES @executable_path/sample.dylib

但它似乎没有起作用。你能告诉我你的想法吗?非常感谢您在这方面的帮助。

谢谢--Neo

EN

回答 4

Stack Overflow用户

发布于 2014-08-06 19:54:26

我找到了一种方法,可以使用optool成功地将LC_LOAD_DYLIB load命令添加到MachO二进制文件中。

代码语言:javascript
复制
$ optool install -c load -p "@executable_path/<dylib_path>" -t <executable>
$ otool -L <executable>

构建optool时,请确保build setting OTHER_LDFLAGS包含-ObjC

optool似乎无法成功地为arm64体系结构添加load命令,因此您可能需要从二进制文件中删除arm64

代码语言:javascript
复制
$ lipo <input_file> -remove arm64 -output <output_file>

编辑:

有一个支持arm64的开放pull request

票数 3
EN

Stack Overflow用户

发布于 2013-05-27 18:12:15

在过去的几天里,我也在解决同样的问题。我也没能像你尝试的那样成功。所以我尝试使用这个链接从另一个应用程序启动我的应用程序:Dynamic Library injection,不幸的是Apple Block运行多个任务(甚至在iphone模拟器上),但是你可以尝试一下,也许你会有更多的运气。我知道这不是你想要的答案,但也许它会给你一些思考的方式。如果你有一些进展,请分享。

票数 0
EN

Stack Overflow用户

发布于 2013-05-27 18:18:39

您“可以”在运行时加载二进制文件,并且可以操作xcode设置使其为iOS编译dylibs。请看这个答案:

https://stackoverflow.com/a/10509453/784387

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7910694

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档