工欲善其事,必先利其器(长期更新)
在我为期不长的iOS开发过程中,在浏览众多论坛和博客时,发现几乎处处都能发现关于辅助开发的工具——Mac应用和XCode插件。
今天就来提笔写一写,我所使用的辅助开发工具。
Mac应用篇
Dash——官方文档查看工具。
72228953-B693-4AC3-AF6B-C461A9A6F689.png 74E494F8-5DBF-407F-98A4-2EEF3CAFBC0F.png利用Dash可以便捷的下载和查看苹果所有的官方文档(iOS7,OC,Swift等)。
97AA8548-153E-46B0-B9E3-D526E44DCF59.png DE80B207-9781-442F-BF30-5EF85F1E9CD9.png B4EE8D5A-F197-4916-A011-7EC4C39749A3.png在Dash中也可下载其他语言的的官方文档,甚至可以下载Cocoapods里面支持的各类XCode插件的相关文档,以及在里面可以实时/离线的访问StackOverflow。
1FD055A9-1962-435E-BDCE-A52D17B5BD54.png除此之外,它还能被集成进XCode,作为XCode的插件使用。
进入下载页面,点击上图中的1,再点击2,即可进入github中下载Dash插件然后进行安装。
使用方法:
1.gif优点:便捷下载各类文档,可合并到XCode中使用。(并不仅限于iOS开发)
缺点:免费使用情况下,每一次切换文档会有8秒的延时,并且应用必须处于最上层,才会计时。
Reveal——UI界面调试工具
C33349DB-7839-4280-B08D-6C281DA30723.png使用Reveal,可以在应用运行时查看和修改UI界面,清楚的了解当前界面上UI的层级关系。
使用展示:
111.gif安装Reveal后,我使用的是不修改Xcode工程就加载使用Reveal的方法。
- 在终端中新建一个.lldbinit文件,位置是~/.lldbinit,这是一个启动LLDB时都会调用的文件。(命令是:vim ~./lldbinit)
在.lldbinit文件中键入如下内容
command alias reveal_load_sim expr (void*)dlopen("/Applications/Reveal.app/Contents/SharedSupport/iOS-Libraries/libReveal.dylib", 0x2);
command alias reveal_load_dev expr (void*)dlopen([(NSString*)[(NSBundle*)[NSBundle mainBundle] pathForResource:@"libReveal" ofType:@"dylib"] cStringUsingEncoding:0x4], 0x2);
command alias reveal_start expr (void)[(NSNotificationCenter*)[NSNotificationCenter defaultCenter] postNotificationName:@"IBARevealRequestStart" object:nil];
command alias reveal_stop expr (void)[(NSNotificationCenter*)[NSNotificationCenter defaultCenter] postNotificationName:@"IBARevealRequestStop" object:nil];
- 保存并退出.lldbinit文件。(在vim的命令行模式键入:wq)
上面四行代码,实质是命名了四个别名命令。
reveal_load_sim 为模拟器加载reveal调用用的动态链接库
reveal_load_dev 为模拟器加载reveal调用用的动态链接库
reveal_start 启动reveal调试功能
reveal_stop 关闭reveal调试功能
注:上述加载命令,必须保证reveal这个应用是位于你的Applications文件夹中的。
308658DE-7B97-494B-A581-2D659B248208.png
- 打开你想要进行界面调试的工程,在Appdelegate.m文件中
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
上述方法体内
- 设置一个断点
- 右击该断点,选择"Edit Brearkpoint"
- 单击"Action"选项卡右端的"+"号按钮,输入"reveal_load_sim"
- 如法炮制,再点击一次“+”号按钮,输入"reveal_start"
- 勾选“Option”上的“Automatically continue after evalating”选项。
01E85D93-9C6B-486E-85B5-2B52D22887C9.png上述表明,在LLDB调试器运行时,在断点处执行reveal_load_sim和reveal_start,则是在应用编译运行时,自定导入加载Reveal,进行界面调试
演示操作:
222.gif注:在模拟器中切换页面后,需要点击reveal右上的“刷新”按钮,才会更新reveal中的界面和模拟器中的同步。
优点:实时查看和修改自己的UI界面。
缺点:未知(由于接触reveal时间擅浅,望各路英雄好汉指点~)