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)
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")
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()