Skip to content

egorFiNE/codesign-parallel

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

codesign_parallel

A wrapper that accepts standard codesign arguments plus a list of binaries, then distributes the signing work across multiple CPU cores for improved throughput.

Usage

codesign_parallel [PARALLEL_OPTIONS] [CODESIGN_OPTIONS...] -- BINARY1 [BINARY2 ...]

Note: unlike with original codesign, -- is a mandatory delimiter before the list of binaries for codesign_parallel.

Binary ordering

It is important to sign all frameworks, dylibs and other executables inside the bundle before signing the bundle itself. Because codesign_parallel does not do dependency resolution whatsoever it is the responsibility of the developer to order signing appropriately. See an example below in the Examples section.

codesign_parallel options (wrapper-specific, stripped before passing to codesign)

Flag Description
--parallel=N Override auto-detected CPU count with N workers
--fail-fast Kill all workers immediately when any codesign fails (default: power through to the bitter end)

All other arguments before -- are passed directly to codesign.

Examples

# Sign multiple binaries with identity
codesign_parallel -s "Developer ID" --options runtime -- app1 app2 app3

# Limit parallelism to 4 workers
codesign_parallel --parallel=4 -s "Developer ID" -- *.dylib

# Sign all dylibs and Frameworks in an .app
codesign_parallel -s "Developer ID" --options runtime -- \
  $(find Something.app -type f -name \*.dylib) \
  $(find Something.app -type d -name \*.Framework)

# Then sign the app itself (no need for parallel here)
codesign -s "Developer ID" --options runtime Something.app

Installation

make
make install

No homebrew formula yet.

License

MIT.

About

A parallel wrapper around macOS codesign for faster code signing

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published