前言: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 基础解析实践的更多相关文章

  1. App架构师实践指南一之App基础语法

    第二章:App基础语法1.编程范式编程范型或编程范式(programming paradigm),是指从事软件工程的一类典型的编程风格.常见的编程范式有过程化(命令行)编程.事件驱动编程.面向对象编程 ...

  2. App架构师实践指南三之基础组件

    App架构师实践指南三之基础组件 1.基础组件库随着时间的增长,代码量的逐渐积累,新旧项目之间有太多可以服用的代码.下面是整理的公共代码库. 2.关于加密密钥的保护以及网络传输安全是移动应用安全最关键 ...

  3. App架构师实践指南四之性能优化一

    App架构师实践指南四之性能优化一     1.性能维度常见用来衡量App性能的维度如图9-1所示.其中,性能指标包括电池(电量/温度).流量(上行流量/下行流量等).CPU(平均/最大/最小).内存 ...

  4. APP测试入门篇之APP基础知识(001)

    前言        最近两月比较多的事情混杂在一起,静不下心来写点东西,月初想发表一遍接口测试的总结,或者APP测试相关的内容,一晃就月底了,总结提炼一时半会也整不完.放几个早年总结内部培训PPT出来 ...

  5. [转载]iOS 10 UserNotifications 框架解析

    活久见的重构 - iOS 10 UserNotifications 框架解析 TL;DR iOS 10 中以前杂乱的和通知相关的 API 都被统一了,现在开发者可以使用独立的 UserNotifica ...

  6. 【如何快速的开发一个完整的iOS直播app】(原理篇)

    原文转自:袁峥Seemygo    感谢分享.自我学习 目录 [如何快速的开发一个完整的iOS直播app](原理篇) [如何快速的开发一个完整的iOS直播app](播放篇) [如何快速的开发一个完整的 ...

  7. iOS:app直播---原理篇

    [如何快速的开发一个完整的iOS直播app](原理篇) 转载自简书@袁峥Seemygo:http://www.jianshu.com/p/7b2f1df74420   一.个人见解(直播难与易) 直播 ...

  8. 如何快速的开发一个完整的iOS直播app(原理篇)

    目录 [如何快速的开发一个完整的iOS直播app](原理篇) [如何快速的开发一个完整的iOS直播app](播放篇) [如何快速的开发一个完整的iOS直播app](采集篇) 前言 大半年没写博客了,但 ...

  9. 【如何快速的开发一个简单的iOS直播app】(代码篇)

    开篇([如何快速的开发一个完整的iOS直播app](原理篇)) 好久没写简书,因为好奇的我跑去学习直播了,今天就分享一下我的感慨. 目前为止直播还是比较热点的技术的,简书,git上有几篇阅读量和含金量 ...

随机推荐

  1. 安装顺序----------SQL server 2008 r2;VS2008;VS2010;

    [1]一般先安装了VS2008 再安装SQL server 2008 r2会报错:安装sql server 2008 报错“检查 Microsoft Visual Studio 2008 的早期版本” ...

  2. VUE学习总结

    VUE学习总结 文档:https://cn.vuejs.org/v2/guide/ Webstorm的一些常用快捷键:1. ctrl + shift + n: 打开工程中的文件,目的是打开当前工程下任 ...

  3. 160510、jQuery给input绑定回车事件

    <script type="text/javascript" src="Scripts/jquery-1.6.2.js"></script&g ...

  4. 使用Servlet3.0新特性asyncSupported=true时抛异常java.lang.IllegalStateException: Not supported

    最近在运用Servlet3.0新特性:异步处理功能的时候出现以下了2个问题: 运行时会抛出以下两种异常: 一月 19, 2014 3:07:07 下午 org.apache.catalina.core ...

  5. WingIDE6.0神秘代码

    python2: import string import random import sha BASE16 = '0123456789ABCDEF' BASE30 = '123456789ABCDE ...

  6. synchronized和volatile的使用方法以及区别

    先看看下面的例子: public class ThreadTest { public static void main(String[] args) { final Counter counter = ...

  7. ios开发 更改状态栏

    设置statusBar 简单来说,就是设置显示电池电量.时间.网络部分标示的颜色, 这里只能设置两种颜色: 默认的黑色(UIStatusBarStyleDefault) 白色(UIStatusBarS ...

  8. 对于应用需要记录某个方法耗时的场景,必须使用clock_gettime传入CLOCK_MONOTONIC参数,该参数获得的是自系统开机起单调递增的纳秒级别精度时钟,相比gettimeofday精度提高不少,并且不受NTP等外部服务影响,能准确更准确来统计耗时(java中对应的是System.nanoTime),也就是说所有使用gettimeofday来统计耗时(java中是System.curre

    对于应用需要记录某个方法耗时的场景,必须使用clock_gettime传入CLOCK_MONOTONIC参数,该参数获得的是自系统开机起单调递增的纳秒级别精度时钟,相比gettimeofday精度提高 ...

  9. User Login Client Identification

    w用HTTP认证首部注册用户名. HTTP The Definitive Guide Rather than passively trying to guess the identity of a u ...

  10. 学习IPFS

    注:以下所有操作均在CentOS 6.8 x86_64位系统下完成. IPFS(InterPlanetary File System)是一个点对点的分布式超媒体分发协议,被认为是最有可能取代HTTP的 ...