Anyeler Blog

一枚低调的极客

逆向学习第零篇之工具集

记录逆向工程里需要用到的工具

前言 在逆向工程中,将会使用到许多效率工具和分析工具。这篇文章记录逆向需要的相关工具,大致分为 移动设备工具 和 mac电脑工具这两大类。 工具箱 在 iOS 逆向分析流程中,需要使用: 解密工具、class-dump、Cycript、Reveal、Charles、Hopper、IDA 、LLDB、Xcode、Theos 等工具。 iPhone工具 这一类工具包括在 iPhone 越狱设...

ALNetWorkingSwift使用文档

介绍自己开发的网络框架的架构和使用

前言 这几个月因为由于各种事各种忙,所以都没有写文章。还有一个比较重要的原因就是不知道写哪些比较有质量的文章来供大家阅读,这样说来的话,恰恰是违反了我自己写文章的初心:记录自己日常开发遇到的问题以及解决方案,目的是供自己和他人以后查阅。 闲话不多说,前段时间由于公司需要设计 swift 语言编写的公共库。所以,我这边除了研究整个公共库的整体设计之外,还重点研究了关于 swift 网络框架以...

OC对象中copy和mutableCopy方法详解

详解OC对象中copy和mutableCopy方法和注意事项

前言 前段时间,看到在知识小集的交流群里正在讨论 copy 和 mutableCopy 这两个方法的相关特性。而这两个方法的使用,对于 Collection 来说,确实在运行的时候会有些不一样。主要还是为了记录一下,避免以后忘记,所以写了这篇文章。 理论概述 本文章将会讨论 CoreFoundation 和 Foundation 框架里面的 Collection 类,当然也会简单的讲述自己...

Objective-C对象的TaggedPointer特性

以NSString和NSNumber的为例解析TaggedPointer特性

前言 前段时间,看到在知识小集的交流群里正在讨论 copy 和 mutableCopy 的相关特性。所以自己写了一个 Demo 验证一下群里提供的表是否正确。后来发现了 NSString 出现了中间类的情况。所以,写了这篇文章,记录一下。 NSString 解析 在 iOS 开发中字符串的使用通常用的比较多的是 NSString 而不是 char。而对于这个 NSString 类,实际上在...

Category原理解析

全面解析Category的运行原理

前言 在 iOS 开发中,使用的编程语言主要是 Objective-C。这一种编程语言虽然是 C/C++ 的扩展,但是得益于 Runtime 的机制,使得 Objective-C 比 C/C++ 更加具备可控性。实际上说 Objective-C 是一门可编译的动态编程语言,C/C++ 则是一门静态编程语言。 在 Objective-C 编程语言的 Runtime 机制里,每一个 cla...

初探JSPatch

Swift混编项目使用JSPatch热修复

前言 iOS平台的有很多热修复框架,原理都是差不多,都是利用 Runtime 进行属性、方法修改。 JSPatch 是现今比较主流、轻量级的热修复框架。利用内置的 JavaScript 引擎(JavaScriptCore)结合 JavaScript 在运行时进行对 Object-C 对象修改。 接入文档 JSPatch 的官方接入文档写的很详细,不过也很简洁。对于 Objectiv...

使用Cocoapods创建私有podspec

简述Cocoapods的使用

【简介】目前公司正在需要封装swift的私有公共库,所以需要了解针对swift进行配置封装。 常用 pod 命令 CocoPods操作 添加私有的repo到CocoaPods #pod repo add REPO名 存放podsepc的仓库 pod repo add liuchungui https://github.com/liuchungui/first.gitpod l...

Swift的DeviceToken打印的是32Bytes

Swift3.1的DeviceToken打印的是32Bytes,导致推送出现问题

【问题描述】使用环境 ==Swift3.1== 和 Xcode8.3.3,项目代码升级Swift3.1之后出现了DeviceToken 无法成功转 String 打印,打印出来的结果是 32Bytes。 解决方案 方案一:由于 Data没办法从64位String转成32位String Swift格式化打印,取低位。 Swift3.1代码: //无需过滤字符 <, >...

Swift3.1在Xcode8.3中打包错误

Swift3.1在Xcode8.3中打包错误,Debug模式下运行成功

Xcode错误描述 Showing All Errors Only Command failed due to signal: Segmentation fault: 11 这是由于编译器问题导致,出现这种错误的前提是编译运行没有错误,只是打包出错 解决方案 在 Xcode8.3的 Build Setting 里的 ==SWIFT_OPTIMIZATION_LEVEL== (Swif...

Swift与OC混编调试杂记

Swift与Objective-C混编遇到的问题

【简介】在2016年底前后一直在做智能家居APP,这个项目是利用 Objective-C 和 Swift 混编,至今看来混编会出现很多奇奇怪怪的问题。 遇到的代码问题以及解决方案 OC中的对象属性(NSString *)在swift中使用或者映射时,Swift默认为不可选变量(String!),但是OC的变量是可能为nil。 解决方案: (1)在 Swift 中,必须对映射...