【发布时间】:2021-03-19 22:09:36
【问题描述】:
我能够使用 Deno 从 Windows 10 创建 PC 和 Mac 可执行文件就好了:
"deno.exe" compile --unstable --allow-all --target x86_64-pc-windows-msvc --output myapp_x86pc myapp.js
"deno.exe" compile --unstable --allow-all --target x86_64-apple-darwin --output myapp_x86mac myapp.js
"deno.exe" compile --unstable --allow-all --target aarch64-apple-darwin --output myapp_aarchmac myapp.js
但是如何在 Mac 上实际测试和运行生成的二进制文件?该文件是否需要特定的扩展名,或者是否需要以某种方式打包或签名才能运行?
尝试通过 finder 运行 myapp_x86mac 会导致出现关于未知开发人员 ID 的对话框,我似乎可以添加一个安全异常,但它仍然无法运行。尝试从终端运行它只会导致 zsh: Permission denied。
是否有可能在没有完整的 Apple 开发环境的情况下创建一个可以工作的 Deno OSX 可执行文件?就此而言,我没有 Mac 或 Apple ID,需要借用 Mac 进行测试,所以我不能对这台机器搞太多。我只想要一些易于在各种机器上分发和运行的东西,但对于有限的受众,所以我想避免完整的 Apple Store 发布“体验”。
【问题讨论】:
-
文件可能需要添加执行权限 (
chmod +x /path/to/binary) 和/或删除隔离限制 (xattr -d com.apple.quarantine /path/to/binary)。运行ls -leO@ /path/to/binary将为您提供有关其权限和属性的更多信息。您可以通过搜索Ask Different 以及 Stackexchange 找到有关 macOS 应用程序安全性的更多信息。 -
@GordonDavisson 谢谢,执行权限位听起来可能是潜在的罪魁祸首。自从我搞乱 linux 类型的系统以来已经有几年了,所以我没有考虑过。我试图探索 mac 文件属性 UI 和那里的权限,但这似乎更像 ACL,并且只有读/写控制。一旦我可以再次借用 Mac,我会尝试 chmod/xattr 方法:)
-
Finder 的信息窗口提供了文件权限的简化视图,只是省略了大多数标志和 xattrs 等内容;
ls -leO@提供了更完整的图片。 -
@GordonDavisson 你说得对,问题很简单,需要用
chmod +x设置执行权限!