Notes
  • 简介
  • Linux
    • Ubuntu
      • Ubuntu 20.04 ARM64 修改PAGE_SIZE 64k
    • Samba
      • CentOS7安装Samba
      • 简单案例
      • 审计
      • 相关命令
    • Systemd
    • FPM 打包 nginx rpm 包
    • rpm 打包-从二进制文件进行打包
    • Centos7 重置密码
    • CentOS7搭建kvm并创建虚拟机
    • CentOS7-KVM 嵌套虚拟化
    • CentOS7 KVM GPU 穿透
    • Bonding
    • CentOS7 发送邮件
    • CentOS7 安装 OpenVPN
    • Linux 多线路由策略
    • Webmin 安装
    • NoVNC 安装
    • SRS-RTMP 服务部署
    • CentOS7 安装 MongoDB
    • confluence 安装
    • jira 安装
    • crowd 安装
    • ScriptRunner For Jira
    • ScriptRunner For Confluence
    • Ubuntu VNC
    • Ubuntu18.04-VNC 安装
    • deb 打包
    • iptables
    • debian 保持软件包一致
    • Ubuntu18.04 编译安装 grpc
    • CentOS7 安装 odoo13
    • Pacemaker 入门
    • Firewalld Rich Language
    • PHP Xdebug
    • CentOS7.3 编译安装 Python3.6
    • 葫芦儿打包
    • CentOS7 安装 Tomcat8
    • CentOS7 安装 JDK
    • GuacamoleServer 编译安装
    • FreeBSD7.0安装AMP
    • CentOS7 换源
    • deb下载并离线安装
    • pip下载并离线安装
  • Network
    • 案例一
  • AI
    • 微调Qwen2.5
    • Qwen2.5 VL AWQ量化
    • qwen2.5 填充权重
  • JavaScript
  • Zabbix
    • CentOS7 安装 Zabbix4.0 LTS
    • Zabbix 加密连接
    • Zabbix 主动和被动模式
    • Zabbix 配置邮件报警
    • Zabbix 监控 MySQL
  • 数据库
    • MySQL
      • CentOS7 Install MySQL5.7
      • MySql 主从配置
      • CentOS7 安装 Percona XtraDB Cluster
      • MySql 压力测试-sysbench
      • MariaDB Galera Cluster
      • 备份脚本
    • MongoDB
      • 启用账号密码登录
      • 备份脚本
  • Nginx
    • CentOS7 安装 Nginx
    • Nginx 配置
    • nginx-http-flv-module
    • Nginx-WebDAV
  • Docker
    • CentOS7 安装 Docker
    • Dockerfile
    • DockerSwarm 集群
    • Docker 安装 guacamole
  • Python
    • 虚拟环境
  • Windows
    • Windows 问题集合
    • 迅雷自动安装 Chrome 插件
    • RDP 注册表
    • Rdp File Setting
    • 本地组策略对象(LGPO)工具
    • 禁用应用联网
    • SQL Server 问题处理
    • SQL Server Trigger
    • NSIS 脚本
    • 使用QEMU运行ARM64 CentOS7
    • DOS 脚本
    • Windows 11 设置旧版右键菜单
    • 远程桌面二次验证
  • Apple
    • AppStore 应用开发及上架
    • Apple 打包 Golang WebDav 制作 pkg 安装包
  • Android
    • Android Studio创建具有root权限的虚拟机
    • Android读写挂载system
    • Android安卓CA至系统
  • 证书
    • 证书名称(主题)
    • 证书扩展
    • SSL 自签
    • 免费 https 证书申请
  • 树莓派
    • 树莓派系统烧录及系统打包制作
    • 树莓派基础操作
    • 树莓派安装 NextCloud
    • 树莓派安装 LNMP
    • 树莓派自定义开机界面和登录提示
    • 树莓派安装 HomeAssistant
    • HomeAssistant 配置
    • 树莓派自动挂载 U 盘
    • 树莓派安装 vsftpd
    • vsftpd 配置文件详解
  • ceph
    • ceph-deploy 部署 ceph nautilus 版本
    • ceph dashboard
  • OpenStack
    • OpenStack VM 配置 Virtual IP
    • OpenStack Glance 对接 Ceph RBD 存储
    • OpenStack Cinder Volumes 对接 Ceph RBD 存储
    • OpenStack 集群搭建
    • OpenStack Rocky 单节点部署
    • OpenStack Rocky 集群部署
    • OpenStack CentOS6 镜像制作
    • OpenStack-Ubuntu 镜像制作
    • Openstack-Windows 镜像制作
    • OpenStack-RBD 导入镜像
    • OpenStack-Rocky 灾备
    • rbd-mirror
  • FFmpeg
    • CentOS7 静态编译FFmpeg
    • MacOS10.12静态编译FFmpeg
    • CentOS7 Arm64静态编译FFmpeg
    • 使用NVIDIA显卡
    • 脚本
  • Other
    • 华为一碰传标签制作
    • 常用软件
    • wireguard
