实现将 HMCL 在 macOS 中打包为 App Bundle 疑难杂症与解决方案讨论 #4968
Replies: 6 comments 13 replies
-
|
HMCL以及PCL等便携式的启动器打包到 bundle 里面没什么好处吧,纯增加下载时的体积。 虽然 app bundle 可以自带 jre,但是启动游戏本来就需要自己安装 Java ,启动器带不带没啥太大的区别吧? |
Beta Was this translation helpful? Give feedback.
-
|
弄了个自动化打包 dmg,但单纯就是启动方便点,不用手搓命令行了,没有解决 |
Beta Was this translation helpful? Give feedback.
-
或许可以参考 Terracotta 的安装方式,通过
可以为每个版本都提供一个签过名的 App Bundle,在更新时直接替换 App Bundle 本体,但这样需要调整更新服务器的逻辑 |
Beta Was this translation helpful? Give feedback.
-
|
关于游戏模式,仅修改启动器的 App Category 可能并不够,它只对启动器本身生效,无法传递到 Minecraft 上。详见 PrismLauncher/PrismLauncher#1644 (comment) |
Beta Was this translation helpful? Give feedback.
-
|
发现一个重要问题,就是macOS中被一些软件(比如Safari)下载的app会被打上quarantine标签,然后运行时就有可能受到App Translocation,也就是给你拷贝到神秘位置再运行,而且会加上很多限制,比如说这个神秘位置是只读的 只有通过访达将App不和其他文件一起,不随父文件夹一起移动离开最初被解压出的位置才会解除Translocation。或者直接去掉quarantine标签也行 HMCL如果以App Bundle形式分发,也会受到Translocation的影响 |
Beta Was this translation helpful? Give feedback.
-
|
注意到 #5987 的合并,未来可以在 App Bundle 启动 Launcher 时强制给 HMCL 传入相应的环境变量到更加合适的 |
Beta Was this translation helpful? Give feedback.

Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
-
为何要实现?
应 #4450 需求,我也注意到 Glavo 的视频下面偶见用户请求 macOS 使用 App Bundle 分发 HMCL
另外,我还注意到要实现以下功能,必须先实现打包为 App Bundle 这一步:
好处与坏处,详见:#4450 (comment)
问题 / 疑难杂症:
1. HMCL 本体该存放在哪?
随着 #4765 的 Close,代表着 ShulkerSakura/HMCL-MacOS/ 所提供的解决方案不可行,尤其是此项目的解决方案对 macOS 本身就是不合法的(它给人的感觉就是 Windows 下把所有配置文件存放在 EXE 可执行文件内),并且此方法除了可能的权限问题,在添加签名后几乎很难避免报应用程序损坏的错误
2. HMCL 更新(包括 App Bundle 本体)
上面提到的项目解决方案因为权限也可能面临无法更新
解决方案:#4450 (comment)
可能还有更多问题需要解决
Beta Was this translation helpful? Give feedback.
All reactions