最近项目组要搞一个类似涂鸦科技的OEM平台,可以快速的定制应用,构建并且发布;这次我不再写前端了,而去负责构建服务的工作。

难点

  • android和iOS自动化签名打包
  • 和主服务的通行方式
  • 怎么让它更好玩

设计

首先选择服务器,因为考虑到iOS的打包,这边选择一个老款的Mini作为服务器;通行方式选择websocket + jsonRPC;脚本选择Python;iOS重签名用fastLine,android使用apkTool

大概的时序图

image.png

开发过程中碰到的问题

  • Python3 环境,这个实在太恶劣了,最后没办法选择Anaconda

  • iOS 证书安装问题,security unlock-keychain -p "<Password>" ~/Library/Keychains/login.keychain

  • 通过python获取证书的identify

    import pyOpenssl
      
    p12 = load_pkcs12(file("./path/to/your.p12", 'rb').read(), 'YOUR_P12_PASSWORD')
    print(p12.get_friendlyname()) #如果返回的结果有`u 最好decode(utf-8)
    

接下来就是一些业务逻辑了,没啥好讲的;完成这些功能后,这个重新构建脚本就是完全自动化。

总结

因为时间比较紧迫,原本想通过jenkins方式,python只负责通讯和业务逻辑,这样的好处在于非常方便直观的查看每次的构建日志。反正现在丢在哪里也比较稳定,也不想折腾了。