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上有几篇阅读量和含金量 ...
随机推荐
- Mac 安装Jupyter notebook
python:mac下自带Python 2.7.10 1.先升级了pip安装工具:sudo python -m pip install --upgrade --force pip 2.安装setupt ...
- SQL语句,标准表达式中数据类型不匹配
id索引进行数据查询时提示错误! 标准表达式中数据类型不匹配. 两边的单引号去掉就好了,否则是在使用文本型. 改为:去掉两个单引号 ok,成功!
- nib文件的默认搜索规则
if you do not specify a nib name, and do not override the loadView method in your custom subclass, t ...
- 如何隐藏js
前端好像一直会遇到js容易被查看的问题,针对这种情况,如何隐藏js呢? 突发奇想,想到一个办法,如果说一段js只需要执行一次的话 可以尝试在所有js加载操作完毕后把它去掉.看代码 <!DOCTY ...
- Python学习笔记14—模块
在python中所有的模块都被加入到了sys.path中,用下面的方法可以看见模块的位置. >>> import sys >>> import pprint > ...
- soundpool播放声音
一般大家使用的是MediaPlayer来播放音频,它的创建和销毁都是非常消耗资源的,如果我们的需求是播放一些短促而且频繁播放的音频的话MediaPlayer就有些不合适了,我们来讲讲SoundPool ...
- 高级service之ipc ADIL用法
感谢 如果你还没有看过前面一篇文章,建议先去阅读一下 Android Service完全解析,关于服务你所需知道的一切(上) ,因为本篇文章中涉及到的代码是在上篇文章的基础上进行修改的. 在上篇文章中 ...
- JZOJ.5315【NOIP2017模拟8.19】小串串
Description
- Angular2+学习第3篇 基本知识-组件
一.插值表达式 基本用法与ng1一样. 可以使用 Angular 内置的 json 管道,来显示对象信息,管道用来格式化数据 import { Component } from '@angular/c ...
- 170324、Spring 处理器和Resource
1.Spring 框架允许开发者使用两种后处理器扩展 IoC 容器,这两种后处理器扩展 IoC 容器,这两种后处理器可以后处理 IoC 容器本身,或对容器中所有的 Bean 进行后处理.IoC 容器还 ...