iOS进阶专栏- 总目录(持续更新)
文章目录
- 引言
- I 、 网络
-
- 1.1 通信
- 1.2. IPC
II、支付方案
-
2.3 市商交易风险管理措施设计与实施策略
-
2.4 接收并处理用户输入信息(金额、手机号码等)
-
2.5 商品详情页展示与信息管理模块
-
2.6 反馈页面的互动体验优化方案
-
2.7 微信支付功能的系统对接开发
-
2.8 搭建安全可靠的封装银联接口协议框架
-
2.9 基于OCR技术的文字识别算法研究
-
2.10 市商交易统计报表的数据整合与展示逻辑设计
-
III、效率
-
-
3.1 架构模式
-
- 3.1.0 MVC、MVVM
- 3.1.1 链式编程
- 3.1.2 路由:接口控制app跳任意界面
-
3.2 持续集成
-
- 3.2.1 代码管理: CocoaPods
- 3.2.2 根据 debug / release 类型自动更改配置
-
3.3实用工具
-
- 3.3.1. 用户输入处理工具
- 3.3.2 图片压缩
- 3.3.3 提高开发效率的工具
-
3.4 封装SDK
-
- 3.4.1 自定义相机
-
-
IV、 渲染
-
- 4.1 常用动画
-
V、 解决方案汇总
-
- 5.1 布局
- 5.2 常用功能解决方案
-
- 5.2.1 蓝牙打印
- 5.2.2 本地化
-
VI 、 app上架指南
-
- 6.1 上架流程指南
- 6.2 ASO
-
see also
-
引言
欢迎大家来到#公众号:iOS逆向的《iOS进阶》专栏
本文提供了学习大纲,并且也可作为本专栏的学习指南。
文章中的蓝色标记均为传送门,请点击即可跳转至相关页面。
I 、 网络

1.1 通信
进程间通信方案:... local socket(针对扩展型和容器化应用场景提供高效通信机制)
1.2. IPC
Inter process Communication
Inter process Communication
1、获取路径:<>
2、文章:[()
3、目的:旨在自己在deb自带Rocketsuite以避免每次部署都从BigBoss源更新代码。
4、参考文章:[iOS AppStore Search optimize【 ASO项目使用的技术
II 、支付解决方案
2.0 支付相关的基础知识
支付流程 & 预授权& 银行卡验证&反洗钱
支付流程 & 预授权& 银行卡验证&反洗钱
2.1 消息推送后台语言播报(包括app处于杀死状态)
app处于后台/被杀死的状态仍可进行语言播报
该功能具有显著的效果,在iOS系统中实现消息推送退出登录后无法收到推送的情况下,请按照以下步骤操作:首先执行递归设置以优化配置参数;其次取消相关别名配置以解除多余的关联项。
2.2 收银app必备模块:收银台、电子签名
2.2.1计算器
该计算器能够精确处理输入的数学表达式(即MathStringExpression)。
案例:折扣计算器(完整demo源码)
2.2.2 电子签名
核心原理: 旋转特定的屏幕
核心原理:采用动态布局技术
只旋转自己想要旋转的屏幕(内含demo源码)
仅支持用户主动选择屏幕旋转(并附带完整源代码演示)
2.3、商户交易风控
判断目标经纬度是否在大陆
判定目标经纬度位置是否为境内
1、盗刷拒付风险
2、疑似欺诈、电诈、套现风险
3、赌博、异常大额、异常测试:
4、跨境风险



2.4 处理用户输入内容(金额/手机号码等)
中文占1,英文等能转ascii的占0.5
中文占1,英文等能转ascii的占0.5
索引
CFStringTransform 作为一个Powerful Tool for iOS Language Processing, it is equipped with the capability to efficiently manage and manipulate user input. Its classic applications span across various common use cases such as indexing. For more details, please refer to the original article at [insert link].
在iOS设备的登录界面中,“请在输入框中输入您的手机号”这一文本框字段会自动提取用户粘贴的内容中的手机号码作为验证信息
2.5 商品详情页
商品详情页
商品详情页面
1、原理文章:<>
2、应用场景:常见于商品详情页及需展示多幅图片的页面
3、核心原理
3.1)依据图片原始的比例进行缩放处理
3.2)高度根据内容自动调整以适应不同情况
2.6 反馈页面
iOS 系统会实时捕捉物理屏幕截取并自动生成相关图片,随后直接跳转至反馈页面展示(其中所包含的截取内容主要为系统的弹框视图,包括苹果 macOS 的果蝇式控件以及 iOS 的 UIAlertView)
2.7 微信支付
关注公众号:【iOS逆向 】进一步交流
2.8 封装银联接口协议
封装银联接口协议
2.9 OCR
iOS13版本支持证件与银行卡信息的自动读取;该系统可实现身份证正反面图像的精准识别;通过边缘检测技术实现清晰图像边界提取;提供自定义相机配置选项(附完整源代码)
<>
2.10 商户交易汇总表
在平台中使用tab滑块组件进行操作和查看不同层级的代理商数据
III、效率
- 提高前后台联调效率
提前根据约定好的接口,使用Charles进行模拟数据
- 重复写的代码自动生成:
根据 JSON 自动生成 Model 文件
基于DTO数据模型的生成工具]()
3.1 架构模式
- 代码组织的架构模式
MVC / MVVM (解耦和抽象)、组件化、路由
- 改变编写代码方式的架构
响应式编程、链式编程、单向数据流
3.1.0 MVC、MVVM
MVC思想
MVC思想
MVC思想
在iOS应用开发中采用MVVM模式时会遇到数据绑定的问题这一主题下深入探讨其具体实现途径
3.1.1 链式编程
开发富文本功能模块,并通过Block机制构建高效的链式编程模式
磨刀不误砍柴功:编写代替自己工作的自动化工具
3.1.2 路由:接口控制app跳任意界面

