美文网首页
Mac notarizing 公证使用记录

Mac notarizing 公证使用记录

作者: 一直小鱼 | 来源:发表于2020-02-06 15:49 被阅读0次

1. 关于公证苹果官方文档

官方公证文档

2. 新闻:苹果强制启用公证

2020年2月3日起,Mac App Store 以外通过其他途径分发的 Mac 软件必须经过 Apple 公证,才能在 macOS Catalina 中运行

3. 公证流程

  1. 苹果官方,申请账号、密码、证书

  2. dmgpkgzip包,进行签名

  3. 提交dmgpkgzip包,到Apple服务器

$ xcrun altool --notarize-app --primary-bundle-id "软件ID" --username "苹果账号" --password "密码" --file "本地文件路径"

提交后,会返回一个RequestUUID, 用这个id,获取公证结果。

公证有3中状态:success invalid in Progress

$ xcrun altool --notarization-info "服务器返回的RequestUUID" -u "苹果账号" -p "密码"

备注:公证结果, 也会发送至您注册苹果账号时邮箱中。

  1. 获取公证历史记录
$ xcrun altool --notarization-history 0 -u "苹果账号" -p "密码" | head -n 20

4. 公证可能遇到的问题

问题1: The executable does not have the hardened runtime enabled.

解决方法:对软件签名时候,增加选项 --options=runtime

$ codesign --options=runtime -f -s "证书名称" "文件"
问题2: The signature does not include a secure timestamp.

解决方法:对软件签名时候,增加选项 --timestamp

$ codesign --timestamp 
问题3: The binary is not signed.

有的时候发现对dmg包或zip包,都整体签名了。为什么还会提示这个?

因为:公证的软件包内,所有的可执行文件,都需要签名。

5. hardened.entitlements

entitlements官方文档

注意:增加的时候,千万不要出现重复值。大坑。

示例:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>com.apple.security.cs.allow-unsigned-executable-memory</key>
    <true/>
    <key>com.apple.security.cs.allow-jit</key>
    <true/>
    <key>com.apple.security.device.audio-input</key>
    <true/>
    <key>com.apple.security.device.bluetooth</key>
    <true/>
    <key>com.apple.security.device.camera</key>
    <true/>
    <key>com.apple.security.device.print</key>
    <true/>
    <key>com.apple.security.device.usb</key>
    <true/>
    <key>com.apple.security.cs.disable-executable-page-protection</key>
    <true/>
    <key>com.apple.security.cs.disable-library-validation</key>
    <true/>
    <key>com.apple.security.cs.allow-dyld-environment-variables</key>
    <true/>
</dict>
</plist>

6. codesign 命令详解

查看codesign命令帮助

$ man codesign

签名

$ codesign --entitlements=hardened.entitlements --timestamp --options=runtime -f -s  "证书名称" "文件" 

查看签名

$ codesign -dvvv filename.dmg

移除签名

$ codesign --remove-signature filename.dmg

相关文章

  • Mac notarizing 公证使用记录

    1. 关于公证苹果官方文档 官方公证文档 2. 新闻:苹果强制启用公证 2020年2月3日起,Mac App St...

  • 在办理留学马来西亚手续时,有哪些个人文件需要公证?

    需要办理公证的个人文件有: 学历公证 成绩公证 出身公证 无犯罪记录公证 以上公证文件可以在学生所在地的公证机关办...

  • 留学需要哪些资料翻译

    留学需要哪些资料 出生公证、无犯罪记录证明公证(18岁以下是监护人公证)、成绩单和在读证明公证、最高学历公证。这些...

  • 学习MySQL---ing

    @[toc] Mac MySQL使用教程 本文记录在我的GitHub 记录使用Homebrew安装Mysql全过...

  • Mac使用记录

    快捷键记录 最小化所有的窗口command + option + m + h 单独设置鼠标和触控板的滚动方向 触控...

  • Mac 使用记录

    关闭开机提示音

  • Mac应用签名+公证

    1.创建mac应用发布证书(账号持有人) 证书添加到钥匙串以后,xcode-preferences-account...

  • Node使用 MongoDB

    最近项目中需要使用MongoDB做数据存储,从安装到简单使用做下记录 Mac安装MongoDB Mac上使用 br...

  • vmstat: command not found

    Mac使用系统监控命令vmstat提示下面错误: 因为Mac使用的是vm_stat,特别记录一下:

  • Mac 快捷键

    记录mac 快捷键,要多使用,熟练之后再记录表格持续更新......

网友评论

      本文标题:Mac notarizing 公证使用记录

      本文链接:https://www.haomeiwen.com/subject/ehkuxhtx.html