build.py 3.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899
  1. # -*- coding: utf-8 -*-
  2. import os
  3. import subprocess
  4. from tools.upload import *
  5. from tools.packHelper import *
  6. # 安卓打包位置
  7. apkPath = "./cordova/platforms/android/app/build/outputs/apk/release/app-release.apk"
  8. # IOS appID
  9. appID = "1537411658"
  10. # appStore 地址
  11. appStore = "itms-apps://itunes.apple.com/us/app/apple-store/" + appID
  12. # 保存版本信息
  13. def save_version(new_ver):
  14. ver = {
  15. "version": new_ver,
  16. "iosVersion": new_ver,
  17. 'iosID': (appID,),
  18. "iosStore": appStore,
  19. "download": remote_url + "/twong-" + new_ver + ".apk",
  20. }
  21. ver_file = open("tools/version.json", "w")
  22. json.dump(ver, ver_file)
  23. ver_file.close()
  24. def update_version():
  25. if not upload("tools/version.json", "version"):
  26. exit(-1)
  27. def update_package():
  28. if not upload(apkPath, "twong-" + ver_new + ".apk"):
  29. exit(-1)
  30. def build_package(params):
  31. ret = subprocess.call("sh ./tools/build.sh " + params, stderr=subprocess.STDOUT, shell=True)
  32. print(ret)
  33. def remote_version():
  34. cur_version = get_version()
  35. return cur_version["version"]
  36. if __name__ == "__main__":
  37. args = sys.argv
  38. if len(args) > 0:
  39. if args[1] == "version":
  40. cur_ver = remote_version()
  41. ver_new = new_version(cur_ver)
  42. if len(args) > 2:
  43. ver_new = args[2]
  44. save_version(ver_new)
  45. apk_version(ver_new)
  46. update_version()
  47. elif args[1] == "upload":
  48. if len(args) > 2:
  49. code = args[2]
  50. apk_version(code)
  51. build_package("android")
  52. update_package()
  53. elif args[1] == "help":
  54. print("用法:\n\
  55. 没有参数直接执行打包脚本(tools/build.sh)\n\
  56. all\t\t-- 生成一个新的版本号 用新的版本号打包 然后全部上传到服务器\n\
  57. all [code]\t-- 把[code]作为版本号存入本地并应用到Cordova工程 打包 然后全部上传到服务器\n\
  58. help\t\t-- 显示帮助文档\n\
  59. ios\t\t-- Build IOS Cordova 工程\n\
  60. upload\t\t-- 以当前版本号打包 只上传APP到服务器\n\
  61. upload [code]\t-- 把[code]作为版本号打包APK 只上传APK到服务器\n\
  62. var\t\t-- 显示当前远程版本号和本地版本号\n\
  63. version\t\t-- 只把当前目录的版本文件上传到服务器(tools/version.json)\n\
  64. version [code]\t-- 把[code]作为版本号存入本地并应用到Cordova工程 只上传版本文件到服务器\n\
  65. ")
  66. elif args[1] == "all":
  67. cur_ver = remote_version()
  68. ver_new = new_version(cur_ver)
  69. if len(args) > 2:
  70. ver_new = args[2]
  71. apk_version(ver_new)
  72. save_version(ver_new)
  73. update_package()
  74. update_version()
  75. elif args[1] == "ios":
  76. build_package("ios")
  77. elif args[1] == "ver":
  78. get_apk_version()
  79. get_version()
  80. else:
  81. print("参数错误 请使用 help 检查可用的参数列表")
  82. else:
  83. build_package("android")