如何将 Rust 编译生成的二进制文件打包为 Mac 平台的 APP? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
LeeeSe
V2EX    Apple

如何将 Rust 编译生成的二进制文件打包为 Mac 平台的 APP?

  •  
  •   LeeeSe 2022 年 12 月 15 日 3210 次点击
    这是一个创建于 1226 天前的主题,其中的信息可能已经有所发展或是发生改变。
    试用了 cargo-bundle 库,发现打包出来的 aarch64 架构包无法在别的电脑上使用,只能自己使用,反而打包出来的 x86_64 应用可以通过转译在别的电脑上运行。楼主是 Rust 新手,暂时找不到原因。

    话说有没有更通用的办法,比如脱离 Rust 使用 Xcode ?
    8 条回复    2022-12-15 23:07:30 +08:00
    lscho
        1
    lscho  
       2022 年 12 月 15 日
    不能运行的提示什么?
    LeeeSe
        2
    LeeeSe  
    OP
       2022 年 12 月 15 日
    @lscho 直接提示安装包已损坏,请丢进垃圾篓
    LeeeSe
        3
    LeeeSe  
    OP
       2022 年 12 月 15 日
    具体原因是写了一款小工具,想要分享给大家,但是竟然失败在软件打包分发问题上,希望有能力的朋友可以出谋划策,我想让这个小工具让大家都方便地用上。
    t/902728#;
    lscho
        4
    lscho  
       2022 年 12 月 15 日   1
    @LeeeSe 这和 Rust 没关系,macOS 默认会对可执行文件进行签名检测,没有签名(比如你直接打包)或者签名与文件不符合(比如破解版软件)都会报这个错误。关闭系统完整性保护( SIP )或者手动去除可执行文件的隔离属性就可以了。用这个:sudo xattr -d com.apple.quarantine /Applications/xxx.app

    具体你用安装包已损坏,请丢进垃圾篓搜一下就知道了
    lscho
        5
    lscho  
       2022 年 12 月 15 日
    如果你想分享给网友使用,建议用 brew 方式,你列的那个帖子里已经有大佬推荐了。如果用下载方式,macOS 会自动打上 com.apple.quarantine 这个隔离标志,应该是你必须用开发者证书签名才行。
    LeeeSe
        6
    LeeeSe  
    OP
       2022 年 12 月 15 日
    @lscho 感谢你的认真回答。你所说的命令我确实搜到过,但大都是互相抄写,没有说明具体原因(好在你告诉我了),并且有些麻烦不是比较好的解决方案;至于我的帖子中大佬的推荐,我当时并没有明白他的用意,只是很着急地在找报错原因。
    我现在去研究一下如何用 brew 分享 app
    LeeeSe
        7
    LeeeSe  
    OP
       2022 年 12 月 15 日
    @lscho 请问如果使用 brew cask 发布编译好的 app 是不是还是会提示已损坏?如果使用 brew 发布的话等于是在用户端编译,意味着要安装 Rust 环境。我的理解对吗?
    ecnelises
        8
    ecnelises  
       2022 年 12 月 15 日
    Apple Silicon 会强制要求签名,x86 的不用,连带着 Rosetta 的也不用( https://support.apple.com/zh-cn/guide/security/secebb113be1/web

    即使绕过 Mac App Store ,要在陌生人电脑上正常运行也需要签名和 Notarization 两个步骤,都需要订阅的开发者账号。我有账号,周末来研究下楼主的源码打个包
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2964 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 51ms UTC 02:48 PVG 10:48 LAX 19:48 JFK 22:48
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86