有9年开发经验,移动开发领域专家, CSDN博客专家/掘金优秀创作者、就职于开店宝支付服务有限公司iOS高级工程师,解决iOS12-iOS15消息推送无法语音播报收款金额的问题,擅长iOS安全和消息推送语言播报等技术。 公众号:iOS逆向
背景:隧道APP请求我们自己接口的都不走隧道
- ldid工具:ldid是mac上的命令行工具,可以用于导出的签名文件、对文件进行重签名等操作 - 提高APP的被逆向难度
1. 下拉顶部背景色设置: 往tableView的父控件添加拉伸背景视图 2. present 半屏适配 iOS13 modalPresentationStyle属性默认不是全屏样式`UIModalPresentationFullScreen`,而是半屏样式,需要根据需求手动设置。 present 半屏,会导致列表下拉刷新失效。
iOS逆向时经常会遇到参数为block类型,本文介绍一个lldb script,可快速打印出Objective-C方法中block参数的类型。
术语:uni原生插件指的是将`原生开发的功能按照规范封装成插件包`,然后即可在 uni-app 前端项目中通过js调用原生能力。
术语: 1. 应用外导航:是指以URL跳转的方式(在iOS中就是以URL Scheme的方式),直接跳到对应的地图APP中,直接利用对方的功能来导航。这样的优点,一是接入方便,二是不增加自己APP的开销。 2. 应用内导航:是指使用地图服务提供的SDK(如高德,百度),直接将导航功能嵌入到我们自己的APP内部。 需求:跳转到已经安装的地图 背景:为了减少app内存开支,以URI跳转的方式直接跳转到对应的地图进行导航,让最专业的人做最专业的事。
背景:app采用uni实现 需求: iOS App前台后台离线(杀死情况下)推送语音播报(到账xx元、收款播报、自定义推送铃)。 实现方式:uni-app 原生插件(支持iOS Extension)
Charles 支持的协议:HTTP/1.1、HTTPS、HTTP/2、ws(WebSocket)、wss(WebSocket Secure,TLS 加密的 WebSocket)、SOCKS
模板消息的日调用上限:当账号粉丝数超过10W/100W/1000W时,模板消息的日调用上限会相应提升,以公众号MP后台开发者中心页面中标明的数字为准。
介绍lua 函数: runApp、closeApp、getScreenSize、getDeviceID、lua_exit、isFrontApp。
重签名需求:改变了应用的二进制文件,或者增加、修改了应用里面的资源,应用本身的签名就会被破坏。
make是一个命令工具,是一个解释makefile中指令的命令工具。其本质是**文件依赖**,Makefile文件制定编译和链接所涉及的文件、框架、库等信息,将整个过程自动化。
主要分析3块: 1. Triggered by Thread线程的调用栈回溯信息 2. 与架构相关崩溃的线程状态(crashed with ARM Thread State) 3. Binary Images信息
利用Xcode自带的symbolicatecrash 进行符号化
项目是一个特殊的,将被完成的`有限任务`,它是在一定时间内,满足一系列特定目标的多项相关工作的总称。 项目管理是对变化的管理、即使科学又是艺术、一门学科、专业、职业、一种理念、一种方法、是一种综合性的努力。
去掉UISearchBar搜索框的放大镜
iOS处理语言工具CFStringTransform : 智能地处理用户的输入内容,经典应用场景【索引】
1. get 和post 布尔值参数处理:如果后台Bool 参数没有同时支持【 0,1】 ;和【 true false】,get请求的时候就需要特殊处理。 2. 按照时间分页的数据重复的处理
需求:收款到账语音提醒功能 NSE是比Voip更优雅的解决方案,完成迁移后,总体代码量也比Voip方案少了不少。
1. 应用场景:证件扫描、文字识别 2. 原理:利用iOS13 VNDocumentCameraViewController的证件扫描和VNRecognizeTextRequest文字识别功能进行实现
常用基础功能
银行和信用卡类app 为了安全,防止修改和抓包都是基本的要求。
动手实践:写一个tweak ,修改请求的HTTPHeaderField
1. 功能:扫描银行卡识别信息( 银行名称、 银行卡号)并截取银行卡图像 2. 应用场景:快速填充银行卡号的场景,比如商户进件、实名认证
本文为 iOS视图约束专题的第三篇:xib上使用自动布局教程
应用场景:商户结算账户信息加密保存,脱敏显示
本文介绍iOS设备日志查看工具syslog、deviceconsole和`socat`,如果上述工具都不满意,你也可以使用Mac系统自带的console控制台进行查看。
避免代码和功能的重复,DRY(Don’t repeat yourself)。
需求背景: 进件风险控制强化(IOS) 通过身份证号码提取法人出生年月日,与当前日进行比较,如<18周岁, 则提示“法人未满18周岁,禁止进件!”
需求:商户进件的子模块证件信息页面新增营业执照编号校验
忽略IntelliJ IDEA 文件
应用案例: 商品分类名称(仅支持数字、字母、中文、斜杠\、横杠",且不能以符号开头)
本教材适用于gitlab 和GitHub。 同样最近CSDN推出了基于gitlab的codechina.csdn.net,你赶紧来试试吧!
表和表之间的关系推荐使用代码逻辑去控制,方便进行扩展(分表),不推荐使用注解。
设备信息的获取:除了使用_idfa、_idfv, 还使用sysct 获取cpu信息。
使用iOS API获取在屏幕上的点击坐标
需求: 菜单管理(服务商角色配置权限管理)、文章分类、MCC类目、区域信息。
查看触动精灵lua脚本的PID
我们开发的大部分越狱程序,都是编译成动态链接库(`例如:介绍的越狱程序(Tweak)开发,就是动态链接库。`),然后通过越狱平台的MobileSubstrate(iOS7上叫CydiaSubstrate)来加载进入目标程序(Target),通过对目标程序的挂钩(Hook),来实现相应的功能。
集合的概念: - 在数学意义上的概念是: 对个数据放置在一起而建立起来的模型,这些数据类型可以不同; - 在软件中的定义,一堆数据放置在一个空间中存储,将整个存储空间称为集合。
业务场景: 日志、交易流水表或者其他数据量大的表,通过日期进行了水平分表,需要通过日期参数,动态的查询数据。 实现思路:利用MybatisPlus的动态表名插件DynamicTableNameInnerInterceptor ,实现Sql执行时,动态的修改表名。
背景:为了提升开发效率,利用mybatisplus API读取数据库表结构生成对应的实体entity、服务service,通过模板生成映射mapper。 代码生成器完善: 增加Mapper注解和Fill填充
虚表dual ,它是一行一列,没有任何数据,常常用于测试。
DQL:(数据查询语言,select)用来完成对数据库中的数据查询。 DDL(数据定义语言,create,drop,truncate截断表)操作表结构。 DML(数据库操作语言,insert,delete,update)操作数据
提高数据库运行效率的方法:从数据库系统级优化、数据库设计级优化和程序实现级优化。
QPS: 请求进入的速度 并发数: 系统中同时存在的请求数 并发数 = QPS * 耗时
后端修改了接口,需要手动维护api文档,加大了开发的工作量和困难,而swagger的出现就是为了解决这一系列的问题。
1、功能:可自动快速读出中国二代身份证上的信息(姓名、性别、民族、住址、身份证号码)并截取到身份证图像 2、应用场景:信用卡网申、商户进件、实名认证流程为了用户体验提供扫一扫证件识别身份证号码功能。
存储过程是用户定义的一系列sql语句的集合,设计特定的表或其他对象的任务,用户可以调用存储过程; 函数通常是数据库已定义的方法,它接受参数并返回某种类型的值并且不涉及特定的用户表。
完整性约束的三方面表现 - 域的完整性使用check来实现约束,通过它定义字段的值域。 - 参照完整性使用主键约束、外键约束和表级别触发器来实现 - 用户定义完整性,它是一些业务规则,用存储过程和触发器来实现。