由 GitBook 提供支持
在本页
  • 安装 Packages
  • 准备打包文件
  • 创建打包工程
  • 签名
  • 公正
  • 参考
  1. Apple

Apple 打包 Golang WebDav 制作 pkg 安装包

上一页AppStore 应用开发及上架下一页Android

最后更新于3年前

安装 Packages

  • 访问 packages 官网下载安装包并安装

    http://s.sudre.free.fr/Software/Packages/resources.html

  • 下载完成后,运行下载文件,根据提示进行安装

准备打包文件

  • webdav

    访问 https://github.com/hacdias/webdav/releases 下载 darwin-amd64-webdav.tar.gz

    获取压缩包里面的 webdav 文件

  • config.yaml

    # Server related settings
    address: 0.0.0.0
    port: 8888
    auth: true
    tls: false
    cert: cert.pem
    key: key.pem
    prefix: /
    
    users:
      - username: admin
        password: admin
        modify: true
        scope: /Library/Zhxlp/WebDav/data
  • com.zhxlp.webdav.plist

    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN"
            "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
    <plist version="1.0">
    <dict>
            <!-- Label唯一的标识 -->
            <key>Label</key>
            <string>com.zhxlp.webdav</string>
            <!-- 指定要运行的脚本 -->
            <key>ProgramArguments</key>
            <array>
                    <string>/Library/Zhxlp/WebDav/webdav</string>
                    <string>-c</string>
                    <string>/Library/Zhxlp/WebDav/config.yaml</string>
            </array>
            <!-- 开机时是否运行 -->
            <key>RunAtLoad</key>
            <true/>
            <!-- 程序是否需要一直运行 -->
            <key>KeepAlive</key>
            <true/>
            <!--
            工作目录
            <key>WorkingDirectory</key>
            <string>/Library/Zhxlp/WebDav/</string>
            调试模式
            <key>Debug</key>
            <true/>
            标准输出日志
            <key>StandardOutPath</key>
            <string>/tmp/com.zhxlp.webdav.log</string>
            错误输出日志
            <key>StandardErrorPath</key>
            <string>/tmp/com.zhxlp.webdav.log</string>
            -->
    </dict>
    </plist>
  • pre-installation.sh

    #!/usr/bin/env bash
    
    echo "Running pre script"
    
    if [[ -f "/Library/LaunchDaemons/com.zhxlp.webdav.plist" ]];then
        launchctl unload /Library/LaunchDaemons/com.zhxlp.webdav.plist
    fi
    exit 0
  • post-installation.sh

    #!/usr/bin/env bash
    
    echo "Running post script"
    
    if [[ -f "/Library/Zhxlp/WebDav/webdav" && -f "/Library/LaunchDaemons/com.zhxlp.webdav.plist" ]];then
        launchctl load /Library/LaunchDaemons/com.zhxlp.webdav.plist
    fi
    
    exit 0

