美文网首页iOS进阶+实战
通过MachO分析App技术栈

通过MachO分析App技术栈

作者: flexih | 来源:发表于2020-03-08 16:05 被阅读0次

    标题里的技术栈特指App里Swift/React Native/Flutter/Weex的应用情况。

    实现

    1. Swift
      dyld libs里是否包含libswiftCore.dylib

    2. React Native
      是否有包含RCTView类

    3. Flutter
      dyld libs里是否包含Flutter.framework

    4. Weex
      是否有包含WXSDKInstance类

    dyld libs指类型为LC_LOAD_DYLIB的load command。

    在实现的时候,有两点需要注意:

    • 需要对binary,binary引用的dyld Framework,以及dyld Framework引用的dyld Framework,进行1-4.
    • dyld Framework下的binary,在获取class list的时候需要通过Symbol Table获得类名。

    数据

    基于 SnakeKit ,使用以上方法分析中国区App Store 免费榜单应用,得出以下数据。


    iOS中国区Swift/React Native/Flutter/Weex应用现状

    App Swift React Native Flutter Weex Version
    1. 钉钉 5.0.5
    2. 腾讯会议 1.3.0
    3. 剪映 2.7.1
    4. TestFlight 2.6.0
    5. 微视 6.6.0
    6. 快手极速版 2.1.3
    7. 抖音 9.9.0
    8. 企业微信 3.0.13
    9. 腾讯视频 8.0.0
    10. 拼多多 5.3.0
    11. 微信 7.0.11
    12. QQ 8.2.9
    13. 快手 7.1.5
    14. 旅行世界 1.2.0
    15. 番茄小说 2.7.5
    16. 支付宝 10.1.87
    17. 手机淘宝 9.5.0
    18. 学习强国 2.9.2
    19. 百度 11.19.0
    20. 韩剧TV-追剧大本营 4.6.8
    21. 哔哩哔哩 5.54.1
    22. 京东 8.5.2
    23. 小红书 6.36.1
    24. 爱奇艺 11.2.5
    25. 闲鱼 6.6.50
    26. 优酷 8.5.4
    27. WPS Office 10.0.3
    28. 网易云音乐 7.0.20
    29. 腾讯课堂 4.8.5
    30. 淘宝直播 1.6.1
    31. 交管12123 2.4.4
    32. QQ浏览器 10.1.0
    33. 西瓜视频 4.3.0
    34. 百度网盘 10.0.91
    35. 美图秀秀 8.7.70
    36. 喜马拉雅 6.6.54
    37. 酷狗音乐 10.0.4
    38. 好省 2.2.0
    39. 七猫小说 3.0
    40. QQ音乐 9.8.5
    41. 京东金融 5.3.50
    42. Keep 6.36.0
    43. 微博 10.3.0
    44. BOSS直聘 7.200
    45. UC浏览器 12.8.6.1274
    46. 人人视频 4.3.6
    47. 58同城 9.6.1
    48. 全民K歌 6.19.8
    49. 轻颜相机 2.9.1
    50. 网上国网 2.0.2
    51. 皖事通 1.6.11
    52. 安居客 12.26.4
    53. 淘宝特价版 3.14.1
    54. 今日头条 7.6.1
    55. 高德地图 10.28.0
    56. 芒果TV 6.5.6
    57. 菜鸟裹裹 5.9.0
    58. 得物(毒) 4.33.5
    59. 贝壳找房 2.27.1
    60. 美团 10.7.401
    61. 第一弹 2.36.5
    62. PP体育 5.20.2
    63. 知乎 6.31.2
    64. 手机天猫 9.5.1
    65. Zoom 4.6.7
    66. QQ邮箱 5.7.4
    67. WiFi万能钥匙 5.8.3
    68. 中国建设银行 4.3.2.001
    69. 作业帮 12.7.4
    70. 农行掌上银行 4.2.0
    71. 团油 5.2.2
    72. 美团外卖 7.31.1
    73. 虎牙直播 7.10.0
    74. 中国工商银行 5.1.0.1.1
    75. 搜狗输入法 10.5.0
    76. 饿了么 8.30.2
    77. 扫描全能王 5.17.0
    78. 流利说·英语 7.14.0
    79. 百度贴吧 11.2.1
    80. 智联招聘 7.9.47
    81. 搜狐视频 7.9.2
    82. 中国移动 6.0
    83. 人民智云 1.4.2
    84. 腾讯新闻 6.0.41
    85. 苏宁易购 8.5.0
    86. 酷狗铃声 2.4.0
    87. 一甜相机 2.1.9
    88. 下厨房 7.3.1
    89. 一直播 3.2.4
    90. TT语音 5.0.9
    91. 阿里巴巴 8.20.5
    92. 我的常州 1.3.5
    93. 刷宝短视频 2.0
    94. 比心陪练 4.8.0
    97. 中国银行手机银行 6.5.0
    114. 招商银行 8.1.5
    151. 百度地图 10.23.0
    170. 星巴克中国 7.10.1
    206. 滴滴出行 5.4.4
    353. 网易新闻 65.1

    汇总

    应用总数 Swift React Native Flutter Weex ObjC 时间
    100 26 23 13 14 41 2020.03.08
    1. ObjC指应用没有使用Swift/React Native/Flutter/Weex
    2. 以上均指iPhone应用
    3. 榜单来自 中国 App Store 免费榜 - iPhone - 2020年3月8日
    4. 此列表仅用于统计

    结论

    1. 中国区免费榜单前100名的iPhone应用使用Swift的不到30%。
    2. React Native是使用最多的跨端方案,占用率不到30%。
    3. 极速版和原版的技术栈不同,可能是不同的开发人员在维护。
    4. 一些应用使用了React Native/Flutter/Weex之外的跨端方案。
    5. .....

    Github

    SnakeList

    相关文章

      网友评论

        本文标题:通过MachO分析App技术栈

        本文链接:https://www.haomeiwen.com/subject/ulnddhtx.html