Posted at

zipコマンドでmacOS用アプリケーション(.app)を圧縮する場合は-yオプションをつける


困ったこと

Electronで作成したmacOS用のアプリケーションを「zip -r」コマンドで圧縮して解凍するとファイルサイズがめちゃめちゃ大きくなっている(140MB -> 350MB)


原因

アプリケーション内部にシンボリックリンクがあり、「zip -r」で圧縮するとシンボリックリンクが実ファイルに置き換えられてファイルサイズが大きくなる

$ ls -al Hoge.app/Contents/Frameworks/Electron\ Framework.framework

total 0
lrwxr-xr-x 1 user1 staff 35B 11 8 13:39 Electron Framework -> Versions/Current/Electron Framework
lrwxr-xr-x 1 user1 staff 26B 11 8 13:39 Libraries -> Versions/Current/Libraries
lrwxr-xr-x 1 user1 staff 26B 11 8 13:39 Resources -> Versions/Current/Resources
drwxr-xr-x 4 user1 staff 128B 11 8 13:39 Versions


解決策

-yオプションをつけてシンボリックリンクを実ファイルに置き換えずに圧縮する

$ zip -ry Hoge.zip Hoge.app