iOS Xcode 热加载

用了Flutter之后感觉最方便的就是热加载,修改后点击热加载后马上就可以看效果,为什么Xcode反而不能,如果页面层级很深重新启动加上页面跳转很浪费时间。

不过搜索一下幸好还有injectionIII iOS代码注入工具,Apps Store搜索,下载安装好之后,OpenProject选择项目的根目录就可以了。


截屏2021-05-26 16.11.41.png
didFinishLaunchingWithOptions 加入如下代码:
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
    // Override point for customization after application launch.
    
    //Objective-C
    #if DEBUG
        NSBundle *injectionBundle = [NSBundle bundleWithPath:@"/Applications/InjectionIII.app/Contents/Resources/iOSInjection.bundle"];
        [injectionBundle load];
    #endif

    
    return YES;
}

在需要调用的ViewController中加入如下代码

-(void)injected{
    NSLog(@"I've been injected: %@", self);
    [self viewDidLoad];
}
注意

我在桌面上新建一个测试项目,修改后cmd+s并没有什么改变,还有如下信息

💉 InjectionIII connected /Users/Destiny/Desktop/HotLoad/HotLoad.xcodeproj
💉 Watching files under /Users/Destiny/Desktop/HotLoad
💉 💉 ⚠️ Your project file seems to be in the Desktop or Documents folder and may prevent InjectionIII working as it has special permissions.

意思就是您的项目文件似乎位于Desktop或Documents文件夹中,并且由于具有特殊权限,因此可能阻止InjectionIII工作。

所以把项目放到其他目录就可以了,而且修改后也不需要cmd+s运行,修改后马上就可以看到效果,还是很强大的。

缺点

不能真机调试,不过先在模拟器调试好后在用真机也算方便。

寄语

真希望苹果在Xcode中加入热加载功能,好歹人家Flutter都有了。

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容