injectionIII iOS代码注入工具(上)
injectionIII iOS代码注入工具(上)
前言
如果之前用过injection的朋友一定会对其热重载的特性印象深刻,如今injection经过多次更新,现在以injectionIII之名上架到APP Store,安装和卸载与日常使用的应用程序相差无遗。
injectionIII支持swift和Objective-C,注入也十分简便,只需要短短几行代码即可:
//在applicationDidFinishLaunching中
///Swift
#if DEBUG
Bundle(path: "/Applications/InjectionIII.app/Contents/Resources/iOSInjection.bundle")?.load()
#endif
//Objective-C
#if DEBUG
NSBundle *injectionBundle = [NSBundle bundleWithPath:@"/Applications/InjectionIII.app/Contents/Resources/iOSInjection.bundle"];
[injectionBundle load];
#endif
唯一可惜的是,相关功能只支持对simulator使用,不支持真机(还有小声bb图标还是最初的那样一直没改)。
准备工作
injectionIII从APP Store获取下载之后,打开injectionIII和你的iOS项目,iOS添加代码,并在顶部菜单栏点击针头图标,弹出菜单点击‘Open Project’,选择你的项目根目录,准备工作就做好了。
Xcode中选定模拟器(再次强调不支持真机,不支持!),运行代码,运行完成之后注意Output是否有类似的输出,必须要有才能进行下一步骤。
热重载
在纯代码中凡是修改好了之后,直接cmd+s即可,另外Output中也会有输出。
当对应方法、类再次调用时就可以看到效果,然而有个很大的问题在于homeVC的ViewDidLoad
之类的在运行过程中逻辑上只可能调用一次的方法在此运行过程中无法检验修改效果。
对于storyboard,让修改生效的办法不是cmd+s,而是cmd+b,也就是build你的项目,不过我试了试xib就算是cmd+b也不能生效。
总结
其实还有很多细节的东西还没有在文章中说明,例如SwiftUI的热重载、App Tracing功能、支持与Vaccine搭配使用等,更多详细的东西请参考作者项目主页。
one more things
支持APPCode,用法和在Xcode一样,无需再装新的插件,不过第一次运行要先在Xcode中运行。
求打赏
injectionIII iOS代码注入工具(上)的更多相关文章
- IOS 代码管理工具
代码管理工具国内主要用的是SVN 国外主要是Git
- iPhone手机越狱-逆向砸壳-代码注入
iPhone手机越狱 逆向砸壳 代码注入 工具下载 操作越狱 安装待逆向应用(app) 使用OpenSSH连接手机 找到应用二进制文件地址 找到应用document沙盒地址 拷贝砸壳工具(dumpde ...
- apk反编译(4)Smali代码注入
转自 : http://blog.sina.com.cn/s/blog_5674d18801019i89.html 应用场景 Smali代码注入只能应对函数级别的移植,对于类级别的移植是无能为力的.具 ...
- ChaosTool,iOS添加垃圾代码工具,代码混淆工具,代码生成器,史上最好用的垃圾代码添加工具,自己开发的小工具
最近在H5游戏项目中需要添加垃圾代码作混淆,提高过审机率.手动添加太费时费力,在网上并没有找到合适的比较好的工具,就自己动手写了一个垃圾代码添加工具,命名为ChaosTool. 扣扣交流群:81171 ...
- iOS应用代码注入防护
在应用开发过程中,我们不仅仅需要完成正常的业务逻辑,考虑应用性能.代码健壮相关的问题,我们有时还需要考虑到应用安全的问题.那么应用安全的问题涉及到很多方面.比如防止静态分析的,代码混淆.逻辑混淆:防止 ...
- 【原】iOS动态性(三) Method Swizzling以及AOP编程:在运行时进行代码注入
概述 今天我们主要讨论iOS runtime中的一种黑色技术,称为Method Swizzling.字面上理解Method Swizzling可能比较晦涩难懂,毕竟不是中文,不过你可以理解为“移花接木 ...
- sublime上安装c/c++代码分析工具 sublime Linter - cppcheck
项目官方说明 sublime Linter - cppcheck 理解下sublime Linter - cppcheck, 它是插件的插件,sublime的插件sublimeLinter的插件.网络 ...
- Xcode之外的文档浏览工具--Dash (在iOS代码库中浏览本帖)
链接地址:http://www.cocoachina.com/bbs/read.php?tid=273479 Xcode之外的文档浏览工具--Dash (在iOS代码库中浏览本帖) ...
- IOS开发创建开发证书及发布App应用(八)——使用Application Loader工具上传应用
8.使用Application Loader工具上传应用 继续第七步在iTunes所创建的应用,打开应用,如下图 点击详情按钮进去之后,单击右上角Ready to Upload Binary按钮,如下 ...
- Eclipse插件(导出UML图,打开文件资源管理器插件,静态代码分析工具PMD,在eclipse上安装插件)
目录 能够导出UML图的Eclipse插件 打开文件资源管理器插件 Java静态代码分析工具PMD 如何在eclipse上安装插件 JProfiler性能分析工具 从更新站点安装EclEmma 能够导 ...
随机推荐
- win10 uwp 选择文本转语音的机器人
在 UWP 里,可以非常方便将某个文本转换为音频语音,转换时,将会根据输入的内容以及本机所安装的语言库选择一位机器人帮忙将输入的文本转换为语音.本文来告诉大家如何切换文本转语音的机器人,例如从默认的女 ...
- OLAP系列之分析型数据库clickhouse权限控制(六)
一.clickhouse权限管理 users.xml默认配置文件: <?xml version="1.0"?> <clickhouse> <profi ...
- netcore依赖注入通过反射简化
aspnetcore里面用到许多的service,好多业务代码都要通过Service.AddScoped.Singleton.Transient等注入进去,类太多了写起来和管理起来都很麻烦,所以借鉴了 ...
- 04.Java 流程控制
1.用户交互 Scanner Scanner 对象:获取用户的输入 基本语法:Scanner s = new Scanner(System.in); 通过 Scanner 类的 next() 和 ne ...
- linux系统共享文件夹到局域网
python3 -m http.server https://blog.csdn.net/a772304419/article/details/113338103 Debian下配置Samba服务器 ...
- 【WebForms王者归来】在 ASP.NET Core 中运行 WebForms 业务代码,99%相似度!
1. 先说结论 我们为 ASP.NET Core 带来了全新的 WebForms 开发模式,可以让 20 年前的 WebForms 业务代码在最新的 ASP.NET Core 框架中运行,代码相似度9 ...
- 地理数据可视化的神奇组合:Python和Geopandas
本文分享自华为云社区<Python与Geopandas:地理数据可视化与分析指南>,作者:柠檬味拥抱. 地理数据可视化在许多领域都是至关重要的,无论是研究地理空间分布.城市规划.环境保护还 ...
- saltstack使用
saltstack中salt-key的用法 介绍: saltstack中master和minion是依靠证书来进行加密通信的.在saltstack中salt-key命令是用来管理证书的 用法: sal ...
- 提升WordPress网站加载速度的8个小技巧
提升WordPress网站加载速度是至关重要的,它不仅可以提高用户体验,还有助于SEO排名.以下是提升WordPress网站加载速度的8个小技巧,希望能帮助到大家. 优化图片: 使用适当大小和格式的图 ...
- GROUP BY clause and contains nonaggregated 报错处理
1055 - Expression #16 of SELECT list is not in GROUP BY clause and contains nonaggregated column 报错处 ...