injection plugin for xcode【转】



原文地址: http://www.cocoachina.com/applenews/devnews/2014/0530/8623.html

injection plugin for xcode

发布于:2014-05-30 14:05阅读数:218

Injection Plugin For Xcode 是 Xcode 上的一个插件。利用它可以修改应用代码,实时在模拟器或实机上看到效果而不需要重启应用。安装后,重启Xcode,会发现在 Product 菜单下多了两个选项:

转自Nonomori的博客

 
Injection Plugin For Xcode 是 Xcode 上的一个插件。利用它可以修改应用代码,实时在模拟器或实机上看到效果而不需要重启应用。
 
安装
点此下载 Injection Plugin for Xcode。安装后,重启Xcode,会发现在 Product 菜单下多了两个选项:
点击 Product > 你的工程名 > Patch Project for Injection 选项, 之后插件会在 Prefix.pch 和 main.m 中插入两段代码。这不会影响程序原有代码,如果要还原,随时可以通过点击 Revert Injection’s Changes 选项来还原。
基本使用
我们做一个很简单的应用,其有一个 UIButton 和一个 UILabel,当点击 button 后,label 显示一段文本,ViewController 的代码如下:
     
     
  1. @interface ViewController () 
  2. @property (weak, nonatomic) IBOutlet UILabel *label; 
  3. @end 
  4.  
  5. @implementation ViewController 
  6.  
  7. - (IBAction)buttonTouched:(id)sender 
  8.     self.label.text = @"阿布上班不为了钱"
  9. @end 
运行后,点击按钮,效果如图所示:
之后我们修改代码,将赋给 label 的字符串改为:
     
     
  1. self.label.text = @"阿布钱多到花不完"
但区别于一般的使用 CMD+R 来重新编译并运行程序,这次我们使用 control+= 这个快捷键来注入。你会发现代码上方出现一个进度条:
 
注入完成后,修改的类的代码就生效了,点击模拟器中应用的按钮试试。
 
实时参数调整
Injection Plugin 还提供了5个变量和5个颜色,分别存在插件提供的全局数组变量 INParameters 和 INColors 中。我们可以在程序使用这两个数组变量,并可以在程序运行过程中实时修改。
我们建立个新工程,这一次,我们通过修改插件提供的一个颜色参数,实时修改应用中 View 的背景色。代码如下:
     
     
  1. @implementation ViewController 
  2.  
  3. - (void)viewDidLoad 
  4.     [super viewDidLoad]; 
  5.     [NSTimer scheduledTimerWithTimeInterval:0.1 
  6.                                      target:self 
  7.                                    selector:@selector(changeColor) 
  8.                                    userInfo:nil 
  9.                                     repeats:YES]; 
  10.  
  11. - (void)changeColor 
  12.     self.view.backgroundColor = INColors[0]; 
  13. @end 
运行程序,之后点击 Product > 你的工程名 > Tunable App Parameters 选项。
 
点击第一个颜色,试着调整颜色,看看模拟器发生了什么。
真机调试
真机调试涉及到证书问题,需要告诉 bundle project 正确的证书。可以通过在工程文件中添加以下 RunScript 实现:
     
     
  1. echo "$CODESIGNING_FOLDER_PATH" >/tmp/"$USER.ident" && echo "$CODE_SIGN_IDENTITY" >>/tmp/"$USER.ident" && exit; 
具体操作如下:
之后就可以正确在真机上使用了。如果依然出现证书错误,尝试删除工程文件夹里的 iOSInjectionProject 目录。
 
最后,例如 storyboard injection 这些 Xcode 5 上已经失效的功能就不介绍了。如果想要了解更多,请访问 Injection Plugin for Xcode 的 Github 页面
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值