如何正确设计 macOS 屏幕保护程序?

Bra*_*oot 3 macos xcode code-signing screensaver

我正在尝试对我的 macOS 屏幕保护程序项目进行协同设计,以消除“身份不明的开发人员”警告消息。苹果的文档和苹果论坛上的这个人都说你应该使用“开发者ID应用程序”签名证书来做到这一点。但这似乎对我不起作用。

当我按照Apple 关于如何测试正确签名的说明进行操作时,我得到的响应如下:

Screensaver.saver: rejected (the code is valid but does not seem to be an app)
Run Code Online (Sandbox Code Playgroud)

我的签名设置如下所示:

在此输入图像描述

我不确定此时我还应该尝试什么。我主要担心未来 Mac 应用程序必须经过签名/公证的传言,这对屏幕保护程序意味着什么?

pab*_*ter 6

以下是额外的公证注释:

\n\n

您可以\xe2\x80\x99t直接公证.saver,但您可以以迂回的方式公证ZIP文件,这就是我分发屏幕保护程序的方式。以下是我用于简单保护程序的步骤,您的里程无疑会有所不同:

\n\n
    \n
  1. /usr/bin/codesign -f -o runtime --timestamp --sign \xe2\x80\x9cinsert Developer\nID 安装程序证书标识符此处\xe2\x80\x9d XYZZY.saver
  2. \n
  3. 压缩已签名的代码 .saver 例如 XYZZY.saver.zip
  4. \n
  5. /usr/bin/xcrun altool --verbose --notarize-app --primary-bundle-id \xe2\x80\x9cinsert 标识符此处" -u \xe2\x80\x9cxyzzy@plugh.com" -p \xe2\x80 \x9cinsert 此处为您的 Apple ID 指定应用程序的密码" -t osx -f XYZZY.saver.zip
  6. \n
  7. 另外:将应用程序特定的密码存储在您的钥匙串中并\n从命令行引用它,如下所示:\n\n
      \n
    • /usr/bin/xcrun altool\n--store-password-in-keychain-item\n"AC_PASSWORD" -u xyzzy@plugh.com -p \xe2\x80\x9cinsert 来自 Apple 的应用程序特定密码 \xe2\ x80\x9d
    • \n
  8. \n
  9. 等待公证,检查状态如下:\n\n
      \n
    • /usr/bin/xcrun altool --notarization-history 0 -u \xe2\x80\x9cxyzzy@plugh.com"\np "@keychain:AC_PASSWORD\xe2\x80\x9d
    • \n
  10. \n
  11. 虽然您可以对 ZIP 存档进行公证,但您可以\xe2\x80\x99t 直接将公证票证钉在其上。相反,请针对您最初添加到存档的每个单独项目\n运行订书机。然后\n创建一个新的 ZIP 文件,其中包含要分发的装订项目。\n\n
      \n
    • /usr/bin/xcrun 订书机订书钉 XYZZY.saver
    • \n
    • 重新压缩保护程序并\n分发
    • \n
  12. \n
\n

  • 我的 ZIP 文件包含一个项目,即保护程序模块 XYZZY.saver,因此我运行一次订书机命令:/usr/bin/xcrunstaplerstaple XYZZY.saver。如果存档中有多个项目,请为每一项运行订书机命令,然后重新创建存档。 (2认同)
  • 我没有解压存档。只需装订 zip 存档中包含的每个“原始”项目即可。然后重新创建存档,覆盖您经过公证的内容。至少我就是这么做的。保护程序模块,即使它实际上是一个文件夹(包),也算作一个“文件”。然后,通过简单地将经过公证的保存程序提供给人们来“分发”它,例如,通过存储在服务器上并宣传其 URL。 (2认同)