码迷,mamicode.com
首页 > 移动开发 > 详细

Mac Electron App 签名后打开闪退

时间:2019-11-24 15:38:19      阅读:105      评论:0      收藏:0      [点我收藏+]

标签:col   enc   ras   测试   time   自己   配置   文档   oct   

背景

昨天在测试 Mac Electron App 打包,发现不签名的应用能够正常打开,签了名的打开反而会崩溃。

寻因

首先我怀疑是不是自己代码导致闪退,但是在一番查找后,发现还根本没到执行我的代码就闪退了。

然后就猜可能是我打包的参数缺了些东西。

我使用 electron-builder 打包的,当时配置的是:

"mac": {
  "category": "public.app-category.developer-tools",
  "target": "dmg",
  "icon": "res/logo.icns",
  "gatekeeperAssess": false
}

我配置参数的原则是按需设置,加上这些能够打包签名我就不会再添加其他的。

原因

查看了 electron-builder 的文档和网上资料后知道,苹果要求签名的应用的 runtime 必须是 hardened runtime。

这个时候应用的一些权限会受到限制,如果没有相关权限设置就会因为权限不足而闪退。

PS:这里有一点我比较奇怪的,大概是前几周,那时签名的应用还能打开。

解决

1、添加一个plist文件,设置权限。

entitlements.mac.plist:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
  <dict>
    <key>com.apple.security.cs.allow-unsigned-executable-memory</key>
    <true/>
  </dict>
</plist>

2、electron-builder配置增加

"mac": {
  "hardenedRuntime": true,
  "entitlements": "build/entitlements.mac.plist",
  "entitlementsInherit": "build/entitlements.mac.plist"
} 

Mac Electron App 签名后打开闪退

标签:col   enc   ras   测试   time   自己   配置   文档   oct   

原文地址:https://www.cnblogs.com/lovesong/p/11922305.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!