问题标签 [notarize]

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.

0 投票
3 回答
825 浏览

macos-mojave - macOS应用程序的公证过程不起作用

我为 MacOS 开发了一个应用程序。我将公证过程作为其分发的一部分。我已按照所有步骤操作并运行:

然后我使用以下方法检查公证进度:

它的输出是:

然后我启动装订命令:

它也以成功结束:

但是,当我提取 .app 文件并运行时:

根据我读过的文档,它应该说:“source=Notarized Developer ID”,对吧?

我在 MacOS Mojave 10.14.5 上运行它

我错过了什么??

有人可以帮助我吗?

提前致谢

0 投票
1 回答
252 浏览

objective-c - macOS 已弃用的 API

我工作的公司开发了一个程序,最后一次接触代码是在 2 年前。现在该程序需要经过公证,所以我被要求负责该程序。

我将代码移植到最新的 Xcode (10.2.1) 和最新的 macOS。但是 Xcode 警告我一些 API 调用的弃用:

/Users/rowelz/Documents/Develop/Code/ThinPrint/in GIT/myProject/osx-client/src/com.myProject.bootstrap/EZPBootstrapper.m:116:51: ' SMJobCopyDictionary ' 已弃用:首先在 macOS 10.10 中弃用

NSDictionary *plist = (__bridge NSDictionary *) SMJobCopyDictionary( kSMDomainSystemLaunchd, (__bridge CFStringRef) (label));

/Users/rowelz/Documents/Develop/Code/ThinPrint/in GIT/myProject/osx-client/src/com.myProject.bootstrap/EZPBootstrapper.m:193:21: ' SMJobRemove ' 已弃用:首先在 macOS 10.10 中弃用

结果 = (BOOL) SMJobRemove(kSMDomainSystemLaunchd, (__bridge CFStringRef) 标签, self->_authRef, FALSE, &cfError);

/Users/rowelz/Documents/Develop/Code/ThinPrint/in GIT/myProject/osx-client/src/com.myProject.bootstrap/EZPAppDelegate.m:193:15: ' SMJobSubmit ' 已弃用:首先在 macOS 10.10 中弃用

提交 = SMJobSubmit(kSMDomainUserLaunchd, (__bridge CFDictionaryRef)(plist), NULL, &cfError);

/Users/rowelz/Documents/Develop/Code/ThinPrint/in GIT/ezeep/osx-client/src/com.myProject.bootstrap/EZPAppDelegate.m:214:13: ' SMJobRemove ' 已弃用:首先在 macOS 10.10 中弃用

移除 = SMJobRemove(kSMDomainUserLaunchd, (__bridge CFStringRef)kEzeepServiceNameUpdaterBstrap, NULL, false, NULL);

我在这个项目中的主管给出了以下边界条件:

  • 程序应仅在接下来的一年内运行。之后它将被我们家的另一个程序所取代。
  • 在这一年里,它应该可以不受限制地工作,崩溃等等。

我不希望对代码进行任何更改,因为有关 SMJobCopyDictionary、SMJobRemove 和 SMJobSubmit 的警告意味着需要进行重大更改 - 必须重新编写整个程序。对于一年的寿命来说,这将是一项巨大的努力。

我的问题: 我想编写一个小工具来检查这些 API 调用的可用性。然后,我将在 macOS 的每个测试版上执行此工具,直到 macOS 10.15 的最终版本。当然,如果该工具出现问题,我将重写“现在有缺陷”的程序。

这足以检测 API 存在的问题吗?我可以使用什么函数来检测可用性,而无需实际调用它们来尝试安装已启动的二进制文件?我猜上面的 API 是 CoreFoundation ?

提前感谢您的帮助。

我在堆栈溢出时发现了这个,它似乎有效:

}

这足以显示对已弃用和删除的 API 的调用吗?

0 投票
1 回答
1190 浏览

cocoa - macOS 公证错误:“使用的签名算法太弱”

我想知道是否有人熟悉此错误,该错误仅在我将应用程序上传到 Apple 进行公证时发生:

附加信息:

- 我多年来一直在签署我的应用程序,没有任何问题。该错误仅在发送应用程序进行公证时发生。

- 我在 2018 年 11 月提交了一个错误,向 Apple 提供了他们要求的所有信息 - 但从未进一步解决。

- 我最近再次联系了 Apple,他们向我指出了一些资源页面,该页面最后一次更新是在 2016 年。它简要提到了一个类似的错误 - 但仍然没有任何关于如何解决它的信息: https ://developer.apple.com/库/存档/technotes/tn2206/_index.html#//apple_ref/doc/uid/DTS40007919-CH1-TNTAG301

- 对这个错误的搜索没有产生任何有用的东西。

