引言
欢迎大家来到#公众号:iOS逆向的《iOS进阶》专栏
I 、 网络本文列出学习大纲,同时这也可以作为大家学习《iOS进阶》这个专栏的索引。
文中的蓝字都是传送门,点击进入即可
1.1 通信
1.2. IPC
iOS AppStore Search optimize【Inter process Communication】之 去掉对rocketbootstrap的Depends依赖
3、目的:是想在自己的deb 自带rocketbootstrapd,避免每次部署都从bigBoss 源更新。
4、相关文章:iOS AppStore Search optimize【 ASO项目使用的技术】之 Inter process Communication By Rrocketbootstrap
2.0 支付相关的基础知识
2.1 消息推送后台语言播报(包括app处于杀死状态)
-
iOS NotificationServiceExtension实现VoiceBroadcast【app处于后台/被杀死的状态仍可进行语言播报】iOS12.1以上在后台或者被杀死无法语音播报的解决方案
2.2 收银app必备模块:收银台、电子签名
2.2.1计算器
iOS计算器:采用NSDecimalNumber 进行表达式的精准计算(计算字符串数学表达式)【案例:折扣计算器(完整demo源码)】
2.2.2 电子签名
-
电子签名上篇【核心原理: 旋转特定的屏幕】应用场景:采集电子签名,支持签名界面为横屏其余页面都是竖屏、清除重写、灵活控制提示语信息、以及查看商户协议等
-
电子签名下篇【 只旋转自己想要旋转的屏幕(内含demo源码)】 关键步骤:1、viewWillAppear设置横屏2、viewWillDisappear 进行设置竖屏
2.3、商户交易风控
1、盗刷拒付风险
2、疑似欺诈、电诈、套现风险
3、异常大额、异常测试:
4、跨境风险


2.4 处理用户输入内容(金额/手机号码等)
2.5 商品详情页
2、应用场景:商品详情页以及需要展示大量图片的界面
3、核心原理
3.1)按照图片的原来宽高比进行缩
3.2)UICollectionView的高度自适应
2.6 反馈页面
2.7 微信支付
2.8 封装银联接口协议
iOS网络请求指南之 【封装银联接口协议】(提交和返回数据都为XML格式)案例:对接条码支付综合前置平台被扫支付订单申请退款(退款查询)
2.9 OCR
iOS13扫描证件&银行卡信息识别;身份证识别 (正反) ;矩形边缘识别 ;自定义证件相机 (含demo源码)
2.10 商户交易汇总表
III、效率- 提高前后台联调效率
提前根据约定好的接口,使用Charles进行模拟数据
- 重复写的代码自动生成:根据 JSON 自动生成 Model 文件
3.1 架构模式
- 代码组织的架构模式
MVC / MVVM (解耦和抽象)、组件化、路由
- 改变编写代码方式的架构
响应式编程、链式编程、单向数据流
3.1.0 MVC、MVVM
3.1.1 链式编程
磨刀不误砍柴功:编写代替自己工作的自动化工具
3.1.2 路由:接口控制app跳任意界面
3.2 持续集成
- 自动化构建(重复做的事都应该自动化,以提高开发效率)
其中涉及代码管理(git / svn),编译流程,证书和签名机制,自动化测试,打包发布。
其中还会有一些自定义的自动化流程(自动生成代码,根据 debug / release 包类型自动更改配置)
3.2.1 代码管理: CocoaPods
-
CocoaPods 使用手册:1、基础应用 2、高级用法: podspec.json、tweak 集成CocoaAsyncSocket、采用 pod lib 开发并打包iOS静态库
-
【采用 pod lib 开发并打包iOS静态库(比我之前自己搭建的模板更方便)及利用iOS CocoaPods私有库实现组件化】
-
iOS代码管理之【Xcode Build版本号自增的解决方案】(通过配置脚本让xcode 在每次Build打包时自动对CFBundleVersion加一)
3.2.2 根据 debug / release 类型自动更改配置
3.3实用工具
3.3.1. 用户输入处理工具
3.3.2 图片压缩
3.3.3 提高开发效率的工具
-
iOS 效率工具【根据 JSON 自动生成 Model 文件(数据模型)】省去了复制粘贴的环节。支持 YYModel / MJExtension 的自动映射. 灵活拓展和定制(名字、头文件注解)
-
iOS进阶:【封装富文本API,采用block实现链式编程】(block 的妙用:结合block和方法的优点实现iOS的链式编程)
磨刀不误砍柴功:编写代替自己工作的自动化工具
-
iOS App thinning【( 通过 LinkMap、mach-o寻找优化点)】1、段迁移rename_section减小__TEXT 段大小(需关闭 Bitcode)2、查无用方法/类/宏/图
-

3.4 封装SDK
3.4.1 自定义相机
- 手持证件照相机:【拍身份证裁剪大小,截图截出所需大小】(带拍摄区域边框及半透明遮罩层)
- 1、iOS13 documentCameraViewController 扫描证件(demo源码)2、身份证识别 (正反) 3、矩形边缘识别 4、自定义相机: 加一个长方形的框框并裁剪身份证照片


4.1 常用动画

V、 解决方案汇总
5.1 布局
例子:入库单详情界面未审核状态时展示审核按钮,否则隐藏审核按钮

5.2 常用功能解决方案
5.2.1 蓝牙打印
5.2.2 本地化
-
解决部分英文国际化没有生效的问题- APP(iOS版)存储国际化英文字符串的.string文件长度受限,需修改逻辑拆分子文件存储。
-
【iOS APP 内的国际化切换】1、字符串的本地化、2、自定义解析本地化字符串的工具类LanguageManager、3、例子:登录界面切换中英文。
6.1 上架流程指南
-
iOS上架前的准备、上架技巧(不更新版本的情况下删除App Store非主语言的方法)、常见上架问题及解决方案(上传ipa包被吃掉、已上架app在AppStore搜不到)、app上架后的事项(ASO)
-
iOS代码管理之【Xcode Build版本号自增的解决方案】(通过配置脚本让xcode 在每次Build打包时自动对CFBundleVersion加一)
6.2 ASO
see also























