iOS 个人所得税 app 基础解析实践
前言:2019年 新个税实施在即,全国几乎所有在职员工都会下载“个人所得税”app来使用,并且 注册使用过程需要填写身份证号等相当私密重要的个人信息。
至今,各大app平台应用下载榜首仍然“无人能出其右”。
最近有翻阅到一些有趣的新闻,eg:360 查杀 “个人所得税”app 含有62种木马。。。随后大量人员无法注册、登录。。。有人被就业。。。
于是,引起了本人探索这个app的好奇心。。。
一. 用户评论:
“个人所得税”app,在App Store上当前评分2.7,夸好的当然是各种优秀,集中的中下评论主要集中于产品性能极差的方面
二.使用体验:
貌似原生,貌似跨平台的外观。整体布局并没有符合iOS 开发风范,UI尺寸 文字大小规格可以看出(但这可能是产品风格所致)
交互体验比较死板
发现一个严重bug,主页面点击右上角按钮后,无法再返回,一直是当前页面的死循环
三.获取ipa,拆包
自从iTune v12.7.0 开始已经不支持查看ipa了,我研究了两天,降级也好,技术网友给的安装什么插件都不行。

降级得先删除当前的iTunes,但是我无法修改iTunes的权限,强制修改一直提示iTunes很重要,系统需要什么的无法删除。
我在谷歌上搜到一个软件 iMazing,是可以拿到手机里的ipa,只能先使用这个方案。(如果越狱就是是无门槛,但是我不想越狱。。。)
里面关键指正内容如下:

是的,没错全是js,基本确定非原生,一个越狱手机的技术网友专门分享了透视图:

一个UIWebview 搞定。。。
四. 初级反编译
class-dump 查看头文件,原理基于OC 语言runtime,操作一番,没有找到有效头文件。。。

