mac 下.app 程序的奇怪表现。 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
qdwang
V2EX    macOS

mac 下.app 程序的奇怪表现。

  •  
  •   qdwang 2021 年 4 月 22 日 2051 次点击
    这是一个创建于 1829 天前的主题,其中的信息可能已经有所发展或是发生改变。

    发现一个奇怪的现象。

    假如我在 mac 上有一个.app 程序。

    1. 在 mac 上压缩它,得到一个.zip 文件。 [没问题]
    2. 在 mac 上解压这个.zip 文件,得到解压后的.app ,可以运行。 [没问题]
    3. 把这个.zip 发给 windows,然后再发回来。
    4. 解压这个发回来的.zip 文件,得到.app 文件,运行失败。 [显示损坏,不能打开云云]

    这里面是什么原理呢?

    10 条回复    2021-04-23 09:11:01 +08:00
    billlee
        1
    billlee  
       2021 年 4 月 22 日
    我觉得可以先校验一下发回来的 .zip 的 md5 是否一致
    xupefei
        2
    xupefei  
       2021 年 4 月 22 日 via iPhone
    如果 md5 没变的话是是按住 opt 右键打开。
    qdwang
        3
    qdwang  
    OP
       2021 年 4 月 22 日
    @billlee
    @xupefei 我知道了,是解压 zip 过程自动带上了 com.apple.quarantine 属性,就会显示损坏。
    用 `xattr -cr XXXX.app` 就可以去掉。

    但是这样 build 好的程序压缩后分发给别人怎么办呢
    so898
        4
    so898  
       2021 年 4 月 22 日
    这个坑我遇到过……你用苹果系统解压 Zip,出来的.app 文件夹就没事,但是用其他的,比如说 rar,可能就有事……
    解压完看看.app 里面的 binary 的可运行状态就知道了……
    对于不可运行的,可以 chmod a+x,给 binary 来一下
    qdwang
        5
    qdwang  
    OP
       2021 年 4 月 22 日
    @so898 这里有个比较麻烦的问题是,我如何构建一个可信的.app 包呢?不管是压缩成 zip 还是建立 dmg,分发给别人后,总会显示文件损坏。总要用 xattr -cr 去修复。。
    aureole999
        6
    aureole999  
       2021 年 4 月 22 日
    给小米盒子刷机时用 Mac 解压出来的文件刷就会一直 Boot loop……
    找了好久原因,最后才发现有人说不能用 Mac 解压刷机包
    BrettD
        7
    BrettD  
       2021 年 4 月 22 日 via iPhone
    用开发者证书签名之后用 dmg 格式分发或者上架应用商店
    qdwang
        8
    qdwang  
    OP
       2021 年 4 月 22 日
    @BrettD 嗯嗯,看了一下,一定要用开发者证书签名,这是唯一的办法。
    morize
        9
    morize  
       2021 年 4 月 22 日
    原来是这样,之前也遇到过。我忘记哪个 app 了,github 上的包下 zip 的就报错,下 dmg 的就正常。报 Issue 还说我电脑有问题
    BingoXuan
        10
    BingoXuan  
       2021 年 4 月 23 日 via Android
    有一次打开自己编译的程序发现运行不了,然后 scp 传到服务器上面再 scp 回来,打开没问题。
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2824 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 46ms UTC 09:02 PVG 17:02 LAX 02:02 JFK 05:02
    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