release: v2.1.0

This commit is contained in:
X1a0He
2025-07-20 13:14:55 +08:00
parent 4748a29676
commit 9dc414c137
11 changed files with 140 additions and 51 deletions

View File

@@ -24,7 +24,7 @@
3C60E1C22CE3AA0B00600C07 /* CopyFiles */ = {
isa = PBXCopyFilesBuildPhase;
buildActionMask = 2147483647;
dstPath = Contents/Library/LaunchServices;
dstPath = Contents/Library/LaunchDaemons;
dstSubfolderSpec = 1;
files = (
3C60E1C32CE3AA1B00600C07 /* com.x1a0he.macOS.Adobe-Downloader.helper in CopyFiles */,
@@ -48,9 +48,22 @@
};
/* End PBXFileSystemSynchronizedBuildFileExceptionSet section */
/* Begin PBXFileSystemSynchronizedGroupBuildPhaseMembershipExceptionSet section */
3C4396F72E2C0AC20052FBEB /* Exceptions for "AdobeDownloaderHelperTool" folder in "Copy Files" phase from "Adobe Downloader" target */ = {
isa = PBXFileSystemSynchronizedGroupBuildPhaseMembershipExceptionSet;
buildPhase = 3C60E1C22CE3AA0B00600C07 /* CopyFiles */;
membershipExceptions = (
"com.x1a0he.macOS.Adobe-Downloader.helper.plist",
);
};
/* End PBXFileSystemSynchronizedGroupBuildPhaseMembershipExceptionSet section */
/* Begin PBXFileSystemSynchronizedRootGroup section */
3C60E16E2CE3A6CB00600C07 /* AdobeDownloaderHelperTool */ = {
isa = PBXFileSystemSynchronizedRootGroup;
exceptions = (
3C4396F72E2C0AC20052FBEB /* Exceptions for "AdobeDownloaderHelperTool" folder in "Copy Files" phase from "Adobe Downloader" target */,
);
path = AdobeDownloaderHelperTool;
sourceTree = "<group>";
};
@@ -165,7 +178,7 @@
attributes = {
BuildIndependentTargetsInParallel = 1;
LastSwiftUpdateCheck = 1610;
LastUpgradeCheck = 1620;
LastUpgradeCheck = 1640;
TargetAttributes = {
3C60E16C2CE3A6CB00600C07 = {
CreatedOnToolsVersion = 16.1;
@@ -232,7 +245,6 @@
CODE_SIGN_ENTITLEMENTS = AdobeDownloaderHelperTool/AdobeDownloaderHelperTool.entitlements;
"CODE_SIGN_IDENTITY[sdk=macosx*]" = "Apple Development";
CODE_SIGN_STYLE = Automatic;
DEVELOPMENT_TEAM = TG862GVKHK;
ENABLE_HARDENED_RUNTIME = NO;
ENABLE_USER_SCRIPT_SANDBOXING = NO;
INFOPLIST_FILE = AdobeDownloaderHelperTool/Info.plist;
@@ -251,6 +263,7 @@
);
PRODUCT_BUNDLE_IDENTIFIER = "com.x1a0he.macOS.Adobe-Downloader.helper";
PRODUCT_NAME = "com.x1a0he.macOS.Adobe-Downloader.helper";
REGISTER_APP_GROUPS = YES;
SWIFT_VERSION = 5.0;
};
name = Debug;
@@ -261,7 +274,6 @@
CODE_SIGN_ENTITLEMENTS = AdobeDownloaderHelperTool/AdobeDownloaderHelperTool.entitlements;
"CODE_SIGN_IDENTITY[sdk=macosx*]" = "Apple Development";
CODE_SIGN_STYLE = Automatic;
DEVELOPMENT_TEAM = TG862GVKHK;
ENABLE_HARDENED_RUNTIME = NO;
ENABLE_USER_SCRIPT_SANDBOXING = NO;
INFOPLIST_FILE = AdobeDownloaderHelperTool/Info.plist;
@@ -279,6 +291,7 @@
);
PRODUCT_BUNDLE_IDENTIFIER = "com.x1a0he.macOS.Adobe-Downloader.helper";
PRODUCT_NAME = "com.x1a0he.macOS.Adobe-Downloader.helper";
REGISTER_APP_GROUPS = YES;
SWIFT_VERSION = 5.0;
};
name = Release;
@@ -319,6 +332,7 @@
COPY_PHASE_STRIP = NO;
DEAD_CODE_STRIPPING = YES;
DEBUG_INFORMATION_FORMAT = dwarf;
DEVELOPMENT_TEAM = TG862GVKHK;
ENABLE_STRICT_OBJC_MSGSEND = YES;
ENABLE_TESTABILITY = YES;
ENABLE_USER_SCRIPT_SANDBOXING = NO;
@@ -384,6 +398,7 @@
COPY_PHASE_STRIP = NO;
DEAD_CODE_STRIPPING = YES;
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
DEVELOPMENT_TEAM = TG862GVKHK;
ENABLE_NS_ASSERTIONS = NO;
ENABLE_STRICT_OBJC_MSGSEND = YES;
ENABLE_USER_SCRIPT_SANDBOXING = NO;
@@ -416,10 +431,9 @@
"CODE_SIGN_IDENTITY[sdk=macosx*]" = "Apple Development";
CODE_SIGN_STYLE = Automatic;
COMBINE_HIDPI_IMAGES = YES;
CURRENT_PROJECT_VERSION = 202;
CURRENT_PROJECT_VERSION = 210;
DEAD_CODE_STRIPPING = YES;
DEVELOPMENT_ASSET_PATHS = "\"Adobe Downloader/Preview Content\"";
DEVELOPMENT_TEAM = TG862GVKHK;
ENABLE_HARDENED_RUNTIME = NO;
ENABLE_PREVIEWS = YES;
ENABLE_USER_SCRIPT_SANDBOXING = NO;
@@ -431,8 +445,8 @@
"$(inherited)",
"@executable_path/../Frameworks",
);
MACOSX_DEPLOYMENT_TARGET = 12.0;
MARKETING_VERSION = 2.0.2;
MACOSX_DEPLOYMENT_TARGET = 13.0;
MARKETING_VERSION = 2.1;
PRODUCT_BUNDLE_IDENTIFIER = "com.x1a0he.macOS.Adobe-Downloader";
PRODUCT_NAME = "$(TARGET_NAME)";
SWIFT_EMIT_LOC_STRINGS = YES;
@@ -450,10 +464,9 @@
"CODE_SIGN_IDENTITY[sdk=macosx*]" = "Apple Development";
CODE_SIGN_STYLE = Automatic;
COMBINE_HIDPI_IMAGES = YES;
CURRENT_PROJECT_VERSION = 202;
CURRENT_PROJECT_VERSION = 210;
DEAD_CODE_STRIPPING = YES;
DEVELOPMENT_ASSET_PATHS = "\"Adobe Downloader/Preview Content\"";
DEVELOPMENT_TEAM = TG862GVKHK;
ENABLE_HARDENED_RUNTIME = NO;
ENABLE_PREVIEWS = YES;
ENABLE_USER_SCRIPT_SANDBOXING = NO;
@@ -465,8 +478,8 @@
"$(inherited)",
"@executable_path/../Frameworks",
);
MACOSX_DEPLOYMENT_TARGET = 12.0;
MARKETING_VERSION = 2.0.2;
MACOSX_DEPLOYMENT_TARGET = 13.0;
MARKETING_VERSION = 2.1;
PRODUCT_BUNDLE_IDENTIFIER = "com.x1a0he.macOS.Adobe-Downloader";
PRODUCT_NAME = "$(TARGET_NAME)";
SWIFT_EMIT_LOC_STRINGS = YES;

