【读书笔记】iOS-成为一名开发者
iOS开发者计划是按年付费的,在过期前60天可以开始续费。如果你不续费的话,你将无法发布应用。另外苹果会吊销你的开发者证书和发布证书。最后,苹果将你在iTunes App Store上的所有应用下架。
Ad hoc渠道发行允许你绕过App Store直接将应用发放给你的用户。但是分发数量会限制在100台设备内,而且直到一年的开发者计划到期才能更换授权过的设备。另外,对于终端用户来说,通过Ad hoc发行会比通过App Store来得更为复杂,所以一般只用于测试应用的Beta版,而非替代在App Store上发行。如果你的应用需要大面积的发布给一些特定的用户群,还要避免使用App Store,你也许应该考虑一下企业版了。
很多时间 ,我发现在模拟器中运行的好好的,但在真实的设备上却很慢,于是只能回头重构代码并优化UI的实现方式。你也有可能在模拟器上使用了比真实设备所能提供的内存要多的内存资源。
另外,一些框架在模拟器中是可用的,但在真实设备上却没有,尤其是NSPredicate和NSXMLDocument这两个类。如果你的代码用了这些类,在模拟器上是可以编译和运行的,不过最好时不时也连上真机的设备试一试,如果你一旦不小心使用了这样的类,Xcode会编译时提示链接错误。你也不想到了项目结尾的时候才发现某个库在真实设备上不能用,还得急忙地寻找替代方案吧。
NSPredicate和NSXMLDocument是两个常用的类,其中NSXMLDocument是用来处理XQuery和XML文档的,不过一向是用在Mac开发上,而非iOS开发上。很多开发者很快就会发现这个问题。
有些人,声称在模拟器上会出现轻微的UIKit控件不对齐的情况,不过我自己倒没有遇到过。可是如果用更加底层的图像库,比如OpenGL ES,真实设备上使用的渲染器和模拟器上使用的渲染器有一点区别,因此在模拟器上看到的图形和真实设备上显示的图形会有像素级别的细微差别。
另外模拟器会有一些先天的缺陷,如果你的应用的UI需要响应超过两个手指的触摸事件,在模拟器上就没法测试了。
如果你的模拟器中运行你的应用,你将无法使用加速度传感器,GPS,蓝牙和数字指南针。如果你的应用依赖这些硬件模块,那么你没有其他选择,只能用真实设备来调试。
参考资料:《iOS编程指南》