- 相关的 tar.gz 文件是一个 eSellerate 许可框架。许多人可能都知道,十多年来,它一直是 Mac 软件的流行许可平台。虽然前段时间我切换到不同的许可平台,但我仍然有成千上万的客户拥有 eSellerate 许可(我确信许多其他 Mac 开发人员的情况也是如此)。

据我了解,这整个情况必须对 tar.gz 档案中的文件进行签名 - 我也找不到任何信息

任何帮助将不胜感激!

谢谢,狮子座

0 投票
3 回答
4013 浏览

xcode - 如何在不迁移到 Xcode 10 的情况下为应用启用强化运行时?

我想对我的应用程序进行公证,在公证时我收到了此“消息”的包无效状态:“可执行文件没有启用强化运行时。”,

我正在 highsierra 和 Xcode 9.4 中构建应用程序。

我尝试在代码签名时添加 --options=runtime ,但无助于解决错误。

0 投票
1 回答
138 浏览

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 的发行说明不符,但我们无法理解其背后的原因。

0 投票
0 回答
308 浏览

kernel - macOS 如何验证我的软件是否经过公证?

根据苹果文档(https://developer.apple.com/documentation/security/notarizing_your_app_before_distribution/customizing_the_notarization_workflow “将票装订到您的发行版”),我必须装订我的软件 DMG,当用户运行 dmg 时,网守将在线验证它或万一断网,它会找到装订好的票。

我的问题是:我已经成功地对我的软件进行了公证,但没有装订它。当我第一次尝试在没有互联网连接的 macOS 10.14.5 上安装我的软件时,我的软件安装成功。但是如果Gatekeeper 没有发现装订票软件就不应该安装。为什么看门人在这种情况下不验证票?当用户第一次运行任何下载的 dmg 时,macOS 系统如何验证 Notarized dmg?是否有任何网守日志可用于交叉检查公证状态?

0 投票
3 回答
4222 浏览

xcode - macOS 公证:找不到 altool

我想开始构建一个公证自动化脚本。

但是,当我尝试在终端中使用“xcrun altool”时,出现以下错误:

我在 macOS 10.14.5、Xcode 10.2.1 上。

然后我特别下载并安装了 Xcode 命令行工具 - 仍然得到同样的错误。

订书机等其他工具也可以。

我检查了这个目录并且 altool 不存在:/Library/Developer/CommandLineTools/usr/bin

知道发生了什么吗?

谢谢!

0 投票
2 回答
617 浏览

macos - macOS 公证和多个嵌入式工具/捆绑包

我的产品是一个系统首选项窗格,其中包含多个嵌入式应用程序来完成其工作,包括:

  • 仅后台渲染器。
  • 处理菜单状态项的应用程序。
  • 由于系统偏好设置可能未运行,因此用于检查更新的应用程序。
  • 一个简单地将 System Pref Pane 复制到适当位置的安装程序(由于代码签名错误阻止了 prefPane 的直接分发,因此需要该安装程序)。
  • 一个 unix 可执行重新启动工具,用于在更新期间处理加载到系统偏好设置中。这似乎不可能装订公证。

我在 Xcode 中有一个很好的脚本,可以将所有这些打包在一起。有了公证,我现在是否需要从最深处开始分别对每一个进行公证?这听起来很麻烦,因为通过 Apple 所需的延迟/轮询来实现自动化是很困难的。

仅仅对最外面的容器进行公证就足够了吗?

我正在寻找其他在单个应用程序包中具有多个可执行文件的人关于处理公证的建议。

0 投票
1 回答
1201 浏览

xcode - 使用 10.14 SDK 构建 - 但 Info.plist 中的 DTSDKName 值为 macosx10.7

在尝试对我的一个应用程序进行公证时,我遇到了一个奇怪的问题......

我使用当前的 macOS SDK(即 10.14)构建应用程序。

但是,在最终应用中,Info.plist 中的 DTSDKName 值是macosx10.7(而不是 macosx10.14)。

因此,我无法对该应用程序进行公证,因为它至少需要 10.9 SDK。

我在其他应用程序中没有这个问题。

我确实有一个临时解决方案 - 使用我也在 Xcode 中安装的 10.10 SDK 构建应用程序。在这种情况下,DTSDKName 是正确的:macosx10.10。

我将此错误提交给Apple。

我还想我可以在构建阶段使用脚本将所需的值插入 Info.plist - 但它肯定不是它应该工作的方式。

我想知道是否有人知道发生了什么?

感谢您提供任何信息,狮子座

macOS 10.14.5 Xcode 10.2.1

0 投票
1 回答
1687 浏览

keychain - 避免输入 altool 的钥匙串密码

我需要自动化公证 MacOS 应用程序的过程。为了实现这一点,我创建了通用密码:

现在为了避免输入我添加的密码:

最后我运行 altool 命令,但仍然弹出询问我钥匙串密码的问题。

有谁知道如何避免这个弹出窗口?一切都必须在命令行上完成,所以如果你能提供要运行的命令,那就太好了