xcnotary, the missing Mac app notarization helper made with Rust

栏目: IT技术 · 发布时间: 4年前

xcnotary, the missing Mac app notarization helper made with Rust

the missing macOS app notarization helper, built with Rust

About

Notarizing a macOS app involves a series of manual steps, including zipping the bundle, uploading it to to Apple, and polling the notarization service.

xcnotary automates these steps for you. It:

stderr

xcnotary, the missing Mac app notarization helper made with Rust

Screencap sped up for brevity. The service takes several minutes to notarize your upload.

Installation

Homebrew

brew install akeru-inc/tap/xcnotary

Usage

xcnotary \
  -d <Apple Developer account> \
  -k <keychain item for Apple Developer account password, see below> \
  -b <bundle path>

Specifying the password keychain item

This tool does not handle your Apple Developer password. Instead, Xcode's helper altool reads an app-specific Apple Developer ID password directly from the keychain. See the documentation for xcrun altool --store-password-in-keychain-item to set up a suitable keychain item.

Required network access

  • Xcode's altool will connect to several Apple hosts as outlined in the documentation .

  • When notarization fails, xcnotary will connect to https://osxapps-ssl.itunes.apple.com/ on port 443 to retrieve the failure log.

Bundle pre-checks

xcnotary attempts to check your bundle for some common notarization issues before uploading it to Apple. While not foolproof, these checks may potentially save you minutes waiting for a response only to fail due to an incorrect code signing flag.

xcnotary, the missing Mac app notarization helper made with Rust

The following checks are currently performed:

  • Bundle being signed with a Developer ID certificate and not containing unsigned items.
  • Bundle being signed with a secure timestamp.
  • Bundle not having the get-task-allow entitlement.
  • Bundle having hardened runtime enabled.

Building a notarization-friendly bundle

Following is a working example that sets various necessary build flags, such as code signing with a "secure timestamp":

xcodebuild \
   -target <target> \
   -scheme <scheme> \
   -configuration Release \
   -derivedDataPath .xcodebuild \
   "CODE_SIGN_IDENTITY=Developer ID Application: <team name>" \
   "OTHER_CODE_SIGN_FLAGS=--timestamp --options=runtime" \
   CODE_SIGN_INJECT_BASE_ENTITLEMENTS=NO \
   CODE_SIGN_STYLE=Manual

CODE_SIGN_IDENTITY should match the corresponding Keychain certificate.

Note that --options=runtime will have the effect of opting in your binary to the hardened runtime environment. You most likely want to first manually enable the "Hardened Runtime" capability in Xcode's target settings > "Signing and Capabilities" and make sure your application functions as expected. There, you may also add any entitlements to relax the runtime restrictions.

Contact

Feature requests/comments/questions? Write: david@akeru.com


以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

从问题到程序

从问题到程序

裘宗燕 / 机械工业出版社 / 2011-5 / 39.00元

《从问题到程序:程序设计与C语言引论(第2版)》以C作为工具语言,讨论了基本程序设计的各方面内容,详细解释了与c语言和程序设计有关的问题。在新版中,特别加强了针对近年日益受到业界和学术界广泛重视的问题的讨论,并通过详细地分析和讨论大量符合C99标准的实例,给出了分析和分解问题、找出解决问题的主要步骤、确定函数抽象、找出循环、选择语言结构直至最后做出所需程序的完整过程。 《从问题到程序:程序设......一起来看看 《从问题到程序》 这本书的介绍吧!

随机密码生成器
随机密码生成器

多种字符组合密码

HTML 编码/解码
HTML 编码/解码

HTML 编码/解码

html转js在线工具
html转js在线工具

html转js在线工具