自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Nate的博客

好记性,不如烂笔头

  • 博客(32)
  • 收藏
  • 关注

原创 Modules

介绍大多数软件是由一些软件库构建的,这些库有的是平台提供的,有的是内部库(将软件的一部分代码结构化提供出来),有的是三方库。每一个库都需要访问自己的接口和实现,在c家族语言中,接口的访问需要导入头文件,例如:#include <SomeLib.h>通过链接相应的库单独的处理实现,例如,传递-lSomeLib给链接器模块提供了另一种更简单的方法来使用软件库,它提供了更好的编译时可伸缩性,并消除了使用C预处理器访问库的API所固有的许多问题。当前模型的问题...

2021-09-16 17:14:13 430

原创 appium 自动化测试

一.准备工作Appium 简介 Appium 是一个开源的、跨平台的测试框架,可以用来测试 Native App、混合应用、移动 Web 应用(H5 应用)等,也是当下互联网企业实现移动自动化测试的重要工具。 Appium、Appium-desktop、Appium Client 的区别Appium:是 Appium 体系的核心,因为它本身也是一个 web 接口服务,所以也会被成为 appium server,对外默认开启包括 4723 等多个端口。 Appium-Desktop:是为了让

2021-09-06 16:55:54 7905

原创 fatal: 无法访问 LibreSSL SSL_connect: SSL_ERROR_SYSCALL in connection to github.com:443

问题:fatal: 无法访问 'https://github.com/xxx/xxx.git/':LibreSSL SSL_connect: SSL_ERROR_SYSCALL in connection to github.com:443在使用 HTTPS 连接 GitHub 进行 push/pull 时(即 origin 地址为 https://github.com/xxx/xxx.git),需要更改本地 git 的配置,使用代理向 GitHub 发起请求。...

2021-09-01 18:30:56 2894

原创 打开 Assets.car 工具cartool

下载cartool工程https://github.com/chenjie1219/cartoolrun 将Assets.car 拖入 解压资源到相同目录下

2020-03-14 17:55:42 2822

原创 iOS 砸壳

步骤1:使用unc0ver越狱, 越狱完成后在Cydia里搜索安装Frida。步骤2:电脑上安装pip终端里执行sudo easy_install pip步骤3:电脑上安装Fridagit clonehttps://github.com/AloneMonkey/frida-ios-dump.git进入frida-ios-dump 目录,执行命令sudo p...

2020-03-14 17:50:57 1012

原创 iOS 越狱

https://unc0ver.dev在iOS设备上下载安装unc0ver运行 unc0ver 点击jailbreak

2020-03-14 17:42:22 266

转载 MacOSx安装git或者升级系统报错Library not loaded: /usr/local/lib/libwep

Process: InstallAssistant_springboard [91953]Path: /Applications/Install macOS Mojave.app/Contents/MacOS/InstallAssistant_springboardIdentifier: com.apple.InstallAssistant.MojaveVersion: ???Build ...

2019-08-05 10:45:49 520

原创 swift float数值比较大小

let miniAF = CGFloat.init(Float(minimumPercentStr!)!) let maxAF = CGFloat.init(Float(maxPercentStr!)!) if miniAF > maxAF { }

2019-05-17 10:37:39 3617

转载 AppIcon生成工具

http://icon.wuruihong.com/

2019-05-17 10:31:47 2074

转载 更高精度的Timer

http://blog.lessfun.com/blog/2016/08/05/reliable-timer-in-ios/更可靠和高精度的 iOS 定时器2016-08-05, FRI|COMMENTS定时器一般用于延迟一段时间执行特定的代码,必要的话按照指定的频率重复执行。iOS 中延时执行有多种方式,常用的有:NSTimer NSObject 的(void)pe...

2019-04-30 14:32:19 436

原创 appium iOS 真机之坑

1.Encountered internal error running command: Error: Unable to launch WebDriverAgent because of xcodebuild failure: "xcodebuild failed with code 65". Make sure you follow the tutorial at https://githu...

2019-03-07 18:46:51 1716 1

原创 python学习

可以参考:http://www.runoob.com/python3/python3-examples.html

2019-02-21 15:50:32 118

转载 PyCharm 破解---亲测可以用

https://blog.csdn.net/yanjiangdi/article/details/80508981

2019-02-18 15:37:35 117

原创 KSCrash源码阅读(Monitors)

前言版本:1.15.18这一篇主要介绍如何捕获异常的,由于KSCrash做了反调试,阅读起来有点麻烦,只能一步一步的阅读源码来探寻原理Monitors这个目录下面对crash的类型进行了分类处理,挑几个重点的来看KSCrashMonitor_NSException #import "KSCrash.h"#import "KSCrashMonitor_NSException...

2019-01-21 19:02:47 2457

转载 IOS---实例化讲解RunLoop(应用于子线程)

实例化讲解RunLoop之前看过很多有关RunLoop的文章,其中要么是主要介绍RunLoop的基本概念,要么是主要讲解RunLoop的底层原理,很少用真正的实例来讲解RunLoop的,这其中有大部分原因是由于大家在项目中很少能用到RunLoop吧。基于这种原因,本文中将用很少的篇幅来对基础内容做以介绍,然后主要利用实例来加深大家对RunLoop的理解,本文中的代码已经上传GitHub,大家可...

2018-12-26 16:19:22 662

转载 iOS 谈谈layoutSubviews何用

https://www.jianshu.com/p/2ef48c2f0c97

2018-12-24 16:04:56 511

原创 为何线程的入口要加Autorelease Pool

我们经常会在一些第三方库中看到这种情况,线程的入口加上Autorelease Pool,这是为何?int main(int argc, char * argv[]) { @autoreleasepool { return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]))...

