修复打包签名并支持 App Store IPA 上传

This commit is contained in:
shenlei
2026-07-20 14:16:45 +09:00
parent 7fd3845447
commit 2661435273
6 changed files with 156 additions and 56 deletions
+9 -3
View File
@@ -1,4 +1,4 @@
"""服务端 Ad_Hoc 分发:OSS/WebDAV 上传、manifest、下载页和二维码"""
"""服务端 IPA 分发:App Store IPA 直传及 Ad Hoc 安装页发布"""
import json
import plistlib
import posixpath
@@ -127,7 +127,7 @@ def _upload_oss(config: dict, files: list[tuple[Path, str]]) -> dict[str, str]:
def publish_ipa(config: dict, ipa_path: Path, build_dir: Path) -> tuple[str, str]:
"""发布 IPA,返回下载 URL 与二维码本地路径。"""
"""发布 IPA,返回下载 URL 与二维码本地路径。"""
upload = config.get("_upload_config", {})
mode = upload.get("mode", "")
if mode not in {"oss", "webdav"}:
@@ -137,8 +137,14 @@ def publish_ipa(config: dict, ipa_path: Path, build_dir: Path) -> tuple[str, str
ipa_file, manifest, html = _write_distribution_files(config, ipa_path, output_dir)
ipa_remote, manifest_remote, html_remote = _remote_paths(config)
# manifest 依赖 IPA URL,先发布 IPA。
uploader = _upload_oss if mode == "oss" else _upload_webdav
# App Store 包只需要提供 IPA 下载地址,不能生成 itms-services 安装页。
if config.get("BUILD_TYPE") == "App_Store":
urls = uploader(upload, [(ipa_file, ipa_remote)])
return urls[".ipa"], ""
# Ad Hoc manifest 依赖 IPA URL,先发布 IPA。
urls = uploader(upload, [(ipa_file, ipa_remote)])
_write_manifest(config, manifest, urls[".ipa"])
urls.update(uploader(upload, [(manifest, manifest_remote)]))