fix: 修复 macOS 发布包权限并完善文件兼容 #3

Open
JoJo wants to merge 1 commits from JoJo/ncmdump-go:codex/macos-support into main
First-time contributor

现有 v1.7.5 Darwin ARM64 发布包内的二进制权限为 0644,macOS 解压后运行报 permission denied。本次将 Unix 发布包权限固定为 0755,并在打包时校验,确保权限异常会使构建失败。

改动:

  • 保留 Darwin ARM64 / AMD64、Linux ARM64 / AMD64 和 Windows AMD64 五个构建目标,支持版本号注入与输出目录配置。
  • 发布脚本启用失败即退出,兼容 GNU tar 与 macOS BSD tar,并缩小清理范围。
  • 跳过 macOS 的 ._*.ncm AppleDouble 文件,支持大小写扩展名,修复短文件名切片越界,并补充测试。
  • 补充 macOS 架构选择、安装及源码构建说明。

验证:

  • Apple Silicon macOS 上 go test ./...、go vet ./...、bash -n build.sh、git diff --check 通过。
  • 完整运行 build.sh,五个目标均构建成功;两种 Darwin 包均为 0755,Mach-O 架构正确。ARM64 解压后直接运行 --version 成功。
  • 使用 https://github.com/taurusxin/ncmdump/issues/63 中公开的 macOS 网易云 3.x 样本完成单文件及递归转换;afinfo 可读取生成 FLAC 的 44.1 kHz 双声道和 173.08 秒信息。afinfo 检查不代表完整解码或试听验证。
  • Intel Mac 仅验证交叉编译及包结构,未进行 Intel 实机运行;Windows 的 GNU tar 分支未在 Windows 实机执行。

未增加 Apple Developer ID 签名或公证。

现有 v1.7.5 Darwin ARM64 发布包内的二进制权限为 0644,macOS 解压后运行报 permission denied。本次将 Unix 发布包权限固定为 0755,并在打包时校验,确保权限异常会使构建失败。 改动: - 保留 Darwin ARM64 / AMD64、Linux ARM64 / AMD64 和 Windows AMD64 五个构建目标,支持版本号注入与输出目录配置。 - 发布脚本启用失败即退出,兼容 GNU tar 与 macOS BSD tar,并缩小清理范围。 - 跳过 macOS 的 ._*.ncm AppleDouble 文件,支持大小写扩展名,修复短文件名切片越界,并补充测试。 - 补充 macOS 架构选择、安装及源码构建说明。 验证: - Apple Silicon macOS 上 go test ./...、go vet ./...、bash -n build.sh、git diff --check 通过。 - 完整运行 build.sh,五个目标均构建成功;两种 Darwin 包均为 0755,Mach-O 架构正确。ARM64 解压后直接运行 --version 成功。 - 使用 https://github.com/taurusxin/ncmdump/issues/63 中公开的 macOS 网易云 3.x 样本完成单文件及递归转换;afinfo 可读取生成 FLAC 的 44.1 kHz 双声道和 173.08 秒信息。afinfo 检查不代表完整解码或试听验证。 - Intel Mac 仅验证交叉编译及包结构,未进行 Intel 实机运行;Windows 的 GNU tar 分支未在 Windows 实机执行。 未增加 Apple Developer ID 签名或公证。
JoJo added 1 commit 2026-09-07 16:15:09 +08:00
动机:解决苹果系统发布包缺少执行权限和特殊文件误处理问题。
改动:校验发布包权限,支持两类芯片架构并改进文件识别。
影响:苹果系统可直接运行发布包,其他平台构建与使用方式兼容。
验证:运行 go test ./...、go vet ./... 和完整发布构建,结果通过。
关联:无
You are not authorized to merge this pull request.
This pull request can be merged automatically.
View command line instructions

Checkout

From your project repository, check out a new branch and test the changes.
git fetch -u https://git.taurusxin.com/JoJo/ncmdump-go codex/macos-support:JoJo-codex/macos-support
git checkout JoJo-codex/macos-support
Sign in to join this conversation.
No Reviewers
No labels
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: taurusxin/ncmdump-go#3