问题标签 [osx-gatekeeper]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
electron - 为什么 electron-osx-sign 无法生成 Gatekeeper 识别的签名应用程序?
我正在尝试签署股票电子应用程序。下面是我正在使用的脚本。问题是看门人抱怨应用程序(“电子”)无法打开,因为无法确认开发者的身份。这是为什么?
它似乎已“成功”签名,但在我存档/压缩并上传然后下载它之后,Gatekeeper 不再接受它(“Electron” can’t be opened because the identity of the developer cannot be confirmed."
)
xcode10 - 什么时候需要经过公证的 macOS 应用程序?
在即将发布的 macOS 中,Gatekeeper 将要求开发者 ID 签名的软件经过 Apple 公证。
有人知道它可能是什么 macOS 版本吗?
java - 如何使用我的 Apple Developer ID 签署 .jar 文件
我有一个 java 可执行jar
文件,我需要用我的 Apple Developer ID 对其进行签名。我不打算通过应用商店分发它。我将通过我的网站将应用程序直接分发给客户。我不打算绕过 Gatekeeper。Signing the app
当客户安装应用程序时,与我一起developer ID
满足 Gatekeeper 的要求,从而避免安全提示我是“身份不明的开发人员”。
任何帮助将不胜感激
code-signing - OSX 网守不拒绝第三方应用程序
我已经使用简单的脚本将我的 java 应用程序构建为 mac os 的 .app 包来运行我的 jar 文件。
我有带有命令的签名代码codesign -s "My company" my-app
验证codesign --verbose=4 my-app
并获取
验证spctl -a -t exec myapp
但我仍然可以在 mac 机器上运行 myapp 而不会出现错误消息。如何让看门人拒绝我的应用程序并将消息显示为身份不明的开发人员或类似的东西?我已设置网守只允许来自 App Store 的应用程序,但网守不起作用
macos - 确定是否允许在 macOS 中启动应用程序
有没有办法以编程方式确定是否允许在 macOS 的安全和隐私设置中启动应用程序?
我正在尝试以静默方式启动从 Cocoa 应用程序中从 Web 下载的 .app,但如果用户不允许来自 Mac App Store 外部的应用程序,我的应用程序将无法启动,并出现一个建议用户更改的对话框他们的设置。我想知道该应用程序是否会成功启动,如果不会,请自行打开安全和隐私设置,以便用户更改它们。
基本上,我正在寻找函数 AppIsAllowedToLaunch:
我尝试了什么:
- open(2) 总是返回零退出代码,无论应用程序是否成功启动
[NSWorkspace.sharedWorkpace launchApplicationAtURL:options:configuration:error]
返回 的实例NSRunningApplication
。这个对象不仅不允许我检查应用程序是否已成功启动,而且它还要求我尝试启动应用程序以查看发生了什么,而不是事先执行检查,这是我需要的- 开源的 open(2) 替代方案大多已过时,并且不反映允许用户阻止非 Mac App Store 应用程序启动的安全和设置更改。不幸的是,原来的 open(2) 不是开源的。
spctl -a /path/to/app.app
如果根据安全和隐私设置不允许应用程序启动,将正确返回 3。但是,如果应用程序需要 root 权限才能运行(并且我正在启动的应用程序需要),它也会返回 3,所以我不能使用这种方法。
为了检查应用程序是否可以成功启动,必须查询一些系统框架(可能是LaunchServices
或Security
)或系统数据库(类似于)。/var/db/SystemPolicyConfiguration/KextPolicy
我的应用程序没有经过沙盒处理,也没有通过 Mac App Store 分发。它以用户权限运行。
java - Mac OS(身份不明的开发者)
我已经构建了一个 JAR 文件,我有一个工具可以将此 JAR 文件转换为可以在 MAC OS 上分发的 .pkg 文件。
不幸的是,当我尝试运行已安装的 JAR 文件时,由于 MAC OS GateKeeper,我收到 UNIDENTIFIED DEVELOPER 消息。
我在网上搜索过,我认识到需要代码签名才能解决这个问题。但是,在 Windows 中,我知道代码签名的步骤,但我不是 MAC OS 专家。
我是否需要先使用 appbundle 再使用 codesign 将 JAR 转换为应用程序?或者这是一种旧方法,但有一种最新方法。
这个问题的最佳解决方案是什么?
macos - 在 macos 中,如果我使用自我证书签署我的应用程序并将该证书安装在目标机器中,是否有可能成为“已识别的开发人员”?
我在 mac osx 中开发了一个应用程序。该应用程序在本地正常运行。
现在我正在尝试与其他同行在内部分发该应用程序。(无需通过应用商店)
我创建了一个自签名证书。我安装了证书并将其添加到受信任的(它是一个 ROOT 证书)然后我用我的自签名证书签署了应用程序。
一切都很好。该应用程序在签名后仍然在本地正常运行(我验证它确实已签名)
我的下一步是将签名的应用程序上传到 s3。下载应用程序后。操作系统安全设置阻止了下载的应用程序的启动 - (身份不明的开发人员) - 这是安装了证书的同一台机器..
所以我不确定为什么我仍然收到身份不明的开发人员错误?我的假设是如果我的证书存在(并且受信任)在目标机器中 - 操作系统应该允许应用程序通过。这个假设是不正确的吗?如果是这样,self 符号会添加什么值(我猜什么都没有)。如果不是真的,我可能有错误的证书?
macos - macOS 应用程序包框架目录代码设计
我正在将我的 macOS 应用程序打包到一个应用程序包中。我需要对其进行代码签名并通过公证。可以将框架放在“资源”目录中吗?
我有两个框架。通常,我曾经将此类框架放入捆绑包的“框架”目录中。但是,出于(愚蠢的)设计原因,我需要在我的框架的同一目录中拥有更多库。由于此类库如果放在“框架”目录中会阻止代码签名,我想将框架 + 额外库移动到“资源”目录中。
阅读Apple文档似乎框架应该 - 当然 - 属于“框架”目录,但是我找不到任何不应该包含在“资源”目录中的参考。这是不好的做法吗?我的 .app 结构不会通过看门人吗?
任何建议将不胜感激
macos-mojave - 2019 年 4 月 7 日之前签署的内核扩展无法在 macOS 10.14.5 上加载
我安装了 macOS 10.14.5 (18F132) 并拥有三种不同的产品版本,如下所示:
案例 1. 2018 年 10 月在 macOS 10.9.5 上签名的内核扩展(带有 —timestamp=none)这些扩展在 macOS 10.14.5 上成功加载。
案例 2. 2019 年 2 月在 macOS 10.9.5 上签名的内核扩展(带有 —timestamp=none)这些扩展无法在 macOS 10.14.5 上加载。
案例 3. 2019 年 6 月在 macOS 10.13.6 上签名的内核扩展(带有 —timestamp)这些扩展使用 Apple 公证服务进行公证,并在 macOS 10.14.5 上成功加载
我的查询是:根据 macOS 14.5 发行说明:2019 年 4 月 7 日之后签署的内核扩展必须经过公证才能在 macOS 10.14.5 上加载,但在提到的情况下,2019 年 2 月签署的#2 扩展无法加载。
如果我们认为这是由于缺少时间戳,那么如何成功加载 case#1 内核扩展?
在某些地方,我们的观察与 macOS 10.14.5 的发行说明不符,但我们无法理解其背后的原因。