View File

@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<Scheme
LastUpgradeVersion = "1620"
LastUpgradeVersion = "1640"
version = "1.7">
<BuildAction
parallelizeBuildables = "YES"
@@ -31,7 +31,7 @@
shouldAutocreateTestPlan = "YES">
</TestAction>
<LaunchAction
buildConfiguration = "Debug"
buildConfiguration = "Release"
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
launchStyle = "0"

View File

@@ -20,22 +20,6 @@
landmarkType = "0">
</BreakpointContent>
</BreakpointProxy>
<BreakpointProxy
BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
<BreakpointContent
uuid = "1C96B561-A597-47BB-9DD8-F398805CB1B5"
shouldBeEnabled = "No"
ignoreCount = "0"
continueAfterRunningActions = "No"
filePath = "Adobe Downloader/Utils/InstallManager.swift"
startingColumnNumber = "9223372036854775807"
endingColumnNumber = "9223372036854775807"
startingLineNumber = "81"
endingLineNumber = "81"
landmarkName = "getAdobeInstallLogDetails()"
landmarkType = "7">
</BreakpointContent>
</BreakpointProxy>
<BreakpointProxy
BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
<BreakpointContent

View File

@@ -110,7 +110,7 @@ struct CleanConfigView: View {
if helperStatus == .installed {
ModernPrivilegedHelperManager.shared.executeCommand("open -a Terminal \(scriptURL.path)") { output in
if output.starts(with: "Error") {
alertMessage = "清空配置失败: \(output)"
alertMessage = String(localized: "清空配置失败: \(output)")
showAlert = true
} else {
DispatchQueue.main.asyncAfter(deadline: .now() + 0.5) {
@@ -136,7 +136,7 @@ struct CleanConfigView: View {
}
} catch {
alertMessage = "清空配置失败: \(error.localizedDescription)"
alertMessage = String(localized: "清空配置失败: \(error.localizedDescription)")
showAlert = true
}
}

View File

@@ -101,7 +101,7 @@ struct CustomDownloadView: View {
for dependencyInfo in dependencyInfos {
await MainActor.run {
loadingState.currentTask = "正在处理 \(dependencyInfo.sapCode) 的包信息..."
loadingState.currentTask = String(localized: "正在处理 \(dependencyInfo.sapCode) 的包信息...")
}
let jsonString = try await globalNetworkService.getApplicationInfo(buildGuid: dependencyInfo.buildGuid)

View File

@@ -141,7 +141,7 @@ struct NavigationCustomDownloadView: View {
for dependencyInfo in dependencyInfos {
await MainActor.run {
loadingState.currentTask = "正在处理 \(dependencyInfo.sapCode) 的包信息..."
loadingState.currentTask = String(localized: "正在处理 \(dependencyInfo.sapCode) 的包信息...")
}
let jsonString = try await globalNetworkService.getApplicationInfo(buildGuid: dependencyInfo.buildGuid)

View File

@@ -1654,7 +1654,7 @@
"en" : {
"stringUnit" : {
"state" : "translated",
"value" : "Existed"
"value" : "Exists"
}
}
}
@@ -2570,7 +2570,6 @@
}
},
"正在处理 %@ 的包信息..." : {
"extractionState" : "stale",
"localizations" : {
"en" : {
"stringUnit" : {
@@ -2779,6 +2778,9 @@
}
}
}
},
"没有写入权限" : {
},
"没有找到产品" : {
"localizations" : {
@@ -2871,6 +2873,16 @@
}
}
},
"清空配置失败: %@" : {
"localizations" : {
"en" : {
"stringUnit" : {
"state" : "translated",
"value" : "Failed to clear configuration: %@"
}
}
}
},
"点击切换选择状态" : {
"localizations" : {
"en" : {
@@ -3027,7 +3039,7 @@
"en" : {
"stringUnit" : {
"state" : "translated",
"value" : "Confirm Cancel"
"value" : "Confirm"
}
}
}
@@ -3266,6 +3278,9 @@
}
}
}
},
"自行安装命令" : {
},
"自行安装命令:" : {
"localizations" : {
@@ -3544,6 +3559,16 @@
}
}
},
"选择要清理的内容" : {
"localizations" : {
"en" : {
"stringUnit" : {
"state" : "translated",
"value" : "Select the content to clean up"
}
}
}
},
"通用" : {
"localizations" : {
"en" : {
@@ -3634,6 +3659,16 @@
}
}
},
"重置程序" : {
"localizations" : {
"en" : {
"stringUnit" : {
"state" : "translated",
"value" : "Reset Program"
}
}
}
},
"重试" : {
"localizations" : {
"en" : {

View File

@@ -2,6 +2,38 @@
<rss xmlns:sparkle="http://www.andymatuschak.org/xml-namespaces/sparkle" version="2.0">
<channel>
<title>Adobe Downloader</title>
<item>
<title>2.1</title>
<pubDate>Sun, 20 Jul 2025 13:05:23 +0800</pubDate>
<sparkle:version>210</sparkle:version>
<sparkle:shortVersionString>2.1</sparkle:shortVersionString>
<sparkle:minimumSystemVersion>13.0</sparkle:minimumSystemVersion>
<enclosure url="https://github.com/X1a0He/Adobe-Downloader/releases/download/2.1.0/Adobe.Downloader.dmg" length="4859082" type="application/octet-stream" sparkle:edSignature="/kj3r/o+4sZSlFxS0/T0tI3ju7pKD1oFeJNhUh9++gafwnDYY1mVVy0CRzetVU3R6jw9uz+liEvl6rYmkrKKCg=="/>
<description>
<![CDATA[
<style>ul{margin-top: 0;margin-bottom: 7;padding-left: 18;}</style>
<h4>Adobe Downloader 更新日志: </h4>
<ul>
<li>1. 新增安装前终止 Setup 的特性</li>
<li>2. 新增并发下载数控制</li>
<li>3. 重写版本选择界面,采用 NavigationStack 的特性支持版本选择和自定义包选择</li>
<li>4. 重写下载逻辑,支持线程池 + 分片的单任务多个包同时下载</li>
<li>5. 重写 Helper 逻辑,使用 macOS 13.0+ 的 SMAppService 新特性</li>
<li>6. 调整 Helper 链接状态的呼吸灯表现</li>
</ul>
<hr>
<h4>Adobe Downloader Changes: </h4>
<ul>
<li>1. Added feature to cancel Setup before installation.</li>
<li>2. Added concurrency control for downloads.</li>
<li>3. Rewritten version selection interface using NavigationStack with package customization.</li>
<li>4. Rewritten download logic with thread pooling + segmented downloading for parallel package fetching.</li>
<li>5. Rewritten Helper logic using SMAppService \(macOS 13.0+\).</li>
<li>6. Refined breathing light indicator for Helper connection status.</li>
</ul>
]]>
</description>
</item>
<item>
<title>2.0.2</title>
<pubDate>Wed, 23 Apr 2025 23:06:42 +0800</pubDate>

View File

@@ -8,7 +8,8 @@
> ⚠️ This repository does not support any PR submission
**🍎Only for macOS 12.0+.**
**Due to the rewritten Helper in v2.1, the minimum macOS requirement is now 13.0+ (no longer supports 12.0).**
**🍎Only for macOS 13.0+.**
> **If you like Adobe Downloader, or it helps you, please Star🌟 it.**
>
@@ -67,14 +68,15 @@ when prompted.
- For historical update logs, please go to [Update Log](update-log.md)
- 2025-04-23 Update Log
- 2025-07-20 Update Log
```markdown
1. Fixed an issue where dependency package detection on Intel-based models mistakenly identified osx10 as ARM architecture, leading to incorrect downloads.
2. Resolved text display issues in the settings interface header.
3. Adjusted the height of the download management interface from 500 to 600.
4. Added functionality to copy all product and package list information in download tasks.
5. Optimized display handling for the product Substance Alchemist.
1. Added feature to cancel Setup before installation.
2. Added concurrency control for downloads.
3. Rewritten version selection interface using NavigationStack with package customization.
4. Rewritten download logic with thread pooling + segmented downloading for parallel package fetching.
5. Rewritten Helper logic using SMAppService \(macOS 13.0+\).
6. Refined breathing light indicator for Helper connection status.
```
### Language friendly

View File

@@ -8,7 +8,8 @@
> ⚠️ 本仓库不支持任何 Pr 提交
**🍎仅支持 macOS 12.0+**
**由于 2.1 版本重写了 Helper所以最低支持版本不再为 macOS 12.0+**
**🍎仅支持 macOS 13.0+**
> **如果你也喜欢 Adobe Downloader, 或者对你有帮助, 请 Star 仓库吧 🌟, 你的支持是我更新的动力**
>
@@ -57,14 +58,15 @@
- 更多关于 App 的更新日志,请查看 [Update Log](update-log.md)
- 2025-04-23 更新日志
- 2025-07-20 更新日志
```markdown
1. 修复了 Intel 机型下依赖包判断遇到 osx10 被误判为 arm 导致下载错误的问题
2. 修复了设置界面上方的文字显示问题
3. 调整下载管理界面的高度: 500 -> 600
4. 新增下载任务复制所有产品和包列表信息
5. 优化产品 Substance Alchemist 的显示问题
1. 新增安装前终止 Setup 的特性
2. 新增并发下载数控制
3. 重写版本选择界面,采用 NavigationStack 的特性支持版本选择和自定义包选择
4. 重写下载逻辑,支持线程池 + 分片的单任务多个包同时下载
5. 重写 Helper 逻辑,使用 macOS 13.0+ 的 SMAppService 新特性
6. 调整 Helper 链接状态的呼吸灯表现
```
### 语言支持

View File

@@ -1,5 +1,26 @@
# Change Log
## 2025-07-20 更新日志
[//]: # (2.1)
```markdown
1. 新增安装前终止 Setup 的特性
2. 新增并发下载数控制
3. 重写版本选择界面,采用 NavigationStack 的特性支持版本选择和自定义包选择
4. 重写下载逻辑,支持线程池 + 分片的单任务多个包同时下载
5. 重写 Helper 逻辑,使用 macOS 13.0+ 的 SMAppService 新特性
6. 调整 Helper 链接状态的呼吸灯表现
====================
1. Added feature to cancel Setup before installation.
2. Added concurrency control for downloads.
3. Rewritten version selection interface using NavigationStack with package customization.
4. Rewritten download logic with thread pooling + segmented downloading for parallel package fetching.
5. Rewritten Helper logic using SMAppService \(macOS 13.0+\).
6. Refined breathing light indicator for Helper connection status.
```
## 2025-04-23 更新日志
[//]: # (2.0.2)