

In the Packaging section of the Build Settings, ensure your ist is created in the binary, and uses the correct file, as shown below.įinally, ensure that the Signing section is properly set up to use your Developer ID Application certificate, and that the Hardened Runtime is enabled there. Add a new Property List file with the name ist to your project, and add those items to it. When Xcode builds the tool, these will be embedded in the single Mach-O binary. If you’re successful in that, you finally staple the ticket to the package, and it’s ready to distribute.Ĭommand tools must have an ist file containing a minimum of three items: the Bundle Identifier, such as co.eclecticlight.blowhole, the Bundle Name, such as blowhole, and a version number, in a short Bundle Versions String. That signed package is then submitted to Apple for notarization. Once you’ve exported the built tool in an archive, you then build it into an Installer package, which has to be signed using a special Developer ID Distribution certificate from Apple. Those days have gone: to be hardened and signed, as required by Catalina, your tool needs an ist file, a signature, and the hardening flag.
#Command line tools for xcode code
There was no need for any ist file or code signature, so all you concentrated on was your code. In the past, writing command tools in Xcode has been relatively simple.

This saves you a fair bit of effort, particularly now that it can sign the package too, but unfortunately there’s still plenty of preparation and commands. Some time ago, I described how I went about turning my command tools like blowhole into signed Installer packages, using Stéphane Sudre’s excellent free Packages. This article looks at how you can achieve that, working through what I have done with my tool blowhole.
#Command line tools for xcode software
Yesterday I noted how one of the changed requirements in macOS 10.15 Catalina is that software which isn’t run by LaunchServices, such as command tools, will still need to satisfy new requirements for signature, hardening and notarization.
