iOS实时编译

iOS教你如何像RN一样实时编译

一、先看效果图

最终效果: 代码在保存之后,立马在模拟器上看到修改后的效果, 避免Command+R重新编译耗费时间的问题; 如果APP页面层级太深的话,传统调试要一步步点进到指定页面,使用该方案直接就能看到效果,所见即所得,👏👏👏


修改lab的文字的演示 

二、背景

每次都被我们项目的编译速度整的快没脾气了,一直想着优化项目的编译速度。 想想之前做的RN项目的热部署效果真的很爽,不爽之余想到:他用个杂交品种能热部署,而我用苹果亲儿子没道理不行啊!能不能搞个runtime之类的跟新啊。 人有多大胆,地有多大产;不怕办不到,就怕想不到。终于找到了这个成吨减少工作量的方案。

超级简单,只有三步: 1、一个工具 2、选定项目目录 3、把一个文件放到项目中

无需其他任何配置,不对项目结构造成任何侵害

三、一共三个非常简单的步骤,按操作即可

1、工具下载 InjectionIII

InjectionIII 是我们需要用到个一个工具,不要因为要用一个工具而厌烦这个方案,它很简单。 它是免费的,app store 搜索:InjectionIII,Icon是 一个针筒。 也是开源的, 
GitHub链接: github.com/johnno1962/… 
App Store链接: https://itunes.apple.com/cn/app/injectioniii/id1380446739?mt=12

2、配置路径

打开InjectionIII工具,选择Open Project,选择你的代码所在的路径,然后点击Select Project Directory保存。

注意:InjectionIII 的File Watcher选项要时刻保持选中状态。

3、导入配置文件

这步有一个简单的配置文件,直接 GitHub下载 导入项目即可。 如果你比较反感下载文件也可以自己处理: 1.设置AppDelegate.m 打开你的源码,在AppDelegate.m的didFinishLaunchingWithOptions方法添加一行代码:

#if DEBUG
// iOS
[[NSBundle bundleWithPath:@"/Applications/InjectionIII.app/Contents/Resources/iOSInjection10.bundle"] load];
// tvOS
//[[NSBundle bundleWithPath:@"/Applications/InjectionIII.app/Contents/Resources/tvOSInjection.bundle"] load];
// macOS
//[[NSBundle bundleWithPath:@"/Applications/InjectionIII.app/Contents/Resources/macOSInjection.bundle"] load];
#endif

如果你没有使用配置文件的话继续操作下面一步

2.设置ViewController 在需要修改界面的ViewController添加方法- (void)injected,或者给ViewController类扩展添加方法- (void)injected。 

- (void)injected
{    
[self viewDidLoad];
}

至此结束了

4、启动项目,修改验证

在Xcode Command+R运行项目 ,看到Injection connected 提示即表示配置成功。

image.png

在需要修改的页面,修改控件UI,然后Command+S保存一下代码,立刻就在模拟器上显示修改的信息了。

 

5、每个VC要使用的话,还需要去写injected,有点烦人,但是我们有方案

用runtime 给每个VC加个方法class_addMethod

这个就是我上面提供的配置文件了,可以直接导入项目使用即可

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Ijkplayer 是一款适用于 Android 和 iOS 平台的开源播放器,支持常见的音视频格式和协议。本文将介绍如何在 iOS 平台编译 ijkplayer。 ### 1. 安装 Homebrew Homebrew 是 macOS 上的包管理器,可以方便地安装和管理软件。如果您已经安装了 Homebrew,可以跳过此步骤。 在终端中输入以下命令安装 Homebrew: ```bash /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)" ``` ### 2. 安装编译工具 在终端中输入以下命令安装编译工具: ```bash brew install autoconf automake libtool nasm make cmake pkg-config ``` ### 3. 克隆 ijkplayer 代码 在终端中进入您的工作目录并克隆 ijkplayer 代码: ```bash cd your-work-directory git clone https://github.com/Bilibili/ijkplayer.git ``` ### 4. 编译 ijkplayer 在终端中进入 ijkplayer 目录: ```bash cd ijkplayer ``` 执行 init-ios.sh 脚本,初始化编译环境: ```bash ./init-ios.sh ``` 执行 compile-ffmpeg.sh 脚本,编译 FFmpeg: ```bash cd ios ./compile-ffmpeg.sh clean ./compile-ffmpeg.sh all ``` 执行 compile-ijk.sh 脚本,编译 ijkplayer: ```bash ./compile-ijk.sh clean ./compile-ijk.sh all ``` 编译完成后,可以在 ios 目录下找到编译出的 ijkplayer.framework 文件。 ### 5. 使用 ijkplayer 将 ijkplayer.framework 文件拖入您的工程中,并在需要使用的地方引入头文件: ```swift import IJKMediaFramework ``` 创建 IJKFFMoviePlayerController 对象,并设置相关参数: ```swift let player = IJKFFMoviePlayerController(contentURL: url, with: options) player?.view.frame = self.view.bounds self.view.addSubview(player!.view) ``` 其中,url 是视频地址,options 是 IJKFFOptions 对象,可以设置相关参数,例如: ```swift let options = IJKFFOptions.byDefault() options?.setPlayerOptionIntValue(1, forKey: "videotoolbox") ``` 最后,调用 prepareToPlay 方法准备播放: ```swift player?.prepareToPlay() ``` 至此,您已经成功编译和使用了 ijkplayer。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值