Skip to content

Latest commit

 

History

43 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

howsigned

howsigned is a macOS CLI for auditing the signing state of Apple IPA archives. It is useful when a TestFlight or App Store submission fails because a nested app, extension, framework, or provisioning profile does not match expectations.

Install

gem install howsigned

The tool requires macOS developer tools (codesign and security) and Ruby 3.2 or newer.

Commands

Generate a complete, CI-friendly signing manifest:

howsigned manifest MyApp.ipa > signing-manifest.json

Verify every discovered nested binary. Exit status 1 means a signature finding:

howsigned verify MyApp.ipa

Inspect entitlements or embedded provisioning profiles:

howsigned entitlements MyApp.ipa
howsigned profiles MyApp.ipa
howsigned profiles --expiration MyApp.ipa

Compare two builds. Exit status 1 means their manifests differ:

howsigned compare Old.ipa New.ipa

All structured output is JSON. Exit status 2 indicates invalid input or usage; 3 indicates an unavailable tool or runtime failure.

GitHub releases

CI runs on macOS for Ruby 3.2–3.4, executes the test suite, and builds the gem. A tag such as v2.0.0 invokes the release workflow and publishes to RubyGems using the repository’s RUBYGEMS_API_KEY secret. GitHub is the release source of truth; do not upload gems manually.

Development

bundle install
bundle exec rake
gem build howsigned.gemspec

The tests use synthetic IPA archives and fake command execution, so they are safe to run without a signed application. The production audit remains macOS-specific because Apple’s signing tools are macOS tools.

License

MIT. See LICENSE.

About

Utility to see how binaries contained in an .ipa are signed

Resources

Stars

3 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages