我们需要公证框架(.framework)、动态库和二进制文件吗?
Do we need to notarize frameworks(.framework), dylibs and binaries?
阅读有关公证的苹果文档,不清楚我们是否需要公证二进制文件(例如启动守护程序)、框架或动态库。
我们还需要对这些进行公证吗?
苹果文档可以在这里找到 Notarizing Your App Before Distribution
在这里回答我自己的问题,也许对某人有帮助。
这可以由Xcode自动完成;但是,如果您需要手动配置它(也许您有持续集成,或者 w/e),这可能会有所帮助。
根据 Apple 的说法:
Notarization gives users more confidence that the Developer ID-signed software you distribute has been checked by Apple for malicious components.
If there are no issues, the notary service generates a ticket for you to staple to your software
在未来的 macOS 版本中,二进制文件、框架、dylib、应用程序将需要公证。
为此,需要执行一些步骤:
- 在 Build Settings 中为每个生成二进制文件、框架、dylib 的目标添加
--timestamp
到 Other Code Signing Flags或应用
- 将
--options=runtime
添加到其他代码签名标志(对于Xcode < 10.2)或启用强化运行时 (对于 Xcode >= 10.2)在 构建设置
- 对所有内容进行代码签名(dylib、框架、二进制文件和 .apps。)
接下来可以进行如下公证:
- 将所有需要公证的文件打包成一个.zip文件(其他支持的格式:.dmg,[=34= .pkg)
- 将支持的格式上传到 Apple 公证服务:例如:
xcrun altool --notarize-app -f <path_to_zip_dmg_or_pkg> --primary-bundle-id <bundle_identifier> -u <apple_id> -p @keychain:"Application Loader: <apple_id>"
---> 这个 returns 一个 UUID 也将发送到公证完成后<apple_id>
所提供的邮件地址
- 使用
xcrun altool --notarization-info <UUID_from_previous_step> -u <apple_id> -p @keychain:"Application Loader: <apple_id>"
检查状态和错误日志(如果有)
- 可以使用
curl LogFileURL
下载错误日志,其中 LogFileURL 在 json 响应 中返回上一个命令
- 如果一切正常,只需使用命令
xcrun stapler staple -v <path_to_app_dmg_or_pkg>
装订公证;只能装订app、dmg和pkg
其他有用的命令:
- 使用
codesign -dvvv <path_to_file>
检查代码是否完成,同时检查时间戳值
- 使用
spctl -a -v <path_to_file>
检查装订是否有效
阅读有关公证的苹果文档,不清楚我们是否需要公证二进制文件(例如启动守护程序)、框架或动态库。
我们还需要对这些进行公证吗?
苹果文档可以在这里找到 Notarizing Your App Before Distribution
在这里回答我自己的问题,也许对某人有帮助。
这可以由Xcode自动完成;但是,如果您需要手动配置它(也许您有持续集成,或者 w/e),这可能会有所帮助。
根据 Apple 的说法:
Notarization gives users more confidence that the Developer ID-signed software you distribute has been checked by Apple for malicious components.
If there are no issues, the notary service generates a ticket for you to staple to your software
在未来的 macOS 版本中,二进制文件、框架、dylib、应用程序将需要公证。
为此,需要执行一些步骤:
- 在 Build Settings 中为每个生成二进制文件、框架、dylib 的目标添加
--timestamp
到 Other Code Signing Flags或应用 - 将
--options=runtime
添加到其他代码签名标志(对于Xcode < 10.2)或启用强化运行时 (对于 Xcode >= 10.2)在 构建设置 - 对所有内容进行代码签名(dylib、框架、二进制文件和 .apps。)
接下来可以进行如下公证:
- 将所有需要公证的文件打包成一个.zip文件(其他支持的格式:.dmg,[=34= .pkg)
- 将支持的格式上传到 Apple 公证服务:例如:
xcrun altool --notarize-app -f <path_to_zip_dmg_or_pkg> --primary-bundle-id <bundle_identifier> -u <apple_id> -p @keychain:"Application Loader: <apple_id>"
---> 这个 returns 一个 UUID 也将发送到公证完成后<apple_id>
所提供的邮件地址 - 使用
xcrun altool --notarization-info <UUID_from_previous_step> -u <apple_id> -p @keychain:"Application Loader: <apple_id>"
检查状态和错误日志(如果有)
- 可以使用
curl LogFileURL
下载错误日志,其中 LogFileURL 在 json 响应 中返回上一个命令 - 如果一切正常,只需使用命令
xcrun stapler staple -v <path_to_app_dmg_or_pkg>
装订公证;只能装订app、dmg和pkg
其他有用的命令:
- 使用
codesign -dvvv <path_to_file>
检查代码是否完成,同时检查时间戳值 - 使用
spctl -a -v <path_to_file>
检查装订是否有效