Coder Social home page Coder Social logo

notarize's Introduction

Notarize

Command line tool to easily notarize a Mac app

latest swift5 platform license



Apple recently added a new service where they will check and approve an app to not execute malcious code. It is a great security improvement, but the downside is that this adds a new step in the build system.

This project is created to make it easy to automate this process.

Installation

  1. Download the latest release
  2. Run the install script: $ ./install.sh

Usage

Example

$ notarize \
    --package "~/path/to/app.dmg" \
    --username "[email protected]" \
    --password "@keychain:AC_PASSWORD" \
    --primary-bundle-id "com.company.appname.dmg"

Description

$ notarize --help

    Copyright (c) 2019, Morten Nielsen.

    Version: Notarize 1.0.0 NotarizeKit 1.0.0

    Usage: --package <path> --username <username> --password <password> --primary-bundle-id <primary-bundle-id>

    Options:

    --package            Path to either DMG or zip file.
    --username           Email associated with Apple Connect.
    --password           Password for Apple Connect. Can be plain text, but it is recommended to use "@keychain:<name>".
    --primary-bundle-id  Bundle id of package. e.g. "com.company.appName.dmg".
    --asc-provider       Specify asc provider.

    --help               Display options.

What does it actually do?

  1. Uses $ xcrun altool to upload the app package to Apple's servers.
  2. Waits for the app to be notarized. Checks every 30 seconds.
  3. Staples the app package with the generated certificate using $ xcrun stapler staple <path>

FAQ

  • Notarize says the package is invalid?
    • Notarize will print a UUID, which you can use to see the error log from Apple. The error log can be seen using $ xcrun altool --notarization-info

License

MIT © Morten Nielsen

notarize's People

Contributors

mortennn avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

notarize's Issues

Doesn't work on Apple Sillicon

Even after compiling your tool natively for arm64, it doesn't correctly work. It works fine on x86_64 machine with the same project though.

Uploading to notarization services
Command failed:
<?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>notarization-upload</key>
	<dict>
		<key>RequestUUID</key>
		<string>6b1dfdbf-d8fe-48b3-b227-afca7b4b3d60</string>
	</dict>
	<key>os-version</key>
	<string>11.0.0</string>
	<key>success-message</key>
	<string>No errors uploading 'myzip.zip'.</string>
	<key>tool-path</key>
	<string>/Applications/Xcode.app/Contents/SharedFrameworks/ContentDeliveryServices.framework/Versions/A/Frameworks/AppStoreService.framework</string>
	<key>tool-version</key>
	<string>4.029.1194</string>
</dict>
</plist>


Caused by command:
xcrunaltool--notarize-app-tosx--output-formatxml--usernameXXX--passwordXXX myzip.zip--primary-bundle-idcom.apple.com.blabla
Upload to notarization services failed.

Can't install

Seems like a great tool, but I'm trying to get it installed.

This is the error I get when I run the install.sh script in Terminal:
Notarize-1.0.0/scripts/bin: No such file or directory

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.