From 2ae3f80b95130e302ee39691dfb6848955d32864 Mon Sep 17 00:00:00 2001 From: Jerry Date: Thu, 13 Feb 2020 13:34:09 -0800 Subject: [PATCH] Add documentation around manual code signing --- Xcode/BuildSystemIntegration.md | 43 +++++++++++++++++++++++++++++++++ 1 file changed, 43 insertions(+) create mode 100644 Xcode/BuildSystemIntegration.md diff --git a/Xcode/BuildSystemIntegration.md b/Xcode/BuildSystemIntegration.md new file mode 100644 index 0000000..39baf2b --- /dev/null +++ b/Xcode/BuildSystemIntegration.md @@ -0,0 +1,43 @@ +## Build system integration + +In Xcode, there are 2 build systems: Legacy and XCBuild. + +As of Xcode 11, XCBuild is the default build system selected by Xcode. As these +build systems have quite different implementations and integration points, the +document should discuss both. + + +## XCBuild architecture + +XCBuild runs a build system daemon as a child process inside of Xcode. Xcode and +the build service communicate via MessagePack protocol. +[XCBuildKit](https://github.com/jerrymarino/xcbuildkit) aims to provide a way to +integrate with XCBuild, and add features like the progress bar. + + +## XCBuild manual code signing + +By default, XCBuild requires code signing. + +Prior to building, it emits the following error: + +``` +An empty identity is not valid when signing a binary for the product type 'Application'. +``` + +Set the following setting to disable code signing errors and manually sign: +``` +CODE_SIGNING_ALLOWED = NO +CODE_SIGN_STYLE = manual +``` + + +## Legacy manual build code signing + +In legacy build, to disable code signing requires overriding 2 settings: + +``` +CODE_SIGNING_REQUIRED = NO +CODE_SIGN_STYLE = manual +``` +