Exemple #1
0
    def Run(self, platform, channel, isHD):
        print("Build Run platform=" + platform + " channel=" + channel +
              " isHD=" + str(isHD))
        self.Init(channel)
        gameName = mainResource.getGameName()
        gameType = mainResource.getGameType()
        print("gameName=" + gameName)
        print("gameType=" + gameType)
        if platform == Source.ANDROID:
            # python 里无法直接执行cd目录,想要用chdir改变当前的工作目录
            android_studio_dir = mainResource.GetRootDirAndroidStudio()
            # python 里无法直接执行cd目录,要用chdir改变当前的工作目录
            os.chdir(android_studio_dir)
            for channel in self.listChannel:
                print("apk_build:" + channel)
                self.BuildClean()
                mainAppChannel.UpdateChannel(channel, isHD)
                self.BuildApk()
                self.CopyApk(channel)

        if platform == Source.MinProgram:
            self.DeleteCloudRes()

            if channel == Source.WEIXIN2:
                self.BuildProject(isHD, Source.WEIXIN)
            else:
                self.GenerateProject(isHD, channel)
                self.BuildProject(isHD, channel)

        print("Build sucess channel=" + channel)
Exemple #2
0
    def BuildClean(self):
        targetDir = mainResource.GetRootDirAndroidStudio()
        # build
        dir2 = targetDir + "/build"
        flag = os.path.exists(dir2)
        if flag:
            shutil.rmtree(dir2)

        print("apk_build_clean sucess")
    def DoCopyGameData(self):
        gameName = mainResource.getGameName()
        gameType = mainResource.getGameType()
        print(gameName)
        print(gameType)

        resDataName = mainResource.getGameName()#sys.argv[1]
        gameResName = self.getGameResName()

        gameResCommonRoot = mainResource.GetDirProductCommon()+"/GameResCommon"+"/"+gameResName
        gameResRoot = mainResource.GetResourceDataRoot()+"/"+gameType+"/"+gameName+"/GameRes"
        flag = os.path.exists(gameResRoot)
        if not flag:
            #目录不存在的话到gamerescommon里copy
            gameResRoot = gameResCommonRoot

        gameDataCommonRoot = mainResource.GetDirProductCommon()+"/GameDataCommon"
        gameDataRoot = mainResource.GetResourceDataRoot()+"/"+gameType+"/"+gameName+"/GameData"

        # streamingAssetsUnity = mainResource.GetRootProjectUnity()+"/Assets/StreamingAssets"
        rootAndroidStudio =mainResource.GetRootDirAndroidStudio()
        rootiOSXcode =mainResource.GetRootDirXcode()
 
    # copy GameData 游戏配置等数据 
        dirname = "GameData"

        # unity editor 
        # dir1 = gameDataRoot
        # dir2 = streamingAssetsUnity+"/"+dirname
        # flag = os.path.exists(dir2)
        # if flag:
        #     shutil.rmtree(dir2)
        # shutil.copytree(dir1,dir2)

        # ios
        # dir2 = rootiOSXcode+"/Data/Raw/"+dirname
        # flag = os.path.exists(dir2)
        # if flag:
        #     shutil.rmtree(dir2)
        # shutil.copytree(dir1,dir2)

    # android asset
        # dir2 = rootAndroidStudio+"/src/main/assets/"+dirname
        # flag = os.path.exists(dir2)
        # if flag:
        #     shutil.rmtree(dir2)
        # shutil.copytree(dir1,dir2)


        dirname = "GameData/common"
    def Run(self):
        gameType = mainResource.getGameType()
        gameName = mainResource.getGameName()

        rootAndroidStudio = mainResource.GetRootDirAndroidStudio()

        # android asset
        dir_asset = "/src/main/assets/bin"
        dir1 = mainResource.GetRootDirAndroidOutput() + dir_asset
        dir2 = rootAndroidStudio + dir_asset
        flag = os.path.exists(dir2)
        if flag:
            shutil.rmtree(dir2)
        shutil.copytree(dir1, dir2)

        dir_asset = "/src/main/assets/baidu_tts_data"
        dir1 = mainResource.GetRootDirAndroidOutput() + dir_asset
        dir2 = rootAndroidStudio + dir_asset
        flag = os.path.exists(dir2)
        if flag:
            shutil.rmtree(dir2)
        shutil.copytree(dir1, dir2)

        # android jniLibs
        dir_asset = "/src/main/jniLibs"
        dir1 = mainResource.GetRootDirAndroidOutput() + dir_asset
        dir2 = rootAndroidStudio + dir_asset
        flag = os.path.exists(dir2)
        if flag:
            shutil.rmtree(dir2)
        shutil.copytree(dir1, dir2)

        filename = "/libs/unity-classes.jar"
        shutil.copy2(mainResource.GetRootDirAndroidOutput() + filename,
                     rootAndroidStudio + filename)

        dataJson = self.LoadJsonAndroidAssetConfigCommon()
        appNameAndroidAsset = dataJson["APP_NAME_KEYWORD"]
        appTypeAndroidAsset = dataJson["APP_TYPE"]
        print(appTypeAndroidAsset)
        print(appNameAndroidAsset)

        if appTypeAndroidAsset != gameType or appNameAndroidAsset != gameName:
            print("mainCopyGamedata DoCopyAll")
            mainCopyGamedata.DoCopyAll()

        self.CopyConfigDataToAndroid()
        print("copy_android_output_asset sucess")
