sdk 版本号

This commit is contained in:
luojian 2025-07-07 22:25:45 +08:00
parent 8a2ebc472e
commit ced5e1b4bf
3 changed files with 75 additions and 2 deletions

View File

@ -1,4 +1,10 @@
certifi==2025.6.15
charset-normalizer==3.4.2
gitdb==4.0.12 gitdb==4.0.12
GitPython==3.1.44 GitPython==3.1.44
idna==3.10
javaproperties==0.8.2 javaproperties==0.8.2
lxml==6.0.0
requests==2.32.4
smmap==5.0.2 smmap==5.0.2
urllib3==2.5.0

View File

@ -28,6 +28,9 @@ class Context:
config: any = None config: any = None
sdk_version: str = ""
sdk_prolink_version: str = ""
@classmethod @classmethod
def from_json(cls, json_str: str): def from_json(cls, json_str: str):
data = json.loads(json_str) data = json.loads(json_str)

View File

@ -3,6 +3,8 @@ from pathlib import Path
import re import re
import javaproperties import javaproperties
import requests
from lxml import etree
from scripts.context import Context from scripts.context import Context
from scripts.task import Task from scripts.task import Task
@ -10,6 +12,35 @@ from utils import FileUtils
from utils.logger_utils import app_logger from utils.logger_utils import app_logger
def update_dependency_version(content, dependency_name, new_version):
"""
更新 Gradle 依赖的版本号
:param content: Gradle 文件内容
:param dependency_name: 依赖名称可以是完整字符串或部分匹配
:param new_version: 新版本号
:return: 更新后的内容
"""
# 匹配 implementation 声明,捕获组用于保留前缀和后缀
pattern = rf"(implementation\s*\(\s*['\"]{re.escape(dependency_name)}:)([^'\"]+)(['\"]\s*\))"
# 替换版本号部分
updated_content = re.sub(pattern, rf"\g<1>{new_version}\g<3>", content)
return updated_content
def get_latest_version(url):
try:
response = requests.get(url)
root = etree.fromstring(response.content)
latest = root.xpath("//latest/text()") or root.xpath("//version[last()]/text()")
return latest[0] if latest else None
except Exception as e:
app_logger().error(f"Error: {e}")
return None
def uncomment_line(content, line_pattern): def uncomment_line(content, line_pattern):
""" """
取消指定行的注释 取消指定行的注释
@ -217,7 +248,8 @@ storePassword=123456
text = text.replace("WebActivity", "com.unity3d.player.UnityPlayerActivity") text = text.replace("WebActivity", "com.unity3d.player.UnityPlayerActivity")
open(os.path.join(self.context.temp_project_path, GAME_ACTIVITY_PATH), "w", encoding="utf-8").write(text) open(os.path.join(self.context.temp_project_path, GAME_ACTIVITY_PATH), "w", encoding="utf-8").write(text)
text = open(os.path.join(self.context.temp_project_path, ANDROID_MANIFEST_PATH), "r", encoding="utf-8").read() text = open(os.path.join(self.context.temp_project_path, ANDROID_MANIFEST_PATH), "r",
encoding="utf-8").read()
# text = text.replace("WebActivity", "com.unity3d.player.UnityPlayerActivity") # text = text.replace("WebActivity", "com.unity3d.player.UnityPlayerActivity")
open(os.path.join(self.context.temp_project_path, ANDROID_MANIFEST_PATH), "w", encoding="utf-8").write(text) open(os.path.join(self.context.temp_project_path, ANDROID_MANIFEST_PATH), "w", encoding="utf-8").write(text)
@ -275,12 +307,16 @@ storePassword=123456
text = update_gradle_property(text, "derived_app_name", self.context.get_app_name()) text = update_gradle_property(text, "derived_app_name", self.context.get_app_name())
text = update_gradle_variable(text, "versionDisplayName", self.context.version_display_name) text = update_gradle_variable(text, "versionDisplayName", self.context.version_display_name)
text = update_gradle_variable(text, "version_code", self.context.version_code) text = update_gradle_variable(text, "version_code", self.context.version_code)
# text = text. text = update_dependency_version(text, f"straw:hachisdk_unity_{self.context.package_name}",
self.context.sdk_prolink_version)
text = update_dependency_version(text, f"com.game:hachisdk_unity_{self.context.package_name}",
self.context.sdk_version)
open(build_gradle_path, "w", encoding="UTF-8").write(text) open(build_gradle_path, "w", encoding="UTF-8").write(text)
pass pass
def execute(self): def execute(self):
self.build_gradle_path = os.path.join(self.context.temp_project_path, "build.gradle") self.build_gradle_path = os.path.join(self.context.temp_project_path, "build.gradle")
self.init_sdk_version()
self.update_package_name() self.update_package_name()
self.update_keystore() self.update_keystore()
self.update_config() self.update_config()
@ -289,3 +325,31 @@ storePassword=123456
self.update_game_result() self.update_game_result()
self.update_gradle_config() self.update_gradle_config()
pass pass
def get_sdk_version(self) -> str:
for i in range(3):
try:
url = f"https://repo.dgtverse.cn/repository/tk_my/com/game/hachisdk_unity_{self.context.package_name}/maven-metadata.xml"
version = get_latest_version(url)
if version:
return version
pass
except Exception as e:
pass
raise Exception("sdk error.")
def get_prolink_version(self) -> str:
for i in range(3):
try:
url = f"https://repo.dgtverse.cn/repository/tk_my/straw/hachisdk_unity_{self.context.package_name}/maven-metadata.xml"
version = get_latest_version(url)
if version:
return version
except Exception as e:
pass
raise Exception("sdk prolink error.")
def init_sdk_version(self):
self.context.sdk_version = self.get_sdk_version()
self.context.sdk_prolink_version = self.get_prolink_version()
pass