命令行工具
CocoaPods
每种语言发展到一个阶段,就会出现相应的依赖管理工具或者是中央代码仓库。比如Java的maven,Nodejs的npm等。而CocoaPods(http://cocoapods.org/)是为iOS程序提供依赖管理的工具。开发iOS项目不可避免地要使用第三方开源库,CocoaPods的出现使得我们可以节省设置和更新第三方开源库的时间。
在我开发猿题库客户端时,其使用了24个第三方开源库。在没有使用CocoaPods以前,我需要:
把这些第三方开源库的源代码文件复制到项目中,或者设置成git的submodule。
对于这些开源库通常需要依赖系统的一些framework,我需要手工地将这些framework一一增加到项目依赖中,比如通常情况下,一个网络库就需要增加以下framework: CFNetwork, SystemConfiguration, MobileCoreServices, CoreGraphics, zlib。
对于某些开源库,我还需要设置-licucore或者 -fno-objc-arc等编译参数
管理这些依赖包的更新。
这些体力活虽然简单,但毫无技术含量并且浪费时间。在使用CocoaPods之后,我只需要将用到的第三方开源库放到一个名为Podfile的文件中,然后执行pod install。CocoaPods就会自动将这些第三方开源库的源码下载下来,并且为我的工程设置好相应的系统依赖和编译参数。
安装CocoaPods:
sudo gem install cocoapods
pod setup
使用时需要新建一个名为Podfile的文件,以如下格式,将依赖的库名字依次列在文件中,然后执行pod install命令即可。
platform :ios
pod 'JSONKit', '~> 1.4'
pod 'Reachability', '~> 3.0.0'
pod 'AFNetworking'
pod 'RegexKitLite'
使用CocoaPods还需要注意以下几点:
需要使用CocoaPods生成的 .xcworkspace 文件来打开工程,而不是以前的 .xcodeproj 文件。
每次更改了Podfile文件,你需要重新执行一次pod update命令。
当你执行pod install之后,除了Podfile外,CocoaPods还会生成一个名为Podfile.lock的文件,你应该把这个文件加入到版本管理中。因为Podfile.lock会锁定当前各依赖库的版本,之后如果多次执行pod install 不会更改版本,要pod update才会改Podfile.lock了。这样的好处是:当多人协作的时候,可以保证所有人的第三库环境是完全一样的。
nomad
nomad(http://nomad-cli.com/)是一个方便你操作苹果开发者中心()的命令行工具,可以做的事情包括方便地添加测试设备,更新证书文件,增加App id,验证IAP的凭证等。
安装方式:
gem install nomad-cli
安装完后,首先执行ios login,你的Developer账号密码会被它存储到Keychain中,之后就可以用命令行来完成各种后台操作了,例如:
添加测试设备:
ios devices:add "TangQiaos iPhone"=<Device Identifier>
更新证书文件:
ios profiles:devices:add TangQiao_Profile "TangQiaos iPhone"=<Device Identifier>
nomad还有很多功能,建议大家阅读其官方网站的文档进一步学习。
xctool
xctool(https://github.com/facebook/xctool)是facebook开源的一个iOS编译和测试的工具。使用它而不是用Xcode的UI界面是因为它是一个纯命令行工具。比如:我们可以使用xctool在命令生下进行编译和单元测试,然后将测试结果集成到Jenkins中,这样就实现了自动化的持续集成。虽然苹果也在OSX Server上推出了自己的自动化集成工具BOT,但其配置和使用上现在仍然不太方便。
安装xctool可以使用brew命令:
brew install xctool
使用xctool编译项目可以使用如下命令:
path/to/xctool.sh \
-project YourProject.xcodeproj \
-scheme YourScheme \
build
使用xctool执行单元测试,可以使用如下命令:
path/to/xctool.sh \
-workspace YourWorkspace.xcworkspace \
-scheme YourScheme \
test
xctool还有很多功能,建议大家阅读xctool官方网站的文档进一步了解更多的功能。
appledoc
appledoc(https://github.com/tomaz/appledoc)是一个从源码中抽取文档的工具。
对于开发者来说,文档最好和源码在一起,这样更新起来更加方便和顺手。象Java一类的语言本身就自带javadoc命令,可以从源码中抽取文档。而appledoc就是一个类似javadoc的命令行程序,可以从iOS工程的源代码中抽取相应的注释,生成帮助文档。
相对于其它的文档生成工具,appledoc的优点是:
它默认生成的文档风格和苹果的官方文档是一致的。
appledoc就是用objective-c写的,必要的时候调试和改动也比较方便。
它可以生成docset,并且集成到xcode中。集成之后,在相应的API调用处,按住option再单击就可以调出相关的帮助文档。
它没有特殊的注释要求,兼容性高。
安装appledoc可以直接使用brew命令:
brew install appledoc
使用时切换到iOS工程目录下,执行以下操作即可,appledoc会扫描当前路径下的所有文件,然后生成好文档放到doc目录下。你也可以用appledoc —help查看所有可用的参数。
appledoc -o <output_path> \
–project-name <project_name> \
–project-company <project_company> .