Exemple #1
0
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)
Exemple #2
0
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)
Exemple #7
0
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")
Exemple #13
0
def GetJsonFile(isHd):
    cur_path = common.GetProjectConfigApp() + "/appname"
    jsonfile = cur_path + '/appname.json'
    if isHd:
        jsonfile = cur_path + '/appname_hd.json'
    return jsonfile
Exemple #14
0
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