前言: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. sqlalchemy 判断字段是否存在

    1.low方法: (1)person_obj=session.query(Person).filter(Person.name=='jack') print (person_obj.count()) ...

  2. JAVA增删改查XML文件

    最近总是需要进行xml的相关操作. 不免的要进行xml的读取修改等,于是上网搜索,加上自己的小改动,整合了下xml的常用操作. 读取XML配置文件 首先我们需要通过DocumentBuilderFac ...

  3. iOS开发之-- 抢购、距活动结束,剩余时间倒计时

    因为没有时间去着重研究过这个东西,只是知道大体上的逻辑,就是两个时间才行比对,具体的实现也是参考别人的写的方法, 只是做个记录,有时间会好好看看这个东西,具体代码如下: /** * 倒计时 * * @ ...

  4. Android下在onCreate中获取控件的宽度和高度(通过回调)

    有时候需要在onCreate方法中知道某个View组件的宽度和高度等信息, 而直接调用View组件的getWidth().getHeight().getMeasuredWidth().getMeasu ...

  5. PHPStorm自动压缩YUI Compressor配置

    File---Settings...---Tools---File Watchers 点击右边加号,添加: 在弹出窗中 主要是Program的内容,点击后面的省略点,默认目录下回出现yuicompre ...

  6. highcharts配置的效果如下

    配置如下: function init(categoryArray,seriesData,month_first_day,month_last_day,currDay){ var chart = Hi ...

  7. 数组和对象常用API

    数组API: 1. forEach 遍历所有元素 var arr = [1,2,3] arr.forEach(function(item,index){ // 遍历数组的所有元素 console.lo ...

  8. onbeforeunload 适用DOM 0级,不适用 DOM 2级

    你可以在控制台试下: window.addEventListener("beforeunload", function () { return 'ss'; }); 我这里 chro ...

  9. jQuery Mobile 总结

    转载  孟祥月 博客 http://blog.cshttp://blog.csdn.net/mengxiangyue/article/category/1313478/2dn.http://blog. ...

  10. 使用RMySQL连接MySQL数据库(R-3.4.3)

    1.安装DBI和RMySQL包(安装RMySQL时会依赖安装DBI) install.packages("RMySQL") 2.编写R脚本test.R # 使用RMySQL操作数据 ...