问题标签 [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.
xcode - 在注册设备上测试 Mac 应用
我有一个 Cocoa Mac 应用程序,我不知道它是否会出现在 Mac AppStore 上。该应用程序仍在开发中,我希望很少有人能够在应用程序获得新功能时在他们的设备上启动它。
情况如下:
- 我有 Mac 开发者证书
- 设备在 Mac 会员中心注册。
每次他们启动应用程序时,GateKeeper 都会抱怨该应用程序不是来自 Mac AppStore,也不是由已识别的开发人员提供的,无论我是否签署了该应用程序。
因此,我尝试对其进行签名,并将配置文件嵌入到应用程序中。如果我不签名,则不会嵌入任何内容。
我应该提到,该应用程序捆绑了一个 Spotlight 导入器和 QuickLook 生成器。
我没有在 Apple 文档中找到任何关于如何解决此问题的明确解释,并且互联网上的大多数(如果不是全部)博客文章或文章都是关于 iPhone 应用程序,而不是 Mac 应用程序(流程/要求似乎是两个平台不同)。文档不清楚是否所有测试人员都应该是团队成员(这似乎很疯狂,因为他们中的一些人不是开发人员并且没有安装 Xcode)。
有人可以就如何做到这一点提供清晰的分步说明吗?
或者也许是文章/博客文章链接或提示?
编辑 :
以下是应用包结构和插件结构的截图:
一切似乎都是正确的。我获得的方式是:我没有设置“代码签名身份”构建设置,而是将应用程序存档,然后将其导出并指定代码签名身份。
编辑 :
越来越好奇,当我codesign
在终端中运行命令时codesign -vvv MyApp.app
,输出往往表明一切都已正确完成:
MyApp.app:在磁盘上有效
MyApp.app:满足其指定要求
java - 如何为 OSX 和 Gatekeeper 签署(动态)JNLP 文件
我的公司为服务器生产 Java 应用程序并提供 JNLP 文件以启动本地应用程序。从 OSX 10.8.4 开始,需要使用开发人员 ID 对 JNLP 文件进行签名以使 Gatekeeper 满意(实际上在最底部的发行说明中)。
问题是:如何做到这一点?AFAIK 您可以签署应用程序(我们有一些使用开发人员 ID 签署的 Java 应用程序) - 但 JNLP - 文件就是这样:文件。
下一步:如何使用生成的 JNLP 文件执行此操作。我们必须修改它们,因为它们来自服务器 - 例如属性、基本 URL 等等。
AFAIK Java 有一种机制可以说 JNLP 文件是通过它们各自的 JAR 文件(包含主类的文件)签名的 - 但是:Jar 文件是用不同的证书签名的,它们也不会满足 Gatekeeper 的要求。
我确实找到了一个关于如何签署工具和东西的参考,但它不适用于动态文件的场景。
我不想要的答案:右键单击并打开以覆盖 Gatekeeper 或更改系统或 Java 设置。这不是一个选择。
[更新] 从 OSX 10.9.5 开始,您还必须使用 OSX 10.9+ 进行签名并拥有有效的版本 2 签名。这将如何完成?
macos - 获取已签名应用的证书信息
我们希望获得一个 Mac 开发者 ID 来为Gatekeeper签名我们的应用程序。当用户下载签名的应用程序时,证书信息(通用名称等)是否可以显示在某处?还是供苹果内部使用?
macos - codesign Preference Pane 导致“对象文件格式无法识别、无效或不合适”
我正在尝试使用我的开发人员 ID 证书对首选项窗格进行代码设计。这是我在终端中使用的命令:
这是输出:
我在对首选项窗格进行代码设计时做错了吗?首选项窗格甚至可以协同设计吗?
objective-c - 如何在沙盒 Mac 应用程序中跟踪用户批准的访问路径?
如何判断用户已授予哪些路径访问权限?我知道使用 NSOpenPanel,沙箱会自动扩展以允许访问用户选择的目录。这些信息是否存储在任何地方,以便我知道是否需要抛出 NSOpenPanel?
或者我需要在 NSUserDefaults 中本地跟踪它吗?
java - OS X 上 Java Web Start 应用程序的身份不明的开发人员
在 Mac OS X 10.9 上,签名的 Java Web Start 应用程序默认被阻止并显示以下消息:
我知道可以削弱安全检查以允许任何应用程序运行,但这需要最终用户的手动干预。
是否可以对 Java Web Start 应用程序进行“签名”,使其被识别为来自已识别的开发人员?
谢谢
xcode5 - OS X 10.9 隐私控制:调试期间正确的代码签名身份和配置是什么?
当我的应用程序在调试配置中通过 Xcode 运行时,它无法访问用户的通讯录(ABPeoplePickerView
为空白)。但是,当应用程序是为直接或 App Store 分发而构建时,它就可以访问地址簿。
这似乎是一个供应/代码设计问题。但是,调试配置的有效代码签名标识似乎没有授予应用程序在调试下运行时读取联系人的权限。该应用程序在调试下使用与发布下相同的权利文件。
这似乎是在安装 10.9 时出现的。有任何想法吗?
macos - Productsigned Mac 应用程序未安装在非我的计算机中
我有一个 Mac 应用程序,我使用终端中的“productsign”命令对其进行了签名
然后我运行了评估命令
我也检查了签名
当我从我的机器上运行安装程序时(Gatekeeper 设置为“Mac App Store 和已识别的开发人员”),它运行良好。当我将它部署到我的网站后下载相同的 pkg 时,它也正确安装。
但是......当我在另一台机器上下载 pkg 时,它无法安装。它无法识别我的开发者 ID。当我在故障机器上运行 spctl 命令时,我得到
有谁知道为什么它在我自己的机器上运行良好,但当 pkg 在另一台机器上运行时失败?我真的没有主意了:/
编辑:这就是我得到的
xcode - 如何避免看门人出现“身份不明的开发者”错误
作为应用程序的开发人员,如果您的一半用户因为出现以下错误而无法打开您的应用程序,这可能会让人非常失望。
[我知道有一种解决方法,方法是转到 sys 首选项-> 安全性-> 允许来自“任何地方”的应用程序,但我们应用程序的用户是孩子,他们可能不是知道如何做到这一点的最佳位置]
为了避免此警告或获得苹果开发者身份,我需要注意哪些事项?
此应用程序已在 App Store 上发布,因此所有配置文件和证书都在那里。现在我们想将应用程序放在我们的网站上,但在此之前,我们想消除这个看门人的障碍。
在上面的屏幕截图中,您可以看到归档时选择了正确的开发人员。
macos - 一旦我的应用程序通过 Gatekeeper,所有未来的下载都不会被隔离
我观察到,一旦我的签名应用程序已从 Internet 下载并通过 GateKeeper 接受(即我在警告对话框上单击确定),它将永远不会再次被隔离。换句话说,后续下载不会收到任何警告。即使它是应用程序的新版本,甚至是我的完全不同的应用程序,但使用相同的签名进行签名。
这可能是由于我所看到的 GateKeeper 系统缓存。它可能对用户来说是一种方便。即系统现在信任我的签名/证书。
问题:
- 以上听起来正确吗?
- 是否可以“清除”缓存或以其他方式修改我的系统,以便我可以看到新的警告,就好像这是第一次?