离久的小站

离久的小站

搬砖的iOS码农

Mach-O 文件格式
Mach-O是一种文件的格式; 是iOS/Mac OS上存储程序以及库的标准格式 类型12345678910111213#define MH_OBJECT 0x1 /* 目标文件 例如:.o 、.a 、.framework(静态库) */#define MH_EXECUTE 0x2 /* 可执行文件 例如:.app 、.out */#define MH_FVMLIB 0x3 /* VM共享库文件 */#define MH_CORE 0x4 /*核心转储文件 */#define MH_PRELOAD 0x5 /* 预加载的可执行文...
小小感悟
精通一个领域 切碎知识点 刻意练习 获得反馈 切碎知识点 庖丁解牛 脉络连接 刻意练习 练习缺陷、不舒服、弱点的地方 不爽、枯燥 获得反馈 主动型反馈(自己去找) 被动式反馈(高手教导)
Python爬虫Scrapy
最近想爬虫,所以了解了一下。 Scrapy中文文档Splash中文文档 Scrapy命令行基本用法scrapy-splash docker渲染jsscrapy css选择器使用scrapy提取数据之:xpath选择器 Scrapy官方文档Docker官方文档
clang插件-分析无用方法
插件源码clang-unusedMethod 在开始分析之前,定义了一些数据结构。 1234567891011typedef map<string,ObjCMethodDecl*> MethodDeclMap;typedef map<string,bool> MethodIsUsedMap;class InterfaceModel {public: MethodDeclMap methodDeclMap = MethodDeclMap(); MethodIsUsedMap methodIsUsedMap = MethodIsUsedMap()...
关于AST解析树
相关资料clang文档AST Matcher Reference 代码会被解析成 Decl 和 Stmt。 我们可以继承 MyASTVisitor 模版,通过 VisitDecl 和 VisitStmt 两个方法,获取 Decl 和 Stmt。 Decl之间的关系树 Stmt之间的关系树
创建XCode插件
前提 创建一个 XCode 插件,首先先要安装 LLVM 。可以参考上一篇文章 《尝试LLVM》。 正文 首先修改源代码目录 /tools/clang/tools 下的 CMakeLists.txt 文件。 在 CMakeLists.txt 的最后面添加上一行。 在 tools 目录下添加 MyPlugin 文件夹,文件夹里面新增两个文件 CMakeLists.txt 和 MyPlugin.cpp CMakeLists.txt 文件内容如下: 1234567891011121314add_llvm_loadable_module(MyPlugin MyPlugin.cppPLUGI...
尝试LLVM
LLVM 简介 Low Level Virtual Machine ,简称 LLVM ,是一个模块化和可重用的编译器和工具链技术的集合。 LLVM 能提供一种代码编写良好的中间表示 IR,这意味着它可以作为多种语言的后端,这样就能够提供语言无关的优化同时还能够方便的针对多种 CPU 的代码生成。 Clang 是 LLVM 的子项目,是 C,C++ 和 Objective-C 编译器,目的是提供惊人的快速编译,比 GCC 快3倍,其中的 clang static analyzer 主要是进行语法分析,语义分析和生成中间代码,当然这个过程会对代码进行检查,出错的和需要警告的会标注出来...
关于Attribute
Clang Attributes 是 Clang 提供的一种源码注解,一般以 attribute(xxx) 的形式出现在代码中;为方便使用,一些常用属性也被 Cocoa 定义成宏。 1.objc_subclassing_restricted1定义一个不可被继承的类,写在 @interface 前。 2.objc_requires_super1子类继承这个方法时需要调用 super,否则给出编译警告。 3.objc_boxable1声明的 struct 类型或是 union 等基本数据类型可以使用 @(...) 语法糖转成 NSNumber 和 NSValue。 4.constructor...
符号化崩溃日志
符号化崩溃日志一般的crash日志是没有被符号化的,我们根本看不懂,所以我们需要符号化日志。 我们需要找到一个工具帮我们符号化,Xcode中有 symbolicatecrash 来帮我们符号化。 我们可以在命令行输入以下命令寻找 symbolicatecrash。1find /Applications/Xcode.app -name symbolicatecrash -type f 当然,如果如无意外、Xcode没有太大改动的话,symbolicatecrash的路径是不变的。1/Applications/Xcode.app/Contents/Developer/Platforms/Ap...
iOS-自动打包
基础操作关于 Xcode 命令xcodebuild是一个命令行的工具,可以让你的工程通过 projects workspaces 进行编译,测试,分析,打包。他可以运行在包含一个或者多个Target的工程上面,或者在 projects workspaces 包含 scheme 上面。xcodebuild 提供了几个选项,可以在 Main Page 看到这些。默认情况下,xcodebuild会保存和输出在 Xcode 的本地定义的面板里面。 常用方法常用方法一123456789xcodebuild[-project projectname ] #项目名称[[-target targetna...
离久
一条咸鱼
FRIENDS