2018-12-21 15:13:03 641

原创 iOS crash追踪(二)各个地址之间的关系

先来看一个苹果的官方crash日志:Incident Identifier: 98A2A094-C241-4B57-9657-B08414AD0791CrashReporter Key: 204677b9cf9adcc44e75f93963265d8edc783151Hardware Model: iPhone8,1Process: Uncaugh...

2018-09-20 18:30:13 8211

原创 iOS crash追踪(一)异常的处理机制

什么异常 所谓异常就是正常的用户程序被暂时中止,处理器就进入异常模式,例如响应一个来自外设的中断,或者当前程序非法访问内存地址都会进入相应异常模式 异常是如何被发现的 异常是由硬件识别的,硬件具有识别各种异常的能力,不管任何操作最后都是由硬件来执行的,例如一个除0操作,在运算器处理的时候会直接识别出该操作是一个异常,然后将CPSR(程序状态寄存器,有些地方也称为psw)中的模式...

2018-08-15 11:36:01 476

转载 ios优化-包大小分析-MACHO文件解析

在分析linkMap文件的时候,遇到一个有趣的问题:获取类名可以用_objc_classname, 获取方法名可以用_objc_methname。可是怎么将方法名称和对象名称对应起来,程序是如何对应这两部分数据的。带着这个疑问研究了下macho的文件结构。https://dishibolei.github.io/2017/10/26/mach-o-parser/...

2018-07-30 18:42:59 1343

转载 深入讲解iOS键盘一:控制键盘隐藏显示

在iOS的开发中,我们一般使用UITextField、UITextView处理文字输入等操作,大部分情况下我们只需要一两行代码去手动管理键盘的显示隐藏:让UITextField或UITextView成为第一相应者的时候会自动唤起键盘,当我们点击其他区域的时候让UITextField或UITextView失去焦点,键盘自动隐藏。//是否能成为第一响应者- (BOOL)canBecomeFirstR...

2018-07-16 15:56:19 1901

原创 解决 github push failed (remote: Permission to userA/repo.git denied to userB.)

前言】当你看到这篇文章时,很高兴,你不用再去各大网站再去搜索这个问题的解决方案了,因为这篇文章可以帮你彻底解决问题。请耐心地阅读完。本文假设了两个用户 userA 和 userB ,userA的github项目名为 test当你在使用git push项目的时候,你遇到了这个问题:MacBook-Pro:BSBacktraceLogger $ git push -u origin ma...

2018-07-13 16:14:32 936

转载 iOS 任意线程调用栈的捕获和符号化(三)

我们知道 NSThread 有一个类方法 callstackSymbols 可以获取调用栈,但是它输出的是当前线程的调用栈。在利用 Runloop 检测卡顿时,子线程检测到了主线程发生卡顿,需要通过主线程的调用栈来分析具体是哪个方法导致了阻塞,这时系统提供的方法就无能为力了。最简单、自然的想法就是利用 dispatch_async 或 performSelectorOnMainThread 等方法...

2018-07-13 11:10:47 1186

原创 iOS 任意线程调用栈的捕获和符号化(二)

由于我们在上面回溯线程调用栈拿到的是一组地址,所以这里进行符号化的输入输出应该分别是地址和符号,接口设计类似如下:- (NSString *)symbolicateAddress:(uintptr_t)addr;不过在实际操作中,我们需要依赖于dyld相关方法和数据结构:/* * Structure filled in by dladdr(). */typedef struct dl_inf...

2018-07-12 18:57:44 1563

转载 iOS 任意线程调用栈的捕获和符号化(一)

如果要获取当前线程的调用栈,可以直接使用现有API:[NSThread callStackSymbols]。但是并没有相关API支持获取任意线程的调用栈,所以只能自己编码实现。1. 基础结构一个线程的调用栈是什么样的呢?我的理解是应该包含当前线程的执行地址,并且从这个地址可以一级一级回溯到线程的入口地址,这样就反向构成了一条链:线程入口执行某个方法,然后逐级嵌套调用到当前现场。(图片来源于维基百科...

2018-07-11 14:12:47 1519

转载 设计模式 MVC/MVP/MVVM

https://blog.csdn.net/hudan2714/article/details/50990359

2018-07-04 15:15:33 94

转载 iOS 消息转发

https://www.jianshu.com/p/1073daee5b92https://www.cnblogs.com/byxixiblogs/p/8257523.html

2018-06-25 14:57:18 137

转载 RunLoop实时卡顿监控

原理官方文档说明了RunLoop的执行顺序:1. Notify observers that the run loop has been entered.2. Notify observers that any ready timers are about to fire.3. Notify observers that any input sources that are not port ...

2018-06-19 18:57:17 1706

转载 NSRunloop

https://www.cnblogs.com/kenshincui/p/6823841.html

2018-06-19 11:07:50 178

转载 带你深入了解iOS的内存分配

可以看一下这个文章http://www.cocoachina.com/ios/20180122/21892.html

2018-06-11 10:49:44 211

原创 iOS 可执行文件- Universal (fat) binaries

Executables    A process is created as a result of loading a specially crafted file into memory. This file has to be in a format that is understood by the operating system, which in turn can parse the...

2018-06-08 15:51:25 2298

转载 MachOView 安装 及闪退处理

下载源码 https://github.com/gdbinit/MachOView选择mac os SDK若编译报错,修改源码编译成功之后,将MachOView.app 拖入应用程序 就可以用了转载原文:https://blog.csdn.net/lcg910978041/article/details/80220485...

2018-06-06 14:39:03 4491 1

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除