Exemple #5
0
    def Run(self,channel,isHD):  
        self.Init(channel)
        gameName = mainResource.getGameName()
        gameType = mainResource.getGameType()
        print("ApkBuild isHD="+str(isHD))
        print("gameName="+gameName)
        print ("gameType="+gameType) 
        print(mainResource.getAndroidProjectApk())
        # python 里无法直接执行cd目录,想要用chdir改变当前的工作目录
        android_studio_dir = mainResource.GetRootDirAndroidStudio()
        # python 里无法直接执行cd目录,要用chdir改变当前的工作目录
        os.chdir(android_studio_dir)
        for channel in self.listChannel:
            print("apk_build:" + channel)
            self.BuildClean()
            mainAppChannel.UpdateChannel(channel,isHD) 
            self.BuildApk()
            self.CopyApk(channel)

        print("apk_build sucess channel="+channel)
    def Run(self):
 
        gameName = mainResource.getGameName()
        gameType = mainResource.getGameType()
        print(gameName)
        print(gameType)

        resDataName = mainResource.getGameName()#sys.argv[1]
        gameResName = self.getGameResName()

        gameResCommonRoot = mainResource.GetDirProductCommon()+"/GameResCommon"+"/"+gameResName
        gameResRoot = mainResource.GetResourceDataRoot()+"/"+gameType+"/"+gameName+"/GameRes"
        flag = os.path.exists(gameResRoot)
        if not flag:
            #目录不存在的话到gamerescommon里copy
            gameResRoot = gameResCommonRoot;

        gameDataRoot = mainResource.GetResourceDataRoot()+"/"+gameType+"/"+gameName+"/GameData"

        streamingAssetsUnity = mainResource.GetRootProjectUnity()+"/Assets/StreamingAssets"
        rootAndroidStudio = mainResource.GetRootDirAndroidStudio()
        rootiOSXcode =mainResource.GetRootDirXcode()

        
    # copy GameData 游戏配置等数据 
        dirname = "GameData/screenshot"
        # ios
        dir2 = rootiOSXcode+"/Data/Raw/"+dirname
        flag = os.path.exists(dir2)
        if flag:
            shutil.rmtree(dir2) 

        dirname = "GameData/screenshot"
    # android asset
        dir2 = rootAndroidStudio+"/src/main/assets/"+dirname
        flag = os.path.exists(dir2)
        if flag:
            shutil.rmtree(dir2) 


        print("clean_screenshot sucess")
    def UpdateChannel(self, channel, ishd):
        print("updateChannel")
        # project_config = common.GetProjectConfigApp() + "/android" + "/gradle"
        targetDir = mainResource.GetRootDirAndroidStudio()
        sourceDir = mainResource.GetProjectConfigApp()
        project_android = "android/project"
        project_android_common = project_android
        rootAndroidStudio = mainResource.GetRootDirAndroidStudio()
        targetDir = rootAndroidStudio + "/src/main"

        if ishd == True:
            project_android = "android/project_hd"

        if channel == Source.GP:
            # self.MakeGooglePlayObbFile(ishd)
            if mainConfig.IsCloudRes():
                self.DeleteAndroidAssetGameRes()

            mainConfigSDKAndroid.SetShareSdk(False)
            mainConfigSDKAndroid.SetAdSdk(Source.ADMOB, True)
            mainConfigSDKAndroid.SetAdSdk(Source.ADVIEW, False)
            mainConfigSDKAndroid.SetAdSdk(Source.GDT, False)
            mainConfigSDKAndroid.SetAdSdk(Source.BAIDU, False)
            mainConfigSDKAndroid.SetAdSdk(Source.XIAOMI, False)
            enable = True
            if mainConfig.IsForKid():
                enable = False
            print("mainConfig.IsForKid()=", mainConfig.IsForKid())
            # enable = False
            mainConfigSDKAndroid.SetAdSdk(Source.UNITY, enable)
            mainConfigSDKAndroid.SetAdSdk(Source.MOBVISTA, False)
            #
            project_config = sourceDir + "/" + project_android + "/config"
            xml = sourceDir + "/" + project_android + "/xml_gp"

        else:
            xml = sourceDir + "/" + project_android + "/xml"
            mainConfigSDKAndroid.SetAdSdk(Source.ADMOB, True)
            mainConfigSDKAndroid.SetAdSdk(Source.MOBVISTA, False)
            mainConfigSDKAndroid.SetAdSdk(Source.UNITY, True)
            mainConfigSDKAndroid.SetAdSdk(Source.BAIDU, True)

            # True
            mainConfigSDKAndroid.SetShareSdk(False)

            #
            project_config = sourceDir + "/" + project_android + "/config"

        FileUtil.CoverFiles(project_config, targetDir)
        FileUtil.CoverFiles(xml, targetDir)

        build_gradle = mainResource.GetProjectConfigApp(
        ) + "/android" + "/gradle/build"
        # or (channel == Source.GP)
        # if (channel == Source.TAPTAP) :
        #     build_gradle = build_gradle+"_"+channel
        if (channel == Source.GP):
            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)

        FileUtil.CopyOneFile(build_gradle, build_gradle_dst)

        #  "channel_android": "xiaomi"
        file = self.getConfigJsonFile()
        print("channel_android=" + file)
        strStart = "channel_android\": \""
        strEnd = "\""
        strOut = self.replaceStringOfFile(file, strStart, strEnd, channel)
        FileUtil.SaveString2File(strOut, file)
    def DoCopyAll(self):
        gameName = mainResource.getGameName()
        gameType = mainResource.getGameType()
        print(gameName)
        print(gameType)

        resDataName = mainResource.getGameName()#sys.argv[1]
        gameResName = self.getGameResName()

        gameResCommonRoot = mainResource.GetDirProductCommon()+"/GameResCommon"+"/"+gameResName
        gameResRoot = mainResource.GetResourceDataRoot()+"/"+gameType+"/"+gameName+"/GameRes"
        flag = os.path.exists(gameResRoot)
        if not flag:
            #目录不存在的话到gamerescommon里copy
            gameResRoot = gameResCommonRoot

        gameDataCommonRoot = mainResource.GetDirProductCommon()+"/GameDataCommon"
        gameDataRoot = mainResource.GetResourceDataRoot()+"/"+gameType+"/"+gameName+"/GameData"

        rootAndroidStudio =mainResource.GetRootDirAndroidStudio()
        rootiOSXcode =mainResource.GetRootDirXcode()

        # copy GameRes 游戏图片等资源
        dirname = "GameRes"

        # unity editor 
        dir1 = gameResRoot
        dir2 = mainResource.GetRootUnityAssetsResource()+"/"+dirname
        flag = os.path.exists(dir2)
        print("GameRes dir1="+dir1+" dir2="+dir2)
        if flag:
            shutil.rmtree(dir2)
        shutil.copytree(dir1,dir2)

        # ios
        dir2 = rootiOSXcode+"/Data/Raw/"+dirname
        flag = os.path.exists(dir2)
        if flag:
            shutil.rmtree(dir2)
        shutil.copytree(dir1,dir2)

    # android asset
        dir2 = rootAndroidStudio+"/src/main/assets/"+dirname
        flag = os.path.exists(dir2)
        if flag:
            shutil.rmtree(dir2)
        shutil.copytree(dir1,dir2)


    # copy GameData 游戏配置等数据 
        dirname = "GameData"

        # unity editor 
        # dir1 = gameDataRoot
        # dir2 = streamingAssetsUnity+"/"+dirname
        # flag = os.path.exists(dir2)
        # if flag:
        #     shutil.rmtree(dir2)
        # shutil.copytree(dir1,dir2)

        # ios
        # dir2 = rootiOSXcode+"/Data/Raw/"+dirname
        # flag = os.path.exists(dir2)
        # if flag:
        #     shutil.rmtree(dir2)
        # shutil.copytree(dir1,dir2)

    # android asset
        dir2 = rootAndroidStudio+"/src/main/assets/"+dirname
        flag = os.path.exists(dir2)
        if flag:
            shutil.rmtree(dir2)
        print("gamedata dir2=",dir2)
        shutil.copytree(dir1,dir2)


        dirname = "GameData/common"

        # unity editor 
        # dir1 = gameDataCommonRoot
        # dir2 = streamingAssetsUnity+"/"+dirname
        # flag = os.path.exists(dir2)
        # if flag:
        #     shutil.rmtree(dir2)
        # shutil.copytree(dir1,dir2)

        # ios
        # dir2 = rootiOSXcode+"/Data/Raw/"+dirname
        # flag = os.path.exists(dir2)
        # if flag:
        #     shutil.rmtree(dir2)
        # shutil.copytree(dir1,dir2)

    # android asset
        dir2 = rootAndroidStudio+"/src/main/assets/"+dirname
        flag = os.path.exists(dir2)
        if flag:
            shutil.rmtree(dir2)
        shutil.copytree(dir1,dir2)

        self.CopyConfigDataToAndroid()