Xcode 如何正确地对macOS屏幕保护程序进行代码设计?

Xcode 如何正确地对macOS屏幕保护程序进行代码设计?,xcode,macos,code-signing,screensaver,Xcode,Macos,Code Signing,Screensaver,我正在尝试对我的macOS屏幕保护程序项目进行代码设计,以消除“未知开发人员”的警告信息。两者都是,并说您应该使用“开发人员ID应用程序”签名证书来完成这项工作。但这似乎对我不起作用 当我跟进时,我得到的答复如下: Screensaver.saver: rejected (the code is valid but does not seem to be an app) 我的签名设置如下所示: 我不确定在这一点上我还应该尝试什么。我最担心的是,有传言说,未来的mac应用程序必须经过签名/公证

我正在尝试对我的macOS屏幕保护程序项目进行代码设计,以消除“未知开发人员”的警告信息。两者都是,并说您应该使用“开发人员ID应用程序”签名证书来完成这项工作。但这似乎对我不起作用

当我跟进时,我得到的答复如下:

Screensaver.saver: rejected (the code is valid but does not seem to be an app)
我的签名设置如下所示:


我不确定在这一点上我还应该尝试什么。我最担心的是,有传言说,未来的mac应用程序必须经过签名/公证,这对屏幕保护程序意味着什么?

以防万一有人在这里绊倒

现在我意识到解决这个问题的一个好方法是创建一个安装程序包,然后签名

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

/usr/bin/productsign--sign“source.pkg destination signed.pkg”


希望这能帮助其他人。据我所知,这绕过了未经确认的开发者警告。

以下是额外的公证说明:

您不能直接对.saver进行公证,但可以通过一种循环的方式对ZIP文件进行公证,这就是我分发屏幕保护程序的方式。以下是我为我的简单储蓄所采取的步骤,毫无疑问,您的里程数会有所不同:

  • /usr/bin/codesign-f-o运行时——时间戳——签名“insert Developer” ID此处为安装程序证书标识符“xyzy.saver”
  • 压缩代码signed.saver,例如xyzy.saver.zip
  • /usr/bin/xcrun altool--verbose--公证应用程序--primary bundle id“insert identifier here”-uxyzzy@plugh.com“-p”在此处为您的Apple ID插入特定于应用程序的PW”-t osx-f xyzy.saver.zip
  • 旁白:将特定于应用程序的密码存储在钥匙链中,然后 从命令行引用它,如下所示:
    • /usr/bin/xcrun altool --在钥匙链项目中存储密码 “AC_密码”-uxyzzy@plugh.com-p“在此处插入来自苹果的特定应用程序PW”
  • 等待公证,检查如下状态:
    • /usr/bin/xcrun altool——公证历史记录0-u“xyzzy@plugh.com" -p“@keychain:AC_密码”
  • 虽然您可以对ZIP存档进行公证,但不能装订 直接给它公证票。相反,运行订书机 您最初添加到存档中的每个项目。然后 创建一个新的ZIP文件,其中包含要分发的订书项目。
    • /usr/bin/xcrun订书机订书钉xyzy.saver
    • 重新拉上拉链,然后 分发

  • 我无法理解这一行:相反,对您最初添加到存档的每个项目运行stapler。我的ZIP文件包含一个项目,即保存模块xyzy.saver,因此我只运行一次stapler命令:/usr/bin/xcrun stapler stapler xyzy.saver。如果存档中有多个项目,请为ev运行stapler命令好的,我会试试看,在第5级之后,我应该解压缩我的xyzy.saver.zip并用命令行将其装订,然后再将其装订!然后如何分发?你能指导我分发吗?当我检查公证时,我发现包无效!我没有解压缩存档。只需装订每个原始项目即可这是包含在zip存档中的。然后重新创建存档,覆盖经过公证的内容。至少我是这么做的。保存模块,即使它实际上是一个文件夹(包),也算作一个“文件”。然后,通过将公证的保存器交给其他人来“分发”,例如,将其存储在服务器上并公布其URL。