-
Notifications
You must be signed in to change notification settings - Fork 7
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
2 changed files
with
75 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,69 @@ | ||
## iOS Signing | ||
|
||
Variants allows you to highly customize the signing for each variant and each type of signing (debug vs release). Internally, every variant will always have a debug signing and a release signing that are selected using the following priority order: | ||
|
||
`release_signing` (from variant configuration) > `signing` (from variant configuration) > `signing` (from global configuration) | ||
|
||
The same priority applies to the debug signing | ||
|
||
`debug_signing` (from variant configuration) > `signing` (from variant configuration) > `signing` (from global configuration) | ||
|
||
If no signing configuration is found, an error is thrown to the user so the `variants.yml` must be updated. | ||
|
||
### Configuration example | ||
|
||
Given the following `variants.yml`: | ||
|
||
```yaml | ||
ios: | ||
xcodeproj: SampleProject.xcodeproj | ||
target: | ||
... | ||
extensions: | ||
- name: TestWidgetExtension | ||
bundle_suffix: TestWidgetExtension | ||
signed: true | ||
variants: | ||
default: | ||
... # does not include a signing, debug_signing, or release_signing | ||
beta: | ||
signing: | ||
match_url: "[email protected]:sample/match.git" | ||
team_name: "Beta Backbase B.V." | ||
team_id: "DEF7654321D" | ||
export_method: "appstore" | ||
staging: | ||
signing: | ||
match_url: "[email protected]:sample/match.git" | ||
team_name: "Staging Backbase B.V." | ||
team_id: "ABD1234567D" | ||
export_method: "appstore" | ||
debug_signing: | ||
style: automatic | ||
prod: | ||
release_signing: | ||
match_url: "[email protected]:sample/match.git" | ||
team_name: "Prod Backbase B.V." | ||
team_id: "GHI8765432D" | ||
export_method: "appstore" | ||
debug_signing: | ||
style: automatic | ||
signing: | ||
match_url: "[email protected]:sample/match.git" | ||
team_name: "Backbase B.V." | ||
team_id: "ABC1234567D" | ||
export_method: "appstore" | ||
``` | ||
This is the output in Xcode and Matchfile: | ||
- For the `default` variant, both the release signing and debug signing will come from the global signing configuration. | ||
- For the `beta` variant, both the release signing and debug signing are overwritten by the local variant configuration. | ||
- For the `staging` variant, both the release signing and debug signing are overwritten, but in this case, the debug signing is overwritten by the `debug_signing` configuration and the release signing is overwritten by the `signing` configuration | ||
- For the `prod` variant, both the release signing and debug signing are overwritten, but in this case, the debug signing is overwritten by the `debug_signing` configuration and the release signing is overwritten by the `release_signing` configuration | ||
|
||
### Target extension signing | ||
|
||
The signing will also affect the sign of the target extensions listed in the `extensions` configuration that are marked with `signed` as `true`. They will follow the same rules as the main app as mentioned above. | ||
|
||
Extensions will inherit the signing configuration from the respective (debug / release) signing configuration of the current selected variant. |