【iOS】使用 otool 命令查看 App 所使用的动态库
【iOS】使用 otool 命令查看 App 所使用的动态库
工程中使用到的第三方 “.a 静态库” 或者 “静态 framework”,在编译链接时,就会被合并到主 Mach-O 二进制文件中,而对于“动态 framework”,则会被拷贝到 .ipa 包中的 .app 文件里的 “Frameworks” 文件夹下,在 App 启动时才会被动态链接。
如何查看一个 App 都使用了哪些动态库,包括系统自带的动态库和第三方动态库。
创建一个新工程 “TestApp”,点击编译后,在 Products 文件夹中找到 “TestApp.app” 文件,该文件中包含了当前 App 的 Mach-O 二进制文件 “TestApp”,此时我们在命令行中执行:
若没有 Products 文件夹可以这样操作:
project.pbxproj 文件打开
otool -L /Users/inke/Library/Developer/Xcode/DerivedData/TestApp-bkpkwufsgyelpefayltswbirvgwk/Build/Products/Debug-iphonesimulator/TestApp.app/TestApp
即可查看当前 App 需要链接的所有 framework,如图 1 所示:
可以看出,一个简单的 iOS 工程,至少会链接 UIKit.framework、Foundation.framework、libobjc.A.dylib(Objective-C Runtime 库)、libSystem.B.dylib(系统基础库)等动态库;如果我们的工程依赖了系统库,也会在这里看到。
另外,如果我们工程依赖了一些自己开发的 “动态 framework”,或者通过 Carthage、CocoaPods 等添加的第三方 “动态 framework”,通过 otool 命令也能看到,如图 2 红框内所示,
PS:上述命令也可以用于查看从 App Store 下载的 .ipa 包里 Mach-O 二进制文件所依赖的动态库。
【iOS】使用 otool 命令查看 App 所使用的动态库相关推荐
- Windows下查看exe可执行程序或dll动态库所依赖dll动态库的方法
Windows下查看exe可执行程序或dll动态库所依赖dll动态库的方法 如需转载请标明出处:http://blog.csdn.net/itas109 技术交流:129518033 文章目录 Win ...
- 查看内核模块依赖关系和动态库依赖关系
背景 最近在项目中加载内核模块和动态库时,都遇到加载失败情况.后发现都是依赖关系问题,在此记录此类问题的解决方法. 一.查看内核模块依赖关系 使用insmod加载内核模块时,报以下错误: / # in ...
- 查看linux下程序或者动态库到底依赖哪些so动态库以及对应的版本
一. ldd命令 基本上每一个linux 程序都至少会有一个动态库,查看某个程序使用了那些动态库,使用ldd命令查看 # ldd /bin/ls linux-vdso.so.1 => (0x00 ...
- adb命令查看app的日志
前言 在做app测试的时候,经常会遇到异常,此时如果开发没有异常保存,那么测试就得通过adb命令来查看日志信息.基于Windows平台的操作: logcat输出日志 一.把日志输出到手机指定目录 其命 ...
- Android使用adb命令查看APP数据流量使用情况
1. 在Android系统中,"/proc/net/xt_qtaguid/stats"这个文件里储存着各个应用的流量信息,统计流量的时候可以用到这个文件. 首先获取待测应用的 ...
- adb查看app的日志
adb命令查看app的日志,网络的先连接,usb的插上就能用了. adb logcat *:E ->d:\\log.txt 在做app测试的时候,经常会遇到异常,此时如果开发没有异常保存,那么测 ...
- 查看APP数据流量使用情况
Android使用adb命令查看APP数据流量使用情况 1933 0 2% S 17 708212K 29772K bg system com.sziov.appstorewidget 2912 0 ...
- ios动态库注入把越狱手机上自制的动态库安装到普通手机上
文章目录 预备条件 导出越狱手机上的app包和自己注入的动态库 导出自己写的tweak动态库文件 查看依赖库 执行命令查看程序依赖的动态库名字 用machoview查看 安装insert_dylib ...
- iOS动态库实现插件化
1.动态库制作 p1.png 选择Framework,创建动态库. Framework分动态.静态两种,可以通过下面路径查看 TARGETS->Build Settings(搜索mach-o)- ...
- iOS SDK开发系列一之Cocoapods原理,Xcode的配置,动态库和静态库介绍
前言 三个月没写东西了,是时候总结点东西了.SDK这个东西开发其实和项目开发类似,但是项目中你不需要关注一些配置和打包的参数,或者你压根不需要关注Framework和.a到底是怎么链接配置的,因为Co ...
最新文章
- spring18-1:采用jdk的动态代理 proxy。
- android 关闭多点触控_Cocos Creator关闭多点触摸的问题
- 这次让我们从字节码文件来重新认识String,文末有两个小小面试题,一起来试一试
- Python中Numpy(2,numpy的基本操作(级联,维度转换,切分,副本))
- maven 父maven_Maven的春天
- 【CodeForces - 510D】Fox And Jumping(dp,stlmap,数论的性质)
- C++主要操作符重载的定义和总结
- Python办公自动化|光速对比并提取两份Word/Excel中的不同元素
- php由哪几部分组成,微型计算机通常是由哪几部分组成?
- php导入csv 进度条,php 导入导出怎么做成有进度条??
- laydate 在vue中使用_Vue中使用ArcGIS JS API 4.14开发
- cx_Oracle安装教程
- 软考高级网络规划设计师历年论文真题汇总2009-2021
- jq css3实现跑马灯+大转盘
- 移动机器人路径规划minimum_snap(MATLAB)笔记整理
- 定价过程的16个字段
- 常见的几个接口管理平台简介
- 云服务器什么配置才够用?
- 女生玩游戏什么款式蓝牙耳机好用?小清新高颜值游戏蓝牙耳机推荐
- 本以为java语言很难学,其实就学完下面这些知识,就能理解了