build.py 3.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126
  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. # App 下载页面
  13. download_url = "https://twongd.shotshock.shop/mobilex/download"
  14. # 保存版本信息
  15. def save_version(new_ver):
  16. ver = {
  17. 'iosID': appID,
  18. "version": new_ver,
  19. "deVersion": new_ver,
  20. "iosStore": appStore,
  21. "update": download_url,
  22. "download": remote_url + "/twong-" + new_ver + ".apk",
  23. }
  24. ver_file = open("tools/version.json", "w")
  25. json.dump(ver, ver_file, indent=4)
  26. ver_file.close()
  27. def update_version():
  28. if not upload("tools/version.json", "version"):
  29. exit(-1)
  30. def update_package():
  31. if not upload(apkPath, "twong-" + ver_new + ".apk"):
  32. exit(-1)
  33. def build_package(params):
  34. ret = subprocess.call("sh ./tools/build.sh " + params, stderr=subprocess.STDOUT, shell=True)
  35. print(ret)
  36. def remote_version():
  37. cur_version = get_version()
  38. return cur_version["version"]
  39. def error():
  40. print("参数错误")
  41. help()
  42. exit(1)
  43. def help():
  44. print("用法:\n\
  45. all\t\t\t-- 生成一个新的版本号 用新的版本号打包 然后全部上传到服务器\n\
  46. all [code]\t\t-- 把[code]作为版本号存入本地并应用到Cordova工程 打包 然后全部上传到服务器\n\
  47. android\t\t-- 打包APK\n\
  48. android [code]\t-- 把[code]作为版本号存入本地并应用到Cordova工程 打包APK\n\
  49. help\t\t-- 显示帮助文档\n\
  50. info\t\t-- 显示当前远程版本号和本地版本号\n\
  51. ios\t\t\t-- Build IOS Cordova 工程\n\
  52. ios [code]\t\t-- 把[code]作为版本号存入本地并应用到Cordova工程 打包IOS\n\
  53. upload\t\t-- 以当前版本号打包 只上传APP到服务器\n\
  54. upload [code]\t-- 把[code]作为版本号打包APK 只上传APK到服务器\n\
  55. version\t\t-- 只把当前目录的版本文件上传到服务器(tools/version.json)\n\
  56. version [code]\t-- 把[code]作为版本号存入本地并应用到Cordova工程 只上传版本文件到服务器\n")
  57. def test():
  58. save_version("1.2.1")
  59. print("test over")
  60. if __name__ == "__main__":
  61. args = sys.argv
  62. if len(args) > 1:
  63. arg_1 = args[1]
  64. if arg_1 == "version":
  65. cur_ver = get_apk_version()
  66. if len(args) > 2:
  67. cur_ver = args[2]
  68. apk_version(cur_ver)
  69. save_version(cur_ver)
  70. update_version()
  71. elif arg_1 == "upload":
  72. if len(args) > 2:
  73. code = args[2]
  74. apk_version(code)
  75. build_package("android pub")
  76. update_package()
  77. elif arg_1 == "help":
  78. help()
  79. elif arg_1 == "all":
  80. cur_ver = get_version()["version"]
  81. ver_new = new_version(cur_ver)
  82. if len(args) > 2:
  83. ver_new = args[2]
  84. apk_version(ver_new)
  85. save_version(ver_new)
  86. build_package("android pub")
  87. update_package()
  88. update_version()
  89. elif arg_1 == "ios":
  90. if len(args) > 2:
  91. apk_version(args[2])
  92. build_package("ios pub")
  93. elif arg_1 == "info":
  94. get_apk_version()
  95. get_version()
  96. elif arg_1 == "android":
  97. if len(args) > 2:
  98. apk_version(args[2])
  99. build_package("android pub")
  100. elif arg_1 == "test":
  101. test()
  102. else:
  103. error()
  104. else:
  105. error()