MacOS下Electron应用打包成dmg和pkg

假设项目名称为 MyApp

npm install -g appdmg

打包为dmg

首先用electron-packager打包为MyApp.app,electron-packager用法可看其文档

// 目录结构
dists->
    -- MyApp.app
    -- pack.json

// 打包命令:
appdmg ./dists/pack.json ./dists/MyApp.dmg

pack.json文件内容:

{
  "title": "MyApp",
  "icon": "icon.icns", // 图标
  "background": "background.png", // 背景图片
  "contents": [
    { "x": 448, "y": 344, "type": "link", "path": "/Applications" },
    { "x": 192, "y": 344, "type": "file", "path": "./MyApp.app" }
  ],
  "window": {
      "size": {
          "width": 640,
          "height": 480
      }
  },
  "format": "UDBZ", // 还有很多种,具体看appdmg的官方文档
}

// 这些坐标以及大小需要自己不断的尝试,说多了都是泪

用上述方式打包出来的dmg文件可以正常运行,但是缺点就是体积太大,一个Electron Framework.framework文件就已经118M了,再加上其他的文件,我这边一个app打出来的体积已经到了150M了,确实有点庞大。

format的各种值都试过了,最小只能压到141M,但还是很大。

UDRW - UDIF read/write image
UDRO - UDIF read-only image
UDCO - UDIF ADC-compressed image
UDZO - UDIF zlib-compressed image
UDBZ - UDIF bzip2-compressed image (OS X 10.4+ only)
UFBI - UDIF entire image with MD5 checksum
UDTO - DVD/CD-R master for export
UDSP - SPARSE (grows with content)
UDSB - SPARSEBUNDLE (grows with content; bundle-backed)

只能试一下pkg格式的包了

打包为pkg

可以安装packages来打包pkg
http://s.sudre.free.fr/Software/files/Packages.dmg
整个打包过程挺简单的,打包后的pkg体积也还可以,64M,比起150M来少了不少呢,但是每次发布的时候都要打开这个软件进行打包还是挺麻烦的,所以还是得想想其他办法,后来终于发现了macos自带的打包工具pkgbuild

pkgbuild --install-location /Applications --component ./dists/MyApp.app ./dists/MyApp.pkg

一个命令,一行代码,搞定,写在shell脚本里面,比起packages来方便多了。

PS:
pkgbuild工具貌似会出问题,打包出来的pkg能安装,但是安装完了不会再LaunchPad中显示,估计是安装出问题了,所以换了一种方式:

使用quickpkg工具来打包
https://github.com/scriptingosx/quickpkg


./build/darwin/quickpkg ./dists/MyApp.app --output ./dists/MyApp.pkg

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容