3.2 持续集成
- 自动化构建(重复做的事都应该自动化,以提高开发效率)
其中涵盖代码管理和版本控制(git / svn),以及编译流程的具体步骤;另外还包括证书和签名机制的应用、自动化测试方案的设计以及打包发布操作等基础工作。这些环节中还包含一些定制化的自动处理流程;例如会自动生成相应的源码文件,并根据所处理的对象是调试版本还是最终发布版本来动态配置相关参数。
3.2.1 代码管理: CocoaPods
[CocoaPods 使用手册:1、基础应用 2、高级用法:通过引入 podspec.json 和 tweak 来集成 CocoaAsyncSocket,并通过引入 pod lib 开发并打包iOS静态库。]
借助 pod lib 构建iOS静态库,并将其集成到项目中(相较于我自己搭建的模板更加便捷)。通过 iOS CocoaPods 私有库实现模块化设计。
了解项目中如何管理Xcode Build版本号自增的工作流程是开发者的一项重要技能
3.2.2 根据 debug / release 类型自动更改配置
3.3实用工具
3.3.1. 用户输入处理工具
索引
索引
从字符串中提取数字(手机号)
在iOS环境下用户的输入处理方案中,我们设计了一个模块用于从输入数据中识别手机号字段。具体应用场景为手机登录界面中的输入字段,在此过程中,系统会对粘贴的内容进行手机号信息的提取
3.3.2 图片压缩
解决压缩之后图片模糊的问题
有效应对图片在压缩过程中出现的模糊现象
3.3.3 提高开发效率的工具
根据 JSON 自动生成 Model 文件(数据模型)
根据 JSON 自动生成 Model 文件(数据模型)
封装富文本API,采用block实现链式编程
封装富文本API接口并采用Block机制完成链式调用
包装富文本API接口并采用Block机制完成链式调用
磨刀不误砍柴功:编写代替自己工作的自动化工具
iOS测试工作:通过GPX文件对经纬度信息进行调整(模拟移动设备的位置信息)
通过 LinkMap 和 mach-o 寻找优化点

3.4 封装SDK
3.4.1 自定义相机
拍身份证裁剪大小,截图截出所需大小
拍摄身份证并裁剪尺寸


IV、 渲染
4.1 常用动画
定点缩放弹窗
定点缩放弹窗


横向(水平方向)弹出菜单视图

V、 解决方案汇总
5.1 布局
在iOS开发中,当UITableView进行数据加载并调用reload方法时,默认情况下会使得cell中的控件无法获得焦点。对此问题的解决方法是通过UITableView的beginUpdates和endUpdates来实现对Cell高度的调整;
MASConstraint的安装与移除
MASConstraint的安装与移除
MASConstraint的配置与uninstallation
MASConstraint的配置与uninstallation
例子:入库单详情界面未审核状态时展示审核按钮,否则隐藏审核按钮
支持删除和添加
支持删除和添加
支持删除和添加
支持删除与添加

5.2 常用功能解决方案
5.2.1 蓝牙打印
蓝牙关闭及未授权的处理
蓝牙关闭及未授权的处理
含蓝牙关闭与无权限状态下操作流程
由于app中的蓝牙功能设计较为隐藏,导致应用上架时被平台拒绝。针对这一问题,提出以下具体措施或策略作为解决方案。
打印价格标签的模板及打印小票的模版、 实现自动连接最近使用的打印机

商品条码、品名、零售价、规格信息等
商品条码、品名、零售价、规格信息等
条码信息、产品名称、销售价格及详细规格
条码信息、产品名称、销售价格及详细规格

5.2.2 本地化
针对部分英文国际化未完全生效的问题,在该版本应用(iOS系统)中用于存储国际化英文字符串的.string文件长度存在限制。为此需要对逻辑进行调整以实现对这些国际化英文字符串的拆分与存储。
iOS平台下的国际化字符串参数配置顺序(适用场景:应用内多语言切换功能)
iOS APP 内部国际化切换
该文介绍了iOS平台上的TextViewHyperLink组件的文字超链接功能,在页面中会弹出窗口展示《用户协议及隐私政策》内容,并附带提供源代码示例(支持本地化功能)。
VI 、 app上架指南
6.1 上架流程指南
iOS应用商店发布前的准备工作与技巧要点(在不更新版本的情况下如何删除App Store中的非主语言ipa包);常见应用商店发布问题及解决方案(如上传ipa包时被平台截取或已发布app无法在AppStore中搜索到);应用商店发布后的后续事项(包括优化ASO等)
Xcode Build版本号自增的解决方案
Xcode Build版本号自增的解决方案
codesign
codesign
6.2 ASO
see also
我的博客即将到来地同步至腾讯云+社区平台,并诚挚地邀请各位读者一同加入。
更多iOS技术文章,请关注 “iOS逆向” 公众号,一起学习,一起进步。

