iOS逆向
华为云云享专家认证|阿里云开发社区博客专家,定期分享Java、iOS资讯(包括基础知识储备)、小程序开发与运营、阅读与写作。只为你呈现有价值的信息,专注于移动端技术研究领域。
展开
-
iOS小技能:参数名ASCII码从小到大排序、按照日期进行分组、对象数组按照时间戳排序(利用KVC、NSPredicate、数组sortedArrayUsingComparatorAPI)
文章目录引言I、参数名ASCII码从小到大排序(字典序)II 、将含有日期属性的对象数组按照日期重新分组引言参数名ASCII码从小到大排序数据按照日期进行分组I、参数名ASCII码从小到大排序(字典序)iOS 安全规范指南之【对请求参数进行签名】请求参数按照ASCII码从小到大排序、拼接、加密(采用递归的方式进行实现)应用案例:条码支付综合前置平台申请退款————————————————版权声明:本文为CSDN博主「#公众号:iOS逆向」的原创文章,遵循CC 4.0 BY-SA版权协原创 2021-03-26 14:30:48 · 3326 阅读 · 5 评论 -
iOS基础专栏目录指南之【基础模块】(持续更新)
文章目录引言I、 Objective-C1.1 对象模型1.2 动态特性(runtime)II、 UI基础2.1 UIKit基础控件手册2.2 系统控件的基本使用及常见问题的解决方案III、 UI进阶3.1 自定义MVVM视图IV、 iOS权限检测指南V、 调试VI、 swift引言I、 Objective-CObjective-C 的原意就是在 C 语言主体上加入面向对象的特性。任何 C 语言程序不经修改就可以直接通过 Objective-C 编译器,在 Objective-C 中使用 C原创 2021-01-29 15:28:40 · 2610 阅读 · 3 评论 -
iOS小技能:系统适配(持续更新)
文章目录引言I、 iOS14适配II、 iOS13适配III、 iOS12适配see also引言I、 iOS14适配iOS14适配汇总:【1、隐私权限相关:定位、相册、IDFA 2、KVC相关:不允许访问 UIPageControl的pageImage3、UIView相关适配:UITableViewCell兼容4、网络相关】iOS14 开启 encrypted DNS 提高安全性,防止DNS 劫持iOS14适配【 读取用户剪切板数据会弹出提示】1、 查找哪些SDK使用了剪切板,及时升级原创 2021-01-29 15:05:56 · 3827 阅读 · 2 评论 -
iOS基础-专栏总目录(持续更新)
文章目录引言I、 上架指南II、 系统适配iOS14适配iOS13适配III、 注册/登陆基础模块3.1 《用户协议及隐私政策》弹框3.2 处理用户输入内容IV、 支付基础知识V、 数据存储VI、 地理信息处理VII、 系统控件的基本使用及常见问题的解决方案VIII、 数据提交IX、 测试技巧X、 自定义视图see also引言欢迎大家来到#公众号:iOS逆向的《iOS基础》专栏本文列出学习大纲,同时也可作为大家学习《iOS基础》专栏的索引。文中的蓝字都是传送门,点击进入即可Basic原创 2021-01-16 09:55:27 · 19117 阅读 · 6 评论 -
iOS小技能:苹果开发者申请材料
(2) 需要提供公司联系人信息(该信息用于邓白氏核实公司信息时的联系对象) : 联系人姓名 联系人电话 联系人邮箱 ( 可以是个人的也可以是企业邮箱 )下载apple developer 进行注册: https://apps.apple.com/cn/app/apple-developer/id640199958。(2). 公司类型:例如有限公司(LLC),股份有限公司(Inc.)等。(1). 公司名称:确保公司名称与注册时的官方名称一致。(2). 公司证书:证明您的公司在美国合法注册的文件。原创 2024-03-06 18:32:10 · 198 阅读 · 0 评论 -
iOS小技能:xcode15适配
SDK does not contain 'libarclite' at the path '/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/arc/libarclite_iphonesimulator.a'; try increasing the minimum deployment target原创 2024-03-04 18:27:08 · 589 阅读 · 0 评论 -
iOS小技能:苹果书签打包教程【WebClip描述文件(WebClip Configuration Profile)】
WebClip描述文件(WebClip Configuration Profile)是一种用于iOS设备的简易配置文件,它可以在你的iOS设备(如iPhone、iPad等)上创建一个应用程序图标,用户点击这个图标时,便可直接访问一个特定的网站。将WebClip描述文件安装到iOS设备上时,设备将根据描述文件中的内容在主屏幕上创建一个图标。【URL】 即是应用打开的链接地址,可移除是否勾选可自行选择(勾选的话,就意味着可以在桌面长按图标点击 X 删除,不勾选的话, 需要在设置的描述文件里删除)原创 2024-03-02 14:31:25 · 991 阅读 · 0 评论 -
iOS小技能:文件的导入和导出(UISupportsDocumentBrowser、LSSupportsOpeningDocumentsInPlace、UIFileSharingEnabled)
在打开微信或qq等外部app中将他们的文档存储到我们app的文件夹中,再从我们的app中打开文件夹界面,选择存储好的文档。就可以在On My iPhone看到自己的APP,如果没有的话,就打开相册随便分享一个图片到Save to Files就会出现是指把 Documents 共享给iTunes,连上数据线可以在文件共享看到对应App的 Document 文件夹的数据:一个dictionary数组,这个dictionary表示应用可以支持的文档类型。原创 2024-03-02 10:38:15 · 231 阅读 · 0 评论 -
iOS小技能:真机调试(配置真机调试证书的步骤)
2、你的手机必须具备真机调试功能,需要一个MobileProvision规定文件,规定文件中包含哪一台手机能真机调试,跟哪台电脑调试,调试哪些app。开启该选项后,程序在运行时,如果访问了已经释放的对象,则会给出较准确的定位信息,可以帮助确定问题所在。2、 MobileProvision文件:哪台设备、哪些app、哪台电脑需要做真机调试?2).生成cer证书:cer是一个跟电脑相关联的证书文件,让电脑具备真机调试的功能。1、 你的电脑必须具备真机调试功能,需要一个cer证书文件。原创 2023-02-14 14:16:53 · 1020 阅读 · 1 评论 -
iOS小技能:核心动画(CoreAnimation)
核心动画的执行过程都是在后台操作的,不会阻塞主进程;核心动画直接作用于CALayer,而非UIView。原创 2022-09-29 14:23:59 · 588 阅读 · 0 评论 -
iOS小技能: 网络加载中处理、接口暂无数据处理、全局监听用户点击事件
引言在日常开发中经常涉及数据列表的查询,处理服务侧无数据返回的情况或者网络异常的手段是iOS必备小技能。I 处理暂无数据网络请求失败,业务逻辑错误,返回数据为空都是需要处理界面的显示,推荐使用暂无数据进行提示。1.1 用法 if (weakSelf.viewModel.listDataArray.count == 0) { [weakSelf.viewModel.ShowNoviewSubject sendNext:QCTLocal(CRM_nodata_I原创 2021-11-09 11:25:25 · 4275 阅读 · 0 评论 -
iOS小技能: 曲线图(例子:商品销售曲线图)
前言效果图I、 用法1.1 ORLineChartView的初始化- (ORLineChartView *)cellView{ if (nil == _cellView) { ORLineChartView *tmpView = [[ORLineChartView alloc]init]; _cellView = tmpView; ////locations of gradientColor. default nil t原创 2020-07-22 14:43:30 · 12096 阅读 · 0 评论 -
iOS小技能:图片压缩、图像格式的判断、获取gif图片循环次数和时长
subtitle: Gzip压缩数据原创 2018-10-24 11:17:41 · 11542 阅读 · 0 评论 -
iOS小技能:MVVM数据绑定的实现方式(KVO、block、Delegate、Notification、RAC)
前言MVVM 的实现可以采用KVO进行数据绑定,也可以采用RAC。— 其实还可以采用block、代理(protocol)实现。优缺点比较:在对象间的通信中,有block、protocol、通知;block 与protocol 相比的优点//block 的作用:保存一段代码,到恰当的时候调用,很多时候block是代理的一种优化方案 1、block比protocol更灵活,更高聚合,低耦合。例如AFN..............................原创 2017-07-17 09:21:29 · 16137 阅读 · 0 评论 -
iOS基础知识
深复制即内容拷贝指针拷贝(浅复制)1)每一列的x值一样,x值由列号决定2)每一行的y值一样,y值由行号决定1.3 内存分析(栈、堆的存储信息)1、只读指针属性的分析(指向关系不可变,指向对象的内容可变)示例1:UIButton 对象有UILabel 、UIImageView 属性,都是readonly示例2:(readonly表示titleLabel的指针指不可修改,但label的font可以修改)示例3:1.4 instancetype简介OC中,在IOS7之后主推instancetype。原创 2022-06-13 11:18:38 · 763 阅读 · 0 评论 -
iOS小技能:常用预处理指令(移除程序中的identifier、发布模式关闭NSLog、导出和隐藏符号)
文章目录引言I、iOS常用预处理指令1.1 移除程序中的指定identifier(标识符)1.2 DEBUG 宏的应用1.3 、导出和隐藏符号1.3.1 导出符号信息1.3.2 控制符号是否导出引言I、iOS常用预处理指令1.1 移除程序中的指定identifier(标识符)#pragma clang poison identifier应用场景:禁止使用ObjC 的运行时API例子:#pragma clang poison NSLog1.2 DEBUG 宏的应用1、原原创 2021-03-03 13:32:11 · 2995 阅读 · 7 评论 -
iOS小技能:NSLog调试技巧
https://github.com/zhangkn/Basic_debuggingDEBUG 宏的应用场景:区分调试模式和发布模式进行特殊处理应用场景: 一个应用对应多个域名的情况,测试地址、生产地址、后台接口开发者的个人主机地址切换 build Configuration配置不同环境,如果手机装了多个环境的项目,不好区分,可以在xcode配置脚本,在编译时根据不同环境制作不同的icon图标。II NSLog调试技巧2.1 Where to find NSLog’s outputNSLog原创 2022-06-09 17:28:00 · 1187 阅读 · 0 评论 -
iOS小技能:装箱和拆箱(boxing、unboxing)
包装类是使用面向对象的思想把简单的数据类型封装成类(示例:Integer i=1,int p=i;//将包装类Integer转化成简单数据类型int)注:Integer的拆箱方法为 int intValue(),其他的包装类以此类推。1)包装类都重写了toString方法,equals方法,hashCode方法2)Integer的API:将int类型的数据以二进制字符串形式返回 将字符串转化成int类型将字符串转化成对应的进制 类型,str为被转换的字符串,i为进制类型(10,8,16) 将字符串原创 2022-06-09 15:33:15 · 942 阅读 · 0 评论 -
编码小技能:编码原则、面向对象、网络通讯五元组、LSP
先说说对我影响比较深的编码原则:object是指一个具体的事物实例Object oriented:指面向客观事物之间的关系(对象与对象)面向对象的定义:根据用户需求抽象出业务对象,然后再根据需求进行合理划分;形成相对独立的业务功能,之后再设计业务逻辑。利用面向对象的特点(封装、抽象、继承、多态)的编程思想实现业务需求,最后通过每个业务之间功能的关系进行整合,从而满足客户的要求。在分析项目业务关系的时候,应用一些UML(Unified Modeling Language)图,例如常用的用例图(use case原创 2022-06-01 17:21:02 · 751 阅读 · 0 评论 -
iOS小技能:社会化分享方案
文章目录引言I 系统原生: UIActivityViewController1.1 支持的平台1.2 设置回调block,获取分享相关信息1.3 案例II 集成第三方分享平台引言系统原生 :UIActivityViewController、Social Framework友盟(第三方分享平台)案例:小程序分享https://blog.csdn.net/z929118967/article/details/124893795如果App分享类型需要支持多媒体(声音、视频、文件等),需要支持的平台原创 2022-05-23 17:15:30 · 824 阅读 · 0 评论 -
iOS 社会化分享小程序(解决微信小程序当前页面不可转发)
文章目录引言I 使用友盟分享小程序1.1 集成社会化分享1.2 分享样式设置II 使用微信官方的Open SDK分享小程序2.1 版本选择2.2 集成2.3 用法III 常见问题3.1 Universal Links系统回调失败3.2 小程序分享后为什么图片很模糊?3.3 小程序封面不显示3.4 This app is not allowed to query for scheme weixin引言系统原生Social Framework和 UIActivityViewController的社会化分享只原创 2022-05-21 08:10:10 · 1210 阅读 · 0 评论 -
iOS小技能:优雅高性能地从数组中搜索数据(多个过滤条件)
引言需求: 选择开户支行时,支持支持名称/联行号筛选。I 利用谓词进行数据过滤1.1 选择开户支行时,支持支持名称/联行号筛选遍历字典或者数组利用NSPredicate进行数据筛选1.2 城市搜索谓词技术的使用 searchText = searchText.uppercaseString; NSPredicate *predicate = [NSPredicate predicateWithFormat:@" pinYinHead.u原创 2022-05-12 14:13:45 · 1701 阅读 · 0 评论 -
iOS小技能:UILabel展示三行,如果超过三行显示下拉icon或者更多...
文章目录引言I 前置知识1.1 约束优先级1.2 计算UILabel行数II UILabel展示三行,如果超过三行显示下拉icon。2.1 更新视图的数据模型时,判断文本行数,进行控制下拉icon的显示与隐藏2.2 处理下拉事件2.3 处理上拉事件引言需求: 设备描述最多展示三行,如果超过三行显示下拉icon。I 前置知识1.1 约束优先级例子: 设置购买按钮的底部约束优先级最高,来实现动态控制cell的高度。 [tmpView mas_makeConstraints:^(原创 2022-05-06 14:58:37 · 1890 阅读 · 1 评论 -
iOS小技能: 集成社会化分享(代理商展业二维码)
文章目录引言I 集成社会化分享1.1 U-Share SDK 集成步骤1.2 第三方平台配置1.3 配置SSO白名单1.4 配置URL Scheme1.5 配置Universal link1.6 如使用友盟官方生成Universal link功能II 初始化2.1 基础组件库2.2 U-Share初始化工作2.3 设置系统回调III 分享设置3.1 小程序3.2 分享图片3.3 分享纯文本引言本文以友盟的SDK为例子,从2020年6月1日起该旧版本SDK会被微信限制使用正常分享功能(分享时会显示“未验证原创 2022-04-22 13:57:18 · 3685 阅读 · 1 评论 -
iOS小技能: 封装textView 为一个cell,用于备注信息编辑/街道地区信息的填写
前言视图的组成部分为:标题编辑区域字符限制用法// 编辑详细地区视图模型// 编辑详细地区视图模型 self.viewModel.delivery.tvModel = [QCTTextViewModel new]; // // self.viewModel.delivery.tvModel.Labtitle = QCTLoc...原创 2020-02-20 23:59:53 · 10928 阅读 · 0 评论 -
iOS AR开发
引言增强现实(Augmented Reality):能够在用户所在真实世界空间(real-world space)与虚拟空间(virtual space)之间建立追踪(world tracking),并在建立追踪后可视化虚拟内容。iOS 11引入了ARKit框架,核心是为一些关键功能提供支持,包括运动跟踪、水平面检测,以及尺度和环境光预测。ARKit并不是一个独立就能够运行的框架,而是必须要SceneKit一起用才可以 。I 基础知识1.1 SceneKitSpriteKit和SceneKit是原创 2022-03-31 13:34:39 · 7667 阅读 · 0 评论 -
iOS小技能: 找不到导入头文件的解决方案
文章目录引言I 分析问题原因II 解决方案2.1 清理缓存2.2 设置search Paths2.3 删除误添加到targets的源文件引用引言问题描述:Unknown type name ‘xxxx’问题原因:缓存导致search Paths没有设置对应的目录新建文件时,把文件添加到其他targets(比如消息推送扩展)。解决方案: 先分析找到对应原因,再针对性解决。I 分析问题原因分析方法:枚举使用对应的枚举类型 ,class使用ID或者c@lass进行声明。把你.h中导入的类原创 2022-03-14 16:34:15 · 5174 阅读 · 0 评论 -
iOS小技能:导航控制器(控制器、view的多种创建方式、控制器的生命周期)
文章目录前言I 控制器常见的创建方式1.1 通过storyboard创建1.2 直接创建1.3 指定xib文件来创建II 创建ViewController的view2.1 控制器的view是延迟加载的即懒加载(用到时再加载 )2.2 内存警告处理:2.3 生命周期方法III 多控制器(用一个控制器去管理其他多个控制器)前言控制器管理(控制器之间的切换)控制器、view的多种创建方式UINavigationController 的简单使用(添加、移除子控制器)UINavigationBar内容的设原创 2022-03-01 10:56:37 · 2600 阅读 · 0 评论 -
iOS小技能:特殊的UIView(UIWindow)
文章目录引言I UIWindow1.1 添加View到UIWindow中的方式1.2 常用方法1.3 UIWindow的对象获取II 案例2.1点菜系统2.2 国旗选择2.3 省市联动引言一个iOS程序之所以能显示到屏幕上,完全是因为它有UIWindow;也就说,没有UIWindow,就看不见任何UI界面。I UIWindow键盘也是UIWindow1.1 添加View到UIWindow中的方式两种常用方式- (void)addSubview:(UIView *)view;//直接将UIVie原创 2022-02-28 17:52:54 · 3358 阅读 · 1 评论 -
iOS小技能:应用程序初识
引言什么是image:Executable: 应用的主要二进制(比如.o文件)Dylib: 动态链接库(dynamic library,又称 DSO 或 DLL)Bundle: 资源文件,不能被链接的 Dylib,只能在运行时使用 dlopen() 加载I UIApplication(应用程序的象征)1.1 UIApplication每一个应用都有自己的UIApplication对象,而且是单例的;[UIApplication sharedApplication]1、一个iOS程序原创 2022-02-28 15:56:49 · 2323 阅读 · 2 评论 -
iOS小技能:字典转模、对象的相等性
文章目录前言I 代码重构(前提是已经实现了基本功能)II 字典转模型2.1 字典转模型的实现步骤2.2 字典转模型的过程III 基础知识3.1 深复制&浅复制3.2 九宫格计算方法3.3 内存分析(栈、堆的存储信息)3.4 instancetype简介3.5 @synthesize的用法3.6 @property前言字典转模型/** 通常实现字典实例化模型,都实现了以下模型的实例化方法*///使用字典实例化模型- (instancetype) initWithDictionary原创 2022-02-28 15:11:39 · 2563 阅读 · 0 评论 -
iOS小技能(开发规范): app的开发步骤
文章目录前言I 搭建界面II 连线的建立:IB 与代码的连接2.1 IBAction在IB中的源码2.2 IBOutlet的源码2.3 方法和属性声明III 编写程序实现功能(方法的实现)IV app的开发步骤分析V 开发规范5.1 修改对象的结构体属性的成员的三个步骤5.2 代码优化5.3 避免魔法数字前言app的开发步骤:搭建界面(应用程序的样本)连线(界面按钮和操作功能进行绑定)1)IBAction:本质上是void,只不过允许连线而已;使用IBAction增加代码原创 2022-02-25 16:14:22 · 2524 阅读 · 0 评论 -
iOS小技能: 用纯代码开发界面的过程 & 图片使用的相关注意事项
文章目录前言I 基础知识储备1.1 代码封装抽取思路1.2 不小心修改头文件的解决方法1.3 自动补齐(数字的格式化)1.3 @propertyII 图片使用的相关注意事项2.1 推荐使用png格式2.2 关于图像的实例化2.3 动画结束之后清除帧动画数组III 常用快捷键前言用纯代码开发的过程:确定界面元素,要有什么内容用代码搭建界面编写代码I 基础知识储备1.1 代码封装抽取思路将相同的代码放到一个新方法中将不同的值(button.tag)当做方法的参数传递进来: 在oc 中原创 2022-02-23 11:23:54 · 1700 阅读 · 0 评论 -
iOS小技能:本地通知的机制
文章目录前言I 本地通知的使用1.1 通知中心(NSNotificationCenter)1.2 通知对象(NSNotification)1.3 注册通知监听器1.4 取消注册通知监听器1.5 键盘通知II block的使用2.1 使用typeblock实现消息的传递2.2 例子see also前言通知的发布通知的监听通知的移除本地通知和代理的选择:共同点:都能饿按此对象间的通信不同点:代理是一对一关系;通知是多对多的关系(1个对象能告诉N个对象发生了什么事情,1个对象能得知N个对象发原创 2022-02-22 11:26:08 · 2577 阅读 · 0 评论 -
iOS ScrollView的使用教程
文章目录前言I 什么是UIScrollView?II UIScrollView的常见属性III 代理实现的步骤3.1 代理的作用是什么?3.2 背景3.3 设置UIScrollView 的delegate属性的两种方法:3.4 delegate 的例子:控制器希望知道用户输入的每一个字符3.5 代理实现的步骤小结前言自动布局:任何一个控件,都可以参照另外一个控件定义出准确的位置为了让程序员能够将注意力集中在程序上,而不用在代码中过多的使用frame。storyBoard快速布局方法:使用原创 2022-02-21 15:15:37 · 1856 阅读 · 0 评论 -
iOS小技能:代理的应用
文章目录引言I delegate1.1 delegate的使用场合1.2 使用delegate的步骤1.3 代理例子引言作用:监听控件的某些事件、使用代理模式,是为了在程序直接"解耦"代理的含义:遵守协议,预先定义好方法,不实现,具体的实现工作由代理负责。<控件的名字+DataSource> 定义的与数据有关的方法,通常有返回参数<控件的名字+Delegate> 定义的与事件有关的方法,通常用来监听控件事件的,通常没有返回值* 方法名以控件名称开头(没有类原创 2022-02-18 15:44:14 · 2403 阅读 · 0 评论 -
iOS小技能:1. cell的重用原理 2. 使用xib封装一个View的步骤 3. 通过代码自定义cell
文章目录引言I UITableViewCell的简介1.1 cell的结构1.2 cell的重用原理II 使用xib封装一个View的步骤III 通过代码自定义cell引言iOS开发中,要实现表格数据展示,做常用的做法就是使用UITableView。I UITableViewCell的简介1.1 cell的结构UITableView的每一行都是一个UITableViewCell1.cell的初始化: 通过datasource的tableView: cellForRowAtIndexPat原创 2022-02-18 14:17:41 · 2422 阅读 · 0 评论 -
iOS小技能:1. 什么是UITableView? 2. UITableView如何展示数据
文章目录引言I UITableView的简介1.1 什么是UITableView?1.2 UITableView如何展示数据(代理模式)II 字典转模型举例2.1 嵌套字典数组的模型转化2.2. KVC 之数组取值III MVC(model、view、controller)3.1 MVC的特性3.2 MVC特性的应用引言iOS开发中,要实现表格数据展示,做常用的做法就是使用UITableView。I UITableView的简介1.1 什么是UITableView?UITableView继承自U原创 2022-02-18 13:57:47 · 1312 阅读 · 0 评论 -
iOS 小技能: Responder Chain(响应者链)【下篇】
文章目录引言I 完整的触摸过程1.1 一次完整的触摸过程,会经历3个状态:1.2 事件的产生和传递1.3 UIView不接收触摸事件的三种情况II 响应者链的事件传递过程2.1 触摸事件处理的详细过程2.2 事件传递的完整过程2.3 模拟系统的hitTest方法原理III 监听触摸事件的做法3.1 方式一: 通过touches方法监听view触摸事件3.1 方式二: 手势识别功能see also引言Responder Chain(响应者链)【上篇】响应者链的事件传递过程抽屉效果I 完整的触摸原创 2022-02-07 17:08:15 · 965 阅读 · 0 评论 -
iOS 小技能: Responder Chain(响应者链)【上篇】
文章目录前言I 响应者对象1.1 触摸事件1.2 加速计事件1.3 远程控制事件II UItouch2.1 UITouch的作用2.2 UITouch的属性2.3 UITouch的方法III UIEvent3.1 常见属性3.2 获取touch对象的方法see also前言IOS 中的事件可分为:触摸事件(multitouch events)加速计事件( accelerometer events)远程控制事件(remote control events)I 响应者对象在iOS中不是任何原创 2022-02-07 15:23:58 · 1864 阅读 · 0 评论