五. native app & hybird app
(1) native app 原生app
(2) Hybird app 混合在一起的app “混合模式app”:是指介于 Web App(套壳)、Native App(原生)这两者之间的 app ,
兼具“ Native App 良好用户交互体验的优势 ”和“ Web App 跨平台开发的优势 ”。
也就是说,Hybrid App 是运用既包含类似移动端浏览器打开网站的相关技术,又包含原生应用调取底层接口(摄像头、传感器等等)的相关技术开发出来的应用。
(3) 参考3链接里 相对比较中肯的介绍了混编成分占比类型应用 适用场景,优势劣势
对比来看,这个“个人所得税” 非原生代码部分占比在 80% - 100%,至少当前状态的应用是这样。
好处:省时省力,一套代码基本就够了。
坏处:兼容性差,功能体验不佳,安全性有局限。
文章原话是这样形容该类型app的:“但随着Native APP开发的成本逐年提高,预算有限情况下,选择这种方式做开发的公司也是有的。
当然,还有种情况是本来公司做APP只是为了交差,成本越低越好,这和十年前每个单位基本都必须有一个网站,结果诞生了无数奇葩网站的情况一样。”
六.总结
(1)“个人所得税”app迭代效率还是很高的,最近一个月内迭代5次。相信这个app会越来越稳定
(2) 超过千万用户级别应用开发的确是一个挑战。
(3)无论以哪种方式开发app 安全稳定 应该是第一位
(4)本人对后端的了解不够深,仅从小花瓶查不出很深刻的结果,今后会注重这方面的深入了解和学习。
(5)如何提高代码安全性,参考文章 《iOS 提升代码的安全性,可以做哪些措施???》
参考:
1. https://support.apple.com/en-us/HT208079
2. https://imazing.com/guides/how-to-manage-apps-without-itunes
3. https://blog.csdn.net/zx48822821/article/details/79974552
4.https://www.cnblogs.com/someonelikeyou/p/10318345.html
iOS 个人所得税 app 基础解析实践的更多相关文章
- App架构师实践指南一之App基础语法
第二章:App基础语法1.编程范式编程范型或编程范式(programming paradigm),是指从事软件工程的一类典型的编程风格.常见的编程范式有过程化(命令行)编程.事件驱动编程.面向对象编程 ...
- App架构师实践指南三之基础组件
App架构师实践指南三之基础组件 1.基础组件库随着时间的增长,代码量的逐渐积累,新旧项目之间有太多可以服用的代码.下面是整理的公共代码库. 2.关于加密密钥的保护以及网络传输安全是移动应用安全最关键 ...
- App架构师实践指南四之性能优化一
App架构师实践指南四之性能优化一 1.性能维度常见用来衡量App性能的维度如图9-1所示.其中,性能指标包括电池(电量/温度).流量(上行流量/下行流量等).CPU(平均/最大/最小).内存 ...
- APP测试入门篇之APP基础知识(001)
前言 最近两月比较多的事情混杂在一起,静不下心来写点东西,月初想发表一遍接口测试的总结,或者APP测试相关的内容,一晃就月底了,总结提炼一时半会也整不完.放几个早年总结内部培训PPT出来 ...
- [转载]iOS 10 UserNotifications 框架解析
活久见的重构 - iOS 10 UserNotifications 框架解析 TL;DR iOS 10 中以前杂乱的和通知相关的 API 都被统一了,现在开发者可以使用独立的 UserNotifica ...
- 【如何快速的开发一个完整的iOS直播app】(原理篇)
原文转自:袁峥Seemygo 感谢分享.自我学习 目录 [如何快速的开发一个完整的iOS直播app](原理篇) [如何快速的开发一个完整的iOS直播app](播放篇) [如何快速的开发一个完整的 ...
- iOS:app直播---原理篇
[如何快速的开发一个完整的iOS直播app](原理篇) 转载自简书@袁峥Seemygo:http://www.jianshu.com/p/7b2f1df74420 一.个人见解(直播难与易) 直播 ...
- 如何快速的开发一个完整的iOS直播app(原理篇)
目录 [如何快速的开发一个完整的iOS直播app](原理篇) [如何快速的开发一个完整的iOS直播app](播放篇) [如何快速的开发一个完整的iOS直播app](采集篇) 前言 大半年没写博客了,但 ...
- 【如何快速的开发一个简单的iOS直播app】(代码篇)
开篇([如何快速的开发一个完整的iOS直播app](原理篇)) 好久没写简书,因为好奇的我跑去学习直播了,今天就分享一下我的感慨. 目前为止直播还是比较热点的技术的,简书,git上有几篇阅读量和含金量 ...
随机推荐
- 《Programming with Objective-C》第五章 Customizing Existing Classes
1.分类里面只新增函数,不要新增变量:虽然新增是语法合法的,但是编译器并不会为你的property合成相应的成员变量.setter和getter Categories can be used to d ...
- VC++ Splash Window封装类CSplash
Splash.h 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950 ...
- php求数学对数
php的对数函数并不是很强大 有自然对数 有10的对数的函数,不过没有自定义底的对数函数,所以自己写了一个 <?php function xsqrt($x, $value) { $count = ...
- 一个网络设备的常见功能--连通性检查SSRF漏洞--被黑客利用当做扫描器
一.我们先来看一下很多网络设备都有的一个常见功能--连通性测试: 很多网络设备都具备与其他设备通信,联动的功能,例如网络设备联动安全设备,网络设备联动认证设备等等.此时都需要一个对端IP和对端端口号作 ...
- Excel表导出
前言 分别介绍两种导出Exce表格的方法和读取Excel表格数据方法. 1.在MVC下的表格导出. 2.基于NPOI的表格导出. 3.读取Excel表格数据. 第一种方法:在MVC下的表格导出. 首 ...
- react-native 学习(二)
上一节讲到了 react-native的开发环境的配置,,这一节我门具体讲讲怎么看样式,怎么调试 看样式的话 有一个 神奇 react-native-developer tools(个人推荐,可选择性 ...
- jquery页面滚动显示浮动菜单栏锚点定位效果
<!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content ...
- UVA12470—Tribonacci (类似斐波那契,简单题)
题目链接:https://vjudge.net/problem/UVA-12470 题目意思:我们都知道斐波那契数列F[i]=F[i-1]+F[i-2],现在我们要算这样的一个式子T[i]=T[i-1 ...
- IOS 简洁输入框的实现
我们在朋友圈,qq空间或微博的app看到这样的操作,点击回复,在视图的下面立即显示一个输入框.输入我们的文字后点击发送就可以.那么这个小小的输入框是怎么实现的呢 我也试着自己写了一个小小对话框,先看一 ...
- odex反编译dex异常 Cannot locate boot class path file /system/framework/core.odex
为了将ROM中system/app下的CertInstaller.odex反编译为CertInstaller.dex,输入命令: "java -jar baksmali.jar -x C ...