【问题标题】:How to properly codesign macOS Screensaver?如何正确设计 macOS 屏幕保护程序?
【发布时间】:2019-10-11 22:42:29
【问题描述】:

我正在尝试对我的 macOS 屏幕保护程序项目进行代码设计,以摆脱“身份不明的开发人员”警告消息。 Apple's documentationthis person on Apple's forums 都说您应该使用“开发人员 ID 应用程序”签名证书来执行此操作。但这似乎对我不起作用。

当我关注Apple's instructions on how to test for proper signatures 时,我得到的回复如下:

Screensaver.saver: rejected (the code is valid but does not seem to be an app)

我的签名设置如下所示:

我不确定此时我还应该尝试什么。大多数情况下,我担心未来的 Mac 应用程序必须进行签名/公证的传言,这对屏幕保护程序意味着什么?

【问题讨论】:

    标签: xcode macos code-signing screensaver


    【解决方案1】:

    以防万一其他人在这里绊倒......

    现在我已经意识到解决这个问题的一个好方法是创建一个安装程序包,然后在 following Apple's instructions 上签名。

    我最终使用了一些名为Packages 的免费软件来创建安装程序。构建安装程序后,我将其复制到另一个文件夹并使用以下命令对其进行签名。

    /usr/bin/productsign --sign "<Name of Developer ID Installer Cert in Keychain>" source.pkg destination-signed.pkg

    希望这可以帮助那里的人。据我所知,这绕过了身份不明的开发者警告。

    【讨论】:

      【解决方案2】:

      以下是额外的公证说明:

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

      1. /usr/bin/codesign -f -o runtime --timestamp --sign “插入开发者 此处为 ID 安装程序证书标识符” XYZZY.saver
      2. 压缩代码签名的 .saver 例如XYZZY.saver.zip
      3. /usr/bin/xcrun altool --verbose --notarize-app --primary-bundle-id “在此处插入标识符” -u “xyzzy@plugh.com” -p “为您的 Apple 插入特定于应用程序的密码ID在这里” -t osx -f XYZZY.saver.zip
      4. 除此之外:将应用程序专用密码存储在您的钥匙串中,然后 从命令行引用它,如下所示:
        • /usr/bin/xcrun altool --store-password-in-keychain-item "AC_PASSWORD" -u xyzzy@plugh.com -p “在此处插入来自 Apple 的特定应用密码”
      5. 等待公证,检查状态如下:
        • /usr/bin/xcrun altool --notarization-history 0 -u “xyzzy@plugh.com” -p "@keychain:AC_PASSWORD"
      6. 虽然您可以对 ZIP 存档进行公证,但不能装订 公证票直接给它。相反,运行订书机反对 您最初添加到存档中的每个单独项目。然后 创建一个包含用于分发的装订项目的新 ZIP 文件。
        • /usr/bin/xcrun 订书钉 XYZZY.saver
        • 重新压缩保护程序并 分发

      【讨论】:

      • 我无法理解这一行:相反,对您最初添加到存档中的每个单独项目运行订书机
      • 我的 ZIP 文件包含一个项目,即保护程序模块 XYZZY.saver,因此我运行了一次装订器命令:/usr/bin/xcrun 装订器装订 XYZZY.saver。如果存档中有多个项目,则为每个项目运行订书机命令,然后重新创建存档。
      • 好的,我会试试的,所以在第 5 级之后我应该解压缩我的 XYZZY.saver.zip 并用该命令行装订它并再次压缩它!然后如何分发它?,你能指导我一点分发?
      • 当我检查公证时,我得到包裹无效!
      • 我没有解压存档。只需装订包含在 zip 存档中的每个 original 项目。然后重新创建存档,覆盖您公证的内容。至少那是我所做的。保存程序模块,即使它实际上是一个文件夹(包),也算作一个“文件”。然后通过简单地将公证保护程序“分发”给人们,例如,通过存储在服务器上并宣传其 URL。
      猜你喜欢
      • 1970-01-01
      • 2012-11-14
      • 1970-01-01
      • 2011-03-01
      • 1970-01-01
      • 2012-01-11
      • 1970-01-01
      • 1970-01-01
      • 2015-08-29
      相关资源
      最近更新 更多