问题标签 [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.
applescript - 应用程序如何进行代码签名但又被 Apple 隔离?
我有一个被隔离的 .app。但我非常困惑,我的 .app 怎么能正确地进行代码签名,但仍然被 Apple 隔离?我有一个名为 iTest.app 的应用程序,我从我的服务器下载并确保它已正确进行代码签名,但它仍被隔离?我认为拥有有效的代码签名是通过 Gatekeeper 的全部意义吗?
macos - 在 Qt 包中签名代码后验证错误(CSSMERR_TP_NOT_TRUSTED,OSX)
我正在尝试使用购买的 COMODO 证书对 OSX Sierra 的桌面应用程序二进制文件进行代码签名。在命令运行CSSMERR_TP_NOT_TRUSTED
结束时出现代码签名验证错误:macdeployqt
当我尝试直接在最终包上使用 codesign 实用程序时也会发生同样的情况(我提供与 XCode 相同的证书 ID):
由 XCode 编译和签名的二进制文件虽然被 Gatekeeper 接受(我使用 CMake 生成 XCode 项目,然后修改项目属性以对二进制文件进行签名——但这并没有为我制作完整的捆绑包)。我使用相同的codesign
命令(从 XCode 的日志中复制)进行签名。
我已经:
- 删除并导入证书,
- 允许它用于所有应用程序,
- 选中的是权限系统默认值,
- 检查系统中的双重证书。
我使用 qmake (Qt5.8) 创建 makefile。我的捆绑内容(之后make
,之前macdeploy
):
我应该怎么做才能在 OSX Sierra 下制作正确的签名二进制文件?
java - Jarsigner : 使用 Developer ID 证书签署独立 jar
虽然我可以使用AppleDeveloper ID
的证书来签署.app和.dmg,但我想知道是否有办法使用它来签署独立的 jar版本(单击并运行),以及几个 eclipse 插件(jars)。
我使用Comodo Cert对 jar 进行签名,它在 windows 中运行良好,但是在MacOS中运行独立 jar 时,GateKeeper会阻止它。
所有 Apple Developer 证书(Developer ID Application, mac Developer, Developer Id Installer ...)
似乎都不支持 jarsigner ,有没有办法为MacOS签名 jar ?
xcode - macOS 开发者 ID 的 Xcode 自动签名
我正在尝试使用 Xcode 8 或 9 使用 Developer ID / Gatekeeper 对 macOS 应用程序进行签名。过去,我总是通过编写脚本来完成此操作codesign
。但现在我想添加一个 iCloud 权利,这似乎需要 Xcode 签名。Apple 的App Distribution Guide中的 Developer ID页面仍然显示了我对旧 Xcode 版本的记忆。在 Xcode 8 或 9 中,您会看到没有更多的Developer ID单选按钮……</p>
以上是开发者ID的正确配置吗?(我不这么认为,但我看不到任何其他选择!)
Product > Archive 完成后,生成的BookMacster存档似乎是Generic Xcode Archive而不是应用存档...</p>
当我点击导出时它给我的选择似乎不适合应用程序......</p>
如果我Save Built Products,我会得到一个目录结构,其中包含包中的所有其他可执行文件和帮助程序,但不包含 BookMacster.app!
applescript - 是否可以自动对 AppleScript 应用程序进行代码签名?
我正在创建多个 AppleScript 应用程序,每个应用程序都将演示文稿 HTML 捆绑到一个图标中,并使用 Safari 打开它。我想对生成的 Presentation.app 文件进行代码签名,以防止 Gatekeeper 对其进行标记。
我知道我可以手动打开每个 Presentation.app 并重新导出它,选择代码签名选项。我希望能够自动执行此步骤。
每个 Presentation.app 都是由语言和市场的组合构建而成,并通过一个自动过程组装在一起——它本身是用 AppleScript 编写的。因此,理想的解决方案是使用我的开发人员 ID 自动签署每个 Presentation.app 的 AppleScript 代码。
到目前为止,我已经尝试在脚本编辑器中记录操作,结果为零。我已经探索了脚本编辑器字典,看看是否有支持这一点的选项。我发现最接近的是脚本编辑器套件中的保存动词,但它不显示代码签名的参数。
macos - 使用 Developer ID 签署 Mac App Store 应用程序以进行测试发布
我有一个 Mac App Store 应用程序,我使用 Slack 为其分发临时测试版。这些测试版依赖沙盒测试环境和配置文件进行身份验证(这样我的 Mac App Store 收据验证在测试版过程中得到测试)。
我要解决的问题是当用户运行我的应用程序的新版本时,Gatekeeper 会提示。我宁愿不必为每个新用户解释只需右键单击它的解决方法。但是,当我使用开发人员 ID 而不是我的“Mac 开发”证书(成功获取我过去的 Gatekeeper)进行导出时,我在启动时遇到此故障,并且永远不会提示输入沙盒测试凭据:
StoreLegacy:无法为路径/path/to/my.app 处的应用程序执行内联收据续订:'(null)'
我正在使用以下选项从存档中导出xcodebuild
:
是否可以使用 Developer ID 进行签名并仍然使用沙盒测试环境?几年前,我提交了一份关于此的雷达,并以“要访问某些功能,您需要经过 MAS 签名”的消息关闭它。随着 Xcode 8 和 9 中自动签名的普及,现在这种情况是否有所改善?
pyinstaller - Pyinstaller 应用程序为身份不明的开发人员(仅 OSX High Sierra)产生错误 OS 状态 -67062
在 OSX High Sierra 10.13.2 上测试
我使用 Pyinstaller 3.2 在我的 Mac(High Sierra 10.12.6)上打包了一个 .app。该应用程序可以在我的计算机以及 Windows 上正常运行。在 High Sierra 之前,我可以毫无困难地向 Mac 用户分发。我不是 Mac 识别的开发人员,因此用户必须使用此处描述的“仍然打开”绕过网关。
用户升级到 high sierra 后,通过常规流程“无论如何打开”以覆盖未识别的开发人员错误,但随后会出现异常错误(在此用户案例中为西班牙语)。
翻译:
无法完成操作 OSStatus -67062。
这是一种可行的解决方法,但对于普通用户来说非常激烈。
High Sierra 用户需要暂时禁用 GateKeeper。
sudo spctl --master-disable
双击打开应用程序。
在命令行中打开应用一次
然后您可以返回并重新启用 GateKeeper。
sudo spctl --master-enable
我已经对此进行了测试,并且可以正常工作。但这很尴尬,而且显然不是最理想的。在真正的修复到来之前,我认为它只是一种解决方法。
有什么可以做的,还是苹果真的在压制我们不支付 100 美元/年的许可?
我的 .app 只是自签名的,这对于看门人来说已经足够了
cocoa - 放置在我的沙盒应用程序文件夹中的 Webarchive (Safari) 文件已损坏。我需要什么权限?
现在这是一个有趣的案例。您将 Safari 中的 webarchive 文件保存到桌面。它工作正常,Safari 可以打开它。没问题。
如果您将此 webarchive 拖放到我的应用程序中,该文件将被移动到我的应用程序的容器文件夹中FSMoveObjectAsync
。之后,webarchive 将无法打开,因为“......它已损坏且无法打开”。将文件移回无济于事。看起来 macOS 安全系统已将其放入隔离区。
现在棘手的部分是没有问题,如果我在非沙盒模式下运行。在沙盒中,网络存档会损坏。
没有其他文件类型受此影响。只有网络档案。
似乎我的应用程序缺少一些能够处理网络存档的沙盒权利。但我不知道是哪一个。
尝试打开“隔离”网络存档时,控制台显示以下消息:
需要帮忙。
macos - 是什么导致签名代码变得“动态无效”?
使用 Apple 的codesign
工具签署应用程序时,似乎我可能想要设置-o kill
选项:
设置了 kill 标志的代码将在变为动态无效时终止。
这对应于kSecCodeSignatureForceKill
“始终kSecCodeStatusKill
在启动时设置状态标志”的常量:
表示如果代码失去其有效性,它想要被杀死(终止)。
听起来不错,但它的真正含义是什么?
自然,如果“任何事情”在执行过程中破坏了我的代码的完整性,我希望进程被终止。但是那个“东西”会是什么?这个标志会防止任何和所有代码注入攻击吗?
swift - 为什么我的沙盒应用程序创建/重命名的文件会获得 com.apple.quarantine 属性?
我正在从需要可执行的沙盒应用程序中编写临时文件,但尽管更改了通常的设置,但它们仍被标记为隔离区。
我已LSFileQuarantineEnabled
在我的应用程序的 Info.plist 中明确设置为 NO 以防万一(这应该是默认设置)而没有更改。
基于如何阻止我的应用设置“隔离”位?,我也尝试添加com.apple.security.files.user-selected.executable = YES
到我的应用程序的权利文件中,但这也没有效果。(目标文件不是“用户选择的”——也许这就是为什么不呢?)
是否有任何其他配置可以阻止系统将写入的文件标记为已隔离?请注意,我的应用不需要通过 Apple 审查;我自愿选择加入沙盒。