首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >iOS应用程序的otool输出

iOS应用程序的otool输出
EN

Stack Overflow用户
提问于 2017-09-19 13:34:52
回答 1查看 3.4K关注 0票数 2

如果我在iOS .ipa文件的主要可执行文件上运行.ipa,我会看到以下输出:

/System/Library/Frameworks/CoreFoundation.framework/CoreFoundation /System/Library/Frameworks/UIKit.framework/UIKit ... @rpath/DMSDK.framework/DMSDK ... /usr/lib/libz.1.dylib /usr/lib/libc++.1.dylib /usr/lib/libiconv.2.dylib /usr/lib/libsqlite3.dylib

这告诉我我的应用程序使用/引用/需要的动态库。

我的问题是:这些是指ios设备本身存在的全局目录吗?我相信答案是肯定的,但这不意味着所有的iOS设备都已经安装了libsqlite (我只会觉得这令人惊讶,因为作为一个web开发人员,我认为sqlite更像是一个用户空间的东西,我会感到惊讶的是,它得到了苹果足够多的支持,足以成为预装的dylib)。

为什么有些dylibs起源于/System/Library/Frameworks,有些来自/usr/lib/...?我可以找到一个iOS框架列表,但是在哪里可以找到内置到iOS设备中的受支持的dylib列表呢?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-09-19 19:12:38

其中大多数都是指iOS设备上的库,因为当应用程序在设备上启动时,它们必须可用。@rpath条目指的是与应用程序捆绑在一起的东西,但以/开头的任何内容都包含在iOS中。所有的iOS设备都安装了SQLite,因为它被各种苹果框架所使用(Core,也被其他人使用)。出于同样的原因,SQLite的价值也是macOS的一个标准部分。

在大多数情况下,/System路径引用苹果提供的框架,其中包括一个动态库以及框架使用的资源(图像、声音)。当开发人员工具在Mac上时,框架也包括头文件。/usr/lib/路径是其他任何东西,包括第三方开源库(如SQLite ),以及任何具有更Unix风格的动态库的库。

除了iOS设备本身,我知道找到包含库列表的唯一方法是在Mac上安装Xcode并浏览/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/usr/lib ( Apple和Apple有类似的路径)。至于它的价值,这里有个要点我从Xcode 8.3.2中得到了什么。

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

https://stackoverflow.com/questions/46301931

复制
相关文章

相似问题

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