def updateChannel(channel,ishd): print("updateChannel") # project_config = common.GetProjectConfigApp() + "/android" + "/gradle" targetDir = common.GetRootDirAndroidStudio() sourceDir = common.GetProjectConfigApp() project_android = "android/project" rootAndroidStudio = common.GetRootDirAndroidStudio() targetDir = rootAndroidStudio+"/src/main" if ishd==True: project_android = "android/project_hd" if channel == source.GP: config_adsdk_android.SetAdSdk(source.ADMOB, True) config_adsdk_android.SetAdSdk(source.ADVIEW, False) config_adsdk_android.SetAdSdk(source.GDT, False) config_adsdk_android.SetAdSdk(source.XIAOMI, False) config_adsdk_android.SetAdSdk(source.UNITY, True) config_adsdk_android.SetAdSdk(source.MOBVISTA, False) # project_config = sourceDir+"/"+project_android+"/config" xml = sourceDir+"/"+project_android+"/xml_gp" else: xml = sourceDir+"/"+project_android+"/xml" config_adsdk_android.SetAdSdk(source.ADMOB, True) config_adsdk_android.SetAdSdk(source.MOBVISTA, False) config_adsdk_android.SetAdSdk(source.UNITY, True) # project_config = sourceDir+"/"+project_android+"/config" common.coverFiles(project_config, targetDir) common.coverFiles(xml, targetDir) build_gradle = common.GetProjectConfigApp() + "/android" + "/gradle/build" # or (channel == source.GP) if (channel == source.TAPTAP) : build_gradle = build_gradle+"_"+channel build_gradle = build_gradle+".gradle" #配置build.grade #common.coverFiles(build_gradle, targetDir) build_gradle_dst = rootAndroidStudio+"/build.gradle" flag = os.path.exists(build_gradle_dst) if flag: os.remove(build_gradle_dst) common.copyOneFile(build_gradle,build_gradle_dst) # "channel_android": "xiaomi" file = getConfigJsonFile() print ("channel_android="+file) strStart = "channel_android\": \"" strEnd = "\"" strOut = replaceStringOfFile(file, strStart, strEnd, channel) saveString2File(strOut, file)
def updateNameWin(isHd, isAuto): strOld = "_APP_NAME_" rootConfig = common.GetProjectConfigApp() project = rootConfig + "/win/project" if isHd: project = rootConfig + "/win/project_hd" file_name_cn = project + "/strings/zh-cn/resources.resw" file_name_en = project + "/strings/en-us/resources.resw" data = loadJson(isHd) isOld = IsOldVersion(data) if not isOld: appname = data["appname"] if isOld: APP_NAME_CN = data["APP_NAME_CN_ANDROID"] APP_NAME_EN = data["APP_NAME_EN_ANDROID"] PACKAGE = data["PACKAGE_ANDROID"] else: APP_NAME_CN = appname["android"]["cn"] APP_NAME_EN = appname["android"]["en"] PACKAGE = data["apppackage"]["android"]["default"] # cn replaceFile(file_name_cn, strOld, APP_NAME_CN) # en replaceFile(file_name_en, strOld, APP_NAME_EN) filepath = project + "/strings/common.resw" replaceFile(filepath, "_APP_PACKAGE_", PACKAGE)
def copyCmdDir(name): dir1 = common.GetProjectConfigDefault() + "/" + name dir2 = common.GetProjectConfigApp() + "/" + name flag = os.path.exists(dir2) if flag: shutil.rmtree(dir2) shutil.copytree(dir1, dir2)
def loadJson(isHd): cur_path = common.GetProjectConfigApp() + "/appname" jsonfile = cur_path + '/appinfo.json' if isHd: jsonfile = cur_path + '/appinfo_hd.json' with open(jsonfile) as json_file: data = json.load(json_file) return data
def getScreenshotFullFilePath(isHd, device, language, idx): strDir_itmsp = "app.itmsp" if isHd: strDir_itmsp = "app_pad.itmsp" strDirRootTo = common.GetProjectConfigApp( ) + "/appstore/ios/" + strDir_itmsp strFileTo = strDirRootTo + "/" + getScreenshotFileName( device, language, idx) return strFileTo
def CopyInAppPurchasesScreenshot(isHd): # src =common.GetProjectConfig() + "/default/appstore/in_app_purchases_screenshot.png" src = common.GetResourceDataRoot() + "/in_app_purchases_screenshot.png" rootConfig = common.GetProjectConfigApp() dst = rootConfig + "/appstore/ios/app.itmsp" if isHd: dst = rootConfig + "/appstore/ios/app_pad.itmsp" dst = dst + "/in_app_purchases_screenshot.png" if not os.path.isfile(dst): shutil.copyfile(src, dst)
def copyResFiles(str): dir_default = common.GetProjectConfigDefault() # "../../../default" dir_to = common.GetProjectConfigApp() dir1 = dir_default + "/" + str dir2 = dir_to + "/" + str print(dir2) flag = os.path.exists(dir2) if flag: shutil.rmtree(dir2) shutil.copytree(dir1, dir2)
def loadXmlDescription(isHd): cur_path = common.GetProjectConfigApp() + "/appname" xmlfile = cur_path + '/app_description.xml' if isHd: xmlfile = cur_path + '/app_description_hd.xml' tree = ET.parse(xmlfile) root = tree.getroot() # cn = root.find('en') # print cn.tag # print cn.text return root
def CopyAndroidJavaFile_Weixin(rootStudio, isHD): dirroot = common.GetProjectConfigApp() strFileFrom = dirroot + "/android/src/wxapi/WXEntryActivity.java" strFileTo = rootStudio + "/src/main/java/com/moonma/common/share/wxapi/WXEntryActivity.java" # loadJson package = appname.GetPackage(source.ANDROID, isHD) # 替换包名 f = open(strFileFrom, 'r') strFile = f.read() f.close() strOut = strFile.replace("_PACKAGE_", package) common.saveString2File(strOut, strFileTo)
def updateAppstore(isHd): CopyInAppPurchasesScreenshot(isHd) rootConfig = common.GetProjectConfigApp() strHD = "HD" metadata_ios = rootConfig + "/appstore/ios/app.itmsp/metadata.xml" if isHd: metadata_ios = rootConfig + "/appstore/ios/app_pad.itmsp/metadata.xml" xmlRoot = loadXmlDescription(isHd) # filePath = rootConfig + "appstore/ios/app.itmsp/in_app_purchases_screenshot.png" # print common.get_MD5_checksum_file(filePath) # loadJson data = loadJson(isHd) isOld = IsOldVersion(data) if isOld: # APP_NAME_CN_ANDROID = data["APP_NAME_CN_ANDROID"] APPSTORE_VERSION_UPDATE = data["APPSTORE_VERSION_UPDATE"] APPSTORE_TITLE = data["APPSTORE_TITLE"] APPSTORE_SUBTITLE = data["APPSTORE_SUBTITLE"] APPSTORE_PROMOTION = data["APPSTORE_PROMOTION"] PACKAGE = data["PACKAGE_IOS"] # APPSTORE_DESCRIPTION = data["APPSTORE_DESCRIPTION"] APPSTORE_KEYWORD = data["APPSTORE_KEYWORD"] APPVERSION_IOS = data["APPVERSION_IOS"] else: APPVERSION_IOS = data["appversion"][source.IOS]["value"] APPSTORE_KEYWORD = data["appstore"]["aso"] PACKAGE = data["apppackage"][source.IOS]["default"] APPSTORE_VERSION_UPDATE = data["appstore"]["version_update"] APPSTORE_PROMOTION = data["appstore"]["promotion"] APPSTORE_SUBTITLE = data["appstore"]["subtitle"] APPSTORE_TITLE = data["appstore"]["title"] software_url = data["software_url"] privacy_url = data["privacy_url"] support_url = data["support_url"] sku_app = data["sku_app"] need_upload_screenshot = data.get("need_upload_screenshot", False) global enableScrenshot enableScrenshot = need_upload_screenshot if APPVERSION_IOS == "1.0.0": enableScrenshot = True # ios # sku_app strStart = "<vendor_id>" strEnd = "</vendor_id>" strOut = replaceStringOfFile(metadata_ios, strStart, strEnd, sku_app) saveString2File(strOut, metadata_ios) # APPVERSION_IOS # <version string="1.0.0"> strStart = "<version string=\"" strEnd = "\">" strOut = replaceStringOfFile(metadata_ios, strStart, strEnd, APPVERSION_IOS) saveString2File(strOut, metadata_ios) # 版本更新说明 key = "version_whats_new" if APPVERSION_IOS == "1.0.0": disableXmlKey(metadata_ios, key) else: jsonData = APPSTORE_VERSION_UPDATE idx = 0 for country in listCountry: lan = listCountryLanguage[idx] replaceXmlKey(metadata_ios, country, key, jsonData[lan]) idx += 1 # APPSTORE_TITLE key = "title" jsonData = APPSTORE_TITLE idx = 0 for country in listCountry: lan = listCountryLanguage[idx] replaceXmlKey(metadata_ios, country, key, jsonData[lan]) idx += 1 # APPSTORE_TITLE key = "subtitle" jsonData = APPSTORE_SUBTITLE idx = 0 for country in listCountry: lan = listCountryLanguage[idx] replaceXmlKey(metadata_ios, country, key, jsonData[lan]) idx += 1 # APPSTORE_PROMOTION key = "promotional_text" jsonData = APPSTORE_PROMOTION idx = 0 for country in listCountry: lan = listCountryLanguage[idx] replaceXmlKey(metadata_ios, country, key, jsonData[lan]) idx += 1 # APPSTORE_DESCRIPTION key = "description" # jsonData = APPSTORE_DESCRIPTION idx = 0 for country in listCountry: lan = listCountryLanguage[idx] desc = getXmlDescriptionText(xmlRoot, lan) replaceXmlKey(metadata_ios, country, key, desc) idx += 1 # APPSTORE_KEYWORD key = "keyword" jsonData = APPSTORE_KEYWORD idx = 0 for country in listCountry: lan = listCountryLanguage[idx] replaceXmlKey(metadata_ios, country, key, jsonData[lan]) idx += 1 # software_url key = "software_url" jsonData = software_url idx = 0 for country in listCountry: replaceXmlKey(metadata_ios, country, key, jsonData) idx += 1 # support_url key = "support_url" jsonData = support_url idx = 0 for country in listCountry: lan = listCountryLanguage[idx] replaceXmlKey(metadata_ios, country, key, jsonData) idx += 1 # privacy_url key = "privacy_url" jsonData = privacy_url idx = 0 for country in listCountry: lan = listCountryLanguage[idx] replaceXmlKey(metadata_ios, country, key, jsonData) idx += 1 # screenshot key = "software_screenshots" if enableScrenshot: screenshot_cn = getXmlStringScreenshots(isHd, "cn") screenshot_en = getXmlStringScreenshots(isHd, "en") replaceXmlKey(metadata_ios, "en-US", key, screenshot_en) replaceXmlKey(metadata_ios, "zh-Hans", key, screenshot_cn) # replaceXmlKey(metadata_ios,"en-CA",key,screenshot_en) # replaceXmlKey(metadata_ios,"en-AU",key,screenshot_en) # replaceXmlKey(metadata_ios,"en-GB",key,screenshot_en) else: disableXmlKey(metadata_ios, "software_screenshots") # noad replaceIAP_noad(metadata_ios, PACKAGE + ".noad")
common.SetCmdPath(cmdPath) gameName = common.getGameName() gameType = common.getGameType() print(gameName) print(gameType) if len(sys.argv) > 2: if sys.argv[2] == "delete_screenshot": delete_screenshots() sys.exit(0) #先从default 拷贝 文件模版 dir_default = common.GetProjectConfigDefault() dir_to = common.GetProjectConfigApp() dir1 = dir_default + "/appstore" dir2 = dir_to + "/appstore" flag = os.path.exists(dir2) if flag: shutil.rmtree(dir2) shutil.copytree(dir1, dir2) copy_screenshots() updateAppstore(False) updateAppstore(True) print("appname sucess")
common.SetCmdPath(cmdPath) gameName = common.getGameName() gameType = common.getGameType() print(gameType) print(gameName) isHD = False if count > 2: argvHD = sys.argv[2] if argvHD == "hd": isHD = True strFile = "app.itmsp" if isHD: strFile = "app_pad.itmsp" if common.isWindowsSystem(): strCmd = " " else: if ipa_build.IsXcode10(): strCmd = "/Applications/Xcode.app/Contents/Applications/Application\ Loader.app/Contents/itms/bin/iTMSTransporter -m upload -u " + source.APPSTORE_USER + " -p " + source.APPSTORE_PASSWORD + " -v eXtreme -f " + common.GetProjectConfigApp( ) + "/appstore/ios/" + strFile else: #xcode 11: 手动更新Transporter组件(java)方法: https://www.lagou.com/lgeduarticle/94642.html strCmd = "/Applications/Transporter.app/Contents/itms/bin/iTMSTransporter -m upload -u " + source.APPSTORE_USER + " -p " + source.APPSTORE_PASSWORD + " -v eXtreme -f " + common.GetProjectConfigApp( ) + "/appstore/ios/" + strFile os.system(strCmd) print("appstore_upload_ios sucess")
def GetJsonFile(isHd): cur_path = common.GetProjectConfigApp() + "/appname" jsonfile = cur_path + '/appname.json' if isHd: jsonfile = cur_path + '/appname_hd.json' return jsonfile
def updateName(isHd, isAuto): rootConfig = common.GetProjectConfigApp() strHD = "HD" project_ios = rootConfig + "/ios/project" project_android = rootConfig + "/android/project" if isHd: project_ios = rootConfig + "/ios/project_hd" project_android = rootConfig + "/android/project_hd" # android file_name_cn_android = project_android + "/res/values/strings.xml" file_name_en_android = project_android + "/res/values-en/strings.xml" file_AndroidManifest = project_android + "/xml/AndroidManifest.xml" file_AndroidManifest_GP = project_android + "/xml_gp/AndroidManifest.xml" file_google_service_android = project_android + "/config/google-services.json" # ios file_name_cn_ios = project_ios + "/appname/zh-Hans.lproj/InfoPlist.strings" file_name_en_ios = project_ios + "/appname/en.lproj/InfoPlist.strings" file_info_plist_ios = project_ios + "/Info.plist" # loadJson data = loadJson(isHd) isOld = IsOldVersion(data) global versionCode if not isOld: appname = data["appname"] if isOld: APP_NAME_CN_ANDROID = data["APP_NAME_CN_ANDROID"] APP_NAME_EN_ANDROID = data["APP_NAME_EN_ANDROID"] APP_NAME_CN_IOS = data["APP_NAME_CN_IOS"] APP_NAME_EN_IOS = data["APP_NAME_EN_IOS"] PACKAGE_ANDROID = data["PACKAGE_ANDROID"] PACKAGE_IOS = data["PACKAGE_IOS"] versionCode = data["APPVERSION_CODE_ANDROID"] APPVERSION_IOS = data["APPVERSION_IOS"] else: APP_NAME_CN_ANDROID = appname[source.ANDROID]["cn"] APP_NAME_EN_ANDROID = appname[source.ANDROID]["en"] APP_NAME_CN_IOS = appname[source.IOS]["cn"] APP_NAME_EN_IOS = appname[source.IOS]["en"] PACKAGE_ANDROID = data["apppackage"][source.ANDROID]["default"] PACKAGE_IOS = data["apppackage"][source.IOS]["default"] versionCode = data["appversion"][source.ANDROID]["code"] APPVERSION_IOS = data["appversion"][source.IOS]["value"] #appid appid_ios = GetJsonAppId(data, source.APPSTORE) appid_taptap = GetJsonAppId(data, source.TAPTAP) appid_huawei = GetJsonAppId(data, source.HUAWEI) SetConfigDataAppId(source.IOS, source.APPSTORE, appid_ios, isHd) SetConfigDataAppId(source.ANDROID, source.TAPTAP, appid_taptap, isHd) SetConfigDataAppId(source.ANDROID, source.HUAWEI, appid_huawei, isHd) UpdateLanguageName(APP_NAME_CN_ANDROID, APP_NAME_EN_ANDROID, isHd) # if data.has_key("PACKAGE_HD_ANDROID"): # PACKAGE_HD_ANDROID = data["PACKAGE_HD_ANDROID"] if isAuto == True: autoPlusVersion(isHd, data) # 重新加载 data = loadJson(isHd) APPVERSION_ANDROID = versionCodeToVersion() APPVERSION_CODE_ANDROID = versionCode print(APP_NAME_CN_ANDROID) print(APP_NAME_EN_ANDROID) print(APP_NAME_CN_IOS) print(APP_NAME_EN_IOS) print(PACKAGE_ANDROID) print("android version:" + APPVERSION_ANDROID) print("ios version:" + APPVERSION_IOS) # android # name strStart = "app_name\">" strEnd = "<" # cn strOut = replaceStringOfFile(file_name_cn_android, strStart, strEnd, APP_NAME_CN_ANDROID) saveString2File(strOut, file_name_cn_android) # en strOut = replaceStringOfFile(file_name_en_android, strStart, strEnd, APP_NAME_EN_ANDROID) saveString2File(strOut, file_name_en_android) updateAndroidManifest(file_AndroidManifest, PACKAGE_ANDROID, APPVERSION_ANDROID, APPVERSION_CODE_ANDROID, isHd) updateAndroidManifest(file_AndroidManifest_GP, PACKAGE_ANDROID, APPVERSION_ANDROID, APPVERSION_CODE_ANDROID, isHd) # admob replaceGoogleServiceFile(file_google_service_android, PACKAGE_ANDROID) # ios #appname replaceFile(file_info_plist_ios, "_APP_NAME_", APP_NAME_CN_IOS) file_name_cn_ios = project_ios + "/appname/zh-Hans.lproj/InfoPlist.strings" file_name_en_ios = project_ios + "/appname/en.lproj/InfoPlist.strings" # cn replaceFile(file_name_cn_ios, "_APP_NAME_", APP_NAME_CN_IOS) # en replaceFile(file_name_en_ios, "_APP_NAME_", APP_NAME_EN_IOS) # package replaceFile(file_info_plist_ios, "_APP_PACKAGE_", PACKAGE_IOS) # version replaceFile(file_info_plist_ios, "_APP_VERSION_", APPVERSION_IOS) #admob appid appid = adconfig.GetCommonAppId(source.ADMOB, source.IOS, isHd) replaceFile(file_info_plist_ios, "_APP_ID_ADMOB_", appid) # CFBundleURLSchemes src = source.WEIBO appid = config.GetShareAppId(src, source.IOS, isHd) replaceXcodeUrlScheme(file_info_plist_ios, src, appid, 0) src = source.WEIXIN appid = config.GetShareAppId(src, source.IOS, isHd) replaceXcodeUrlScheme(file_info_plist_ios, src, appid, 0) src = source.QQ appid = config.GetShareAppId(src, source.IOS, isHd) replaceXcodeUrlScheme(file_info_plist_ios, src, appid, 0) replaceXcodeUrlScheme(file_info_plist_ios, src, appid, 1) # xiaomi aso keyword updateXiaoASOkeyword(data, isHd) # win updateNameWin(isHd, isAuto)
common.coverFiles(dir1, dir2) #主函数的实现 if __name__ == "__main__": #入口参数:http://blog.csdn.net/intel80586/article/details/8545572 print("脚本名:", sys.argv[0]) cmdPath = common.cur_file_dir() count = len(sys.argv) for i in range(1, count): print("参数", i, sys.argv[i]) if i == 1: cmdPath = sys.argv[i] common.SetCmdPath(cmdPath) gameName = common.getGameName() gameType = common.getGameType() print(gameType) print(gameName) dir1 = common.GetProjectConfigDefault() dir2 = common.GetProjectConfigApp() #copyCmdFiles(dir1,dir2) copyCmdDir("cmd_win") copyCmdDir("cmd_mac") copyAllBuildDir() print("copy_cmd sucess")
iconDirName = sys.argv[2] # adDirName = sys.argv[3] project_ios = "ios/project" project_android = "android/project" isHD = False if iconDirName == "iconhd": isHD = True project_ios = "ios/project_hd" project_android = "android/project_hd" # project iconRoot = common.GetProjectOutPutApp() reousceDataRoot = common.GetResourceDataRoot() sourceDir = common.GetProjectConfigApp() # sourceAdDir = "../../../../ad_src/"+adDirName # adCommonDir = "../../../../../common_ad" # adSrcDir = adCommonDir+"/ad_src/"+adDirName targetDir = rootAndroidStudio + "/src/main" # resoucedata # dirname = "Resources" # dir1 = reousceDataRoot+"/"+resDataName+"/"+dirname # dir2 = reousceUnity # flag = os.path.exists(dir2) # if flag: # shutil.rmtree(dir2) # shutil.copytree(dir1,dir2) # ios icon