实现 iOS 应用自动编译
前段时间开发了一个简单的 Web 应用,主要用来自动编译 iOS 应用,简化 iOS 应用的发布难度。
由于编译任务的密集计算部分主要由编译器承担,我们所需要做的只是一个业务逻辑的粘合,因此选用开发语言与框架的首要考虑点为:开发效率高。
基于上面的基本原则选用的开发库与框架如下:
Mac 自带的 Python 2.6.1,64 位模式
Mac 下 pysvn 1.7.5,64 位模式
Mac 下 MySQL-Python 1.2.3,64 位模式
Mac 下 libxml2-python 2.6.9 ,64 位模式
Ubuntu 10.10, MySQL
Ubuntu 10.10, RabbitMQ
Mac 下 Celery 2.2.6
Mac 下 Django 1.3
Mac 下 Django-Celery 2.2.4
具体的实现过程就不说了,主要说说遇到的问题:
1、 32 位与64位模式问题
Mac 下的 Python 可以工作在 32 位模式或者 64 位模式下,但是需要一致,就是不能同时有 32 位模式与 64 位模式。因此在使用一些后端封装库的时候需要注意,例如:pysvn 要选 64 位模式,MySQL 的 Python 后端需要也是 64 位模式,如果不一致,会报告架构错误。
2、Celery 的编码问题
Celery 的 Log 不支持 Unicode 编码,而有些库抛出的异常时 Unicode 的,比如 pysvn,这时需要捕获后重新抛出。