iOS开发中常用命令工具(xcode-select、lipo、xcrun等) admin 2023-09-18 11:15:02 篇首语:本文由小编为大家整理,主要介绍了iOS开发中常用命令工具(xcode-select、lipo、xcrun等)相关的知识,希望对你有一定的参考价值。 参考技术A 当安装多个xcode的版本,使用该工具使用指定的版本。 -p 或者 --print-path 查看当前开发者目录,也即是xcode的版本目录。print the path of the active developer directory -s 或 --switch 选择xcode的版本 --install 安装 --version 查看版本 --reset 恢复默认 sudo rm -rf /Library/Developer/CommandLineTools 强制删除安装目录下的文件 是管理Fat File的工具, 可以查看cpu架构, 提取特定架构,整合和拆分库文件。 Mac OS X下二进制可执行文件的动态链接库是dylib文件。所谓dylib,就是bsd风格的动态库。基本可以认为等价于windows的dll和linux的so。mac基于bsd,所以也使用的是dylib。 Linux下用 ldd 查看,苹果系统用 otool 。 otool命令介绍 MobSF Mach-O 文件格式解析 xcodebuild :通过工程文件,生成app文件。 xcrun :通过app文件,来生成ipa文件(包含了签名的过程)。 通过app文件生成ipa文件 libtool是一个通用库支持脚本(/usr/bin/libtool),将使用动态库的复杂性隐藏在统一、可移植的接口中。 可以在不同平台上创建并调用动态库,我们可以认为libtool是gcc的一个抽象,也就是说,它包装了gcc或者其他的任何编译器,用户无需知道细节, 只要告诉libtool说我需要要编译哪些库即可,并且,它只与libtool文件打交道,例如lo、la为后缀的文件。 libtool工具的使用 库是一单独的文件,里面包含了按照特定的结构组织起来的其它的一些文件(称做此库文件的member)。原始文件的内容、模式、时间戳、属主、组等属性都保留在库文件中。 详细命令参见, 菜鸟网络-ar命令 可以用来创建、修改库,也可以从库中提出单个模块。 lipo libAFNetworking.a -thin arm64 -output lib-arm64.a 生成Arm64包 ar -t lib-arm64.a 输出包含的.o文件 和 otool -L libAFNetworking.a 一样。 ar -x lib-arm64.a 解压出包里面的.o文件 在ios开发中,常常用来分析二进制和静态库文件。 列出 .o .a .so 中的符号信息,包括诸如符号的值,符号类型及符号名称等。所谓符号,通常指定义出的函数,全局变量等等。 iOS开发中,可以用来查看.a静态库所有打包进去的.o文件和函数接口信息,帮助我们定位崩溃信息。 例如: nm -u libAFNetworking.a 列出某个.o文件的接口信息。 二进制查看命令,将文件显示为16进制字符串表示形式。 例如: xxd libYTKNetwork.a | grep "net" 查看YTKNetwork.a文件里面包含net字符串的,帮助我们分析一些二进制文件。 DWARF文件初探——提取轻量符号表 Mac系统下lipo, ar, nm等工具的使用简介 美团 iOS 工程 zsource 命令背后的那些事儿 Linux工具参考篇 iOS 静态库冲突 两个不同的.o 文件冲突 ,静态库分离 驱动开发中常用命令和宏定义 操作驱动常用的命令 (1)insmod:安装驱动的命令,用法:insmod xxx.ko (2)lsmod:显示当前已经安装的驱动,时间上越后安装的驱动显示时越靠前; (3)rmmod:卸载驱动,用法:rmmod xxx;(注意卸载模块时只需要输入模块名即可,不能加.ko后缀) (4)modinfo:显示驱动自带的信息,用法:modinfo xxx.ko 驱动代码里常见的宏 (1)MODULE_LICENSE, 模块的许可证。一般声明为GPL许可证,而且最好不要少,否则可能会出现莫名其妙的错误(譬如一些明显存在的函数提示找不到)。 (2)MODULE_AUTHOR 描述模块的作者; (3)MODULE_DESCRIPTION 描述模块的介绍信息 (4)MODULE_ALIAS 描述模块的别名信息 小结:上面宏的作用是在驱动中注册一些信息,用来描述这个驱动,在编译好的驱动中可以用modinfo命令来查看。 (5)module_init 位置:kernel/include/linux/init.h 定义:#define module_init(x) __initcall(x); 作用:通过这个宏去注册安装模块的函数,当用insmod命令安装模块时就会调用通用module_init注册的函数; (6)module_exit 位置:kernel/include/linux/init.h 定义:#define module_exit(x) __exitcall(x); 作用:通过这个宏去注册卸载模块的函数,当用rmmod命令卸载模块时就会调用通过module_exit注册的函数; 以上是关于iOS开发中常用命令工具(xcode-select、lipo、xcrun等)的主要内容,如果未能解决你的问题,请参考以下文章 解决 zsh:command not found 怎么让域名解析到指定的端口 您可能还会对下面的文章感兴趣: 相关文章 浏览器打不开网址提示“ERR_CONNECTION_TIMED_OUT”错误代码的解决方法 如何安装ocx控件 VMware的虚拟机为啥ip地址老是自动变化 vbyone和EDP区别 linux/debian到底怎么重启和关机 苹果平板键盘被弄到上方去了,如何调回正常? 机器学习常用距离度量 如何查看kindle型号