gpt4 book ai didi

ios - iOS 应用程序的 otool 输出

转载 作者:行者123 更新时间:2023-12-03 20:39:41 25 4
gpt4 key购买 nike

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


/系统/库/框架/CoreFoundation.framework/CoreFoundation
/系统/库/框架/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)?

为什么有些 dylib 源自 /System/Library/Frameworks 而有些则源自 /usr/lib/...?我可以找到list of iOS frameworks ,但是我在哪里可以找到 iOS 设备中内置的受支持的 dylib 列表?

最佳答案

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

在大多数情况下,/System 路径指的是 Apple 提供的框架,其中包括动态库以及框架使用的资源(图像、声音)。 [当开发人员工具位于 Mac 上时,框架还包括头文件。] /usr/lib/ 路径可以是其他任何路径,包括 SQLite 等第三方开源库以及任何具有更多功能的库。 Unix风格的动态库。

除了 iOS 设备本身之外,我知道查找包含的库列表的唯一方法是在 Mac 上安装 Xcode 并浏览 /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/usr/lib(Apple Watch 和 Apple TV 也有类似的路径)。无论如何,here's a gist我通过 Xcode 8.3.2 得到的结果。

关于ios - iOS 应用程序的 otool 输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46301931/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com