创建打包工程

  • 在 Application 中打开 Packages,选择 Distribution,点击 Next

  • 设置工程名称和项目存储目录,点击 Create 创建

  • 配置项目

    配置安装方式选择 仅标准安装

    配置安装前和安装后运行脚本

    保存

    Build

签名

需要为您分发的所有可执行文件启用代码签名,并确保可执行文件具有有效的代码签名

需要为你需要公正的 pkg 包进行安装签名,并确保 pkg 文件具有有效的代码签名

代码签名需要使用 "Developer ID Application"证书,pkg 签名需要使用"Developer ID Installer"证书,请访问https://developer.apple.com/account/resources/certificates/ 进行创建

  • 查看可用于签名的证书

    security find-identity -v -p codesigning
  • 签名可执行文件

    -s 指定签名证书,使用上方查询到的证书

    codesign -f -o runtime --timestamp --deep -s "Developer ID Application: xxxxxxxxxxxxxxxxx" -i "com.zhxlp.webdav" resources/webdav
  • 查看文件签名

    codesign -dvv resources/webdav
  • 重新打包 pkg

  • 查看可用"Developer ID Installer"证书

    security find-identity -v | grep "Developer ID Installer"
  • 签名 pkg

    productsign --sign "Developer ID Installer: xxxxxxxxxxxxx" build/webdav.pkg build/webdav-sign.pkg
  • 查看 pkg 签名

    pkgutil --check-signature build/webdav-sign.pkg

公正

公正需要使用到开发者账号的用户名和密码,密码不是真实密码,而是 App 专用密码,访问 https://appleid.apple.com/ 获取

  • 查询 ProviderShortname

    xcrun altool --list-providers -u "zhxlp@zhxlp.com" -p "xxxx-xxxx-xxxx-xxxx"
  • 公正

    --asc-provider 使用上方查询的 ProviderShortname

    xcrun altool --notarize-app --primary-bundle-id "com.zhxlp.webdav" \
    --username "zhxlp@zhxlp.com" --password "xxxx-xxxx-xxxx-xxxx" \
    --asc-provider "xxxxx" -t osx --file build/webdav-sign.pkg
  • 查询公正结果

    --notarization-info 后面添加上次返回的 RequestUUID

    xcrun altool --notarization-info "e29a1737-2376-4601-acb7-ea971fd3c9bd" \
    --username "zhxlp@zhxlp.com" --password "xxxx-xxxx-xxxx-xxxx"

    公正结果一定要为 success 后再进行下一步操作,如遇见错误可以访问 LogFileURL 查看原因

  • 添加票证到 pkg 文件

    公证会生成一张票证,告知 Gatekeeper 您的应用程序已公证。公证成功完成后,下一次任何用户尝试在 macOS 10.14 或更高版本上运行您的应用程序时,Gatekeeper 都会在线找到该票证。其中包括在经过公证之前下载了您的应用的用户。

    您还应该使用该stapler工具将票证附加到软件上,以便将来的发行版中包括票证。这样可以确保即使网络连接不可用,网闸也可以找到故障单。要将票证附加到您的应用程序,捆绑软件,磁盘映像或固定安装程序包,请使用以下stapler工具:

    xcrun stapler staple build/webdav-sign.pkg
  • 查看票证是否添加成功

    返回 The validate action worked!表示成功

    xcrun stapler validate build/webdav-sign.pkg

参考

文件生成在项目目录的 build 文件夹中

发行前对 Mac OS 软件进行公证
自定义公证工作流程
解决常见的公证问题
创建启动守护程序和代理
image-20200608221908265
image-20200608233536688
image-20200608140338366
image-20200608133012590
image-20200608140556876
image-20200608141355771
image-20200608140932917
image-20200608141728298
image-20200608141104748
image-20200608141827205
image-20200608141858748
image-20200608141919715
image-20200608142034945
image-20200608141953254
image-20200608142103399
image-20200608142130069
image-20200608231232796
image-20200608234440030
image-20200608232605735
image-20200608235022003
image-20200608235204409
image-20200608235554796
image-20200609000027997
image-20200608225820508