Xcode UI界面调试神器-injectionIII

作者: iLeooooo | 来源:发表于2018-08-14 17:47 被阅读497次

不用重新跑就可以更改界面元素属性的神器

注意:只能在模拟器上使用,因为这是在App Store下载的App,要加载bundle包。如果在真机上使用的话,是找不到bundle包的。

第一步:在Mac App Store下载injectionIII(免费),打开。

第二步:打开Xcode项目,选择项目根目录(就是有.xcodeprojxcworkspace的文件夹)

第三步:在项目的AppDelegate加入代码

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
#ifdef DEBUG
    [[NSBundle bundleWithPath:@"/Applications/InjectionIII.app/Contents/Resources/iOSInjection.bundle"] load];
#endif
}

第四步:command + R 运行项目

在要修改的界面添加代码,修改完成之后command + S 保存一下

-(void)injected{
    NSLog(@"I've been injected: %@", self);
    //此处的代码想怎么写就怎么写,完事了按下Ctrl+S保存一下就能再模拟器里面看到刚刚改的代码了,是不是很神奇?
    self.view.backgroundColor = [UIColor whiteColor];
}

大功告成!!!

没有看到效果的问题的总结

1. 先看下有没有保存成功,也就是针筒的颜色从绿色变成红色
2. 确认上面那句话有没有打印,也就是说有没有真的运行这个工具
3. 如果修改的是cell/item上面的内容,需要上下滚动才能看到效果
4. 如果修改的是一个普通页面的内容,最好是退出这个页面,再进入这个页面
5. 确认Xcode的版本9.3及以上
6. 不过这只是不run XCode情况下,预览UI界面效果,最后要想项目重运行达到效果,还需要把注入的代码写粘贴复制在真实需要改变的地方。

相关文章

网友评论

  • NeroXie:根本跑不起来
  • seasonZhu:Injection connected, watching /Users/season/Desktop/Test/**
    *** Compiling /Users/season/Desktop/Test/Test/ViewController.swift ***
    Loading .dylib - Ignore any duplicate class warning...
    objc[91024]: Class _TtC4Test14ViewController is implemented in both /Users/season/Library/Developer/CoreSimulator/Devices/944B843C-25CB-4D27-A0D4-94399C7649DD/data/Containers/Bundle/Application/CEA3BC0E-7785-489A-9E11-5396FDA96224/Test.app/Test (0x107450108) and /Users/season/Library/Containers/com.johnholdsworth.InjectionIII/Data/eval101.dylib (0x122b5d1a8). One of the two will be used. Which one is undefined.

    提示了这样一个错误 comand+S没有效果
    大哥这个怎么办呀
    iLeooooo:解决方案 https://www.jianshu.com/p/6b4ad3634081

本文标题:Xcode UI界面调试神器-injectionIII

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