Skip to content
This repository was archived by the owner on Feb 25, 2025. It is now read-only.

Commit 11a86fd

Browse files
authored
cipd: add mobileprovision CIPD package (#55449)
Adds instructions for creating updated CIPD packages containing a new provisioning profile that goes with an updated signing certificate, for use on Chromium CI bots. These are part of a broader set of steps required to renew our development signing certificate annually, as described in [cl/678826297](http://cl/678826297) (Google-internal). Issue: flutter/flutter#152888 [C++, Objective-C, Java style guides]: https://github.com/flutter/engine/blob/main/CONTRIBUTING.md#style
1 parent 6f802b3 commit 11a86fd

File tree

4 files changed

+122
-0
lines changed

4 files changed

+122
-0
lines changed

tools/cipd/mobileprovision/.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
development.mobileprovision

tools/cipd/mobileprovision/README.md

Lines changed: 63 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,63 @@
1+
# Updating mobile provisioning profile CIPD package
2+
3+
Once per year, the iOS development signing certificate used by devicelab and
4+
chrome bots expires and a new one must be issued. Once the new certificate has
5+
been created, a new provisioning profile needs to be created that will allow
6+
apps signed with both the old and new certificate to run on physical test
7+
devices.
8+
9+
These instructions cover one sub-step of the process of renewing our DeviceLab
10+
development signing certificates. For the full set of instructions, which are
11+
Google-internal, see
12+
[How to renew the DeviceLab development certificate][renew_dev_cert].
13+
14+
[renew_dev_cert]: https://g3doc.corp.google.com/company/teams/flutter/infrastructure/devicelab/apple_cert_renewal.md
15+
16+
17+
## Steps
18+
19+
1. Request write access via http://go/flutter-luci-cipd#requesting-write-read-access-to-cipd-packages.
20+
21+
2. Wait about 5 minutes for access rights to sync.
22+
23+
3. Copy the updated iOS provisioning profile to a file named `development.mobileprovision` in this directory.
24+
25+
4. Run `cipd create --pkg-def mac-arm64.yaml`.
26+
27+
5. Verify the package has been uploaded at: https://chrome-infra-packages.appspot.com/p/flutter_internal/mac/mobileprovision/mac-arm64
28+
29+
6. Click on the latest upload and copy the `Instance_ID` value.
30+
31+
7. Run `cipd create --pkg-def mac-amd64.yaml`.
32+
33+
8. Verify the package has been uploaded at: https://chrome-infra-packages.appspot.com/p/flutter_internal/mac/mobileprovision/mac-amd64
34+
35+
9. Click on the latest upload and copy the `Instance_ID` value.
36+
37+
10. Set the `latest` ref to the latest arm64 upload via the following command, replacing with the instance ID copied above:
38+
39+
```sh
40+
cipd set-ref flutter_internal/mac/mobileprovision/mac-arm64 -ref latest -version ARM64_INSTANCE_ID
41+
```
42+
43+
11. Set the `latest` ref to the latest amd64 upload via the following command, replacing with the instance ID copied above:
44+
45+
```sh
46+
cipd set-ref flutter_internal/mac/mobileprovision/mac-amd64 -ref latest -version AMD64_INSTANCE_ID
47+
```
48+
49+
12. Set the `version:to_2025` (or appropriate year) tag on the latest arm64 upload via the following command:
50+
51+
```sh
52+
cipd set-tag flutter_internal/mac/mobileprovision/mac-arm64 -tag "version:to_2025" -version ARM64_INSTANCE_ID
53+
```
54+
55+
13. Set the `version:to_2025` (or appropriate year) tag on the latest amd64 upload via the following command:
56+
57+
```sh
58+
cipd set-tag flutter_internal/mac/mobileprovision/mac-amd64 -tag "version:to_2025" -version AMD64_INSTANCE_ID
59+
```
60+
61+
14. Update `.ci.yaml` and migrate `apple_signing` steps to the new version tag.
62+
Before: `{"dependency": "apple_signing", "version": "version:to_2024"}`
63+
After: `{"dependency": "apple_signing", "version": "version:to_2025"}`
Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
# Comments are allowed.
2+
3+
# The package name is required. Third-party chromium dependencies should
4+
# unsurprisingly all be prefixed with chromium/third_party/.
5+
package: flutter_internal/mac/mobileprovision/mac-amd64
6+
7+
# The description is optional and is solely for the reader's benefit. It
8+
# isn't used in creating the CIPD package.
9+
description: iOS provisioning provide for "match Development" signing certificate
10+
11+
# The root is optional and, if unspecified, defaults to ".". It specifies the
12+
# root directory of the files and directories specified below in "data".
13+
#
14+
# You won't typically need to specify this explicitly.
15+
root: "."
16+
17+
# The install mode is optional. If provided, it specifies how CIPD should
18+
# install a package: "copy", which will copy the contents of the package
19+
# to the installation directory; and "symlink", which will create symlinks
20+
# to the contents of the package in the CIPD root inside the installation
21+
# directory.
22+
#
23+
# You won't typically need to specify this explicitly.
24+
install_mode: "copy"
25+
26+
# The data is required and described what should be included in the CIPD
27+
# package.
28+
data:
29+
- file: development.mobileprovision
Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
# Comments are allowed.
2+
3+
# The package name is required. Third-party chromium dependencies should
4+
# unsurprisingly all be prefixed with chromium/third_party/.
5+
package: flutter_internal/mac/mobileprovision/mac-arm64
6+
7+
# The description is optional and is solely for the reader's benefit. It
8+
# isn't used in creating the CIPD package.
9+
description: iOS provisioning provide for "match Development" signing certificate
10+
11+
# The root is optional and, if unspecified, defaults to ".". It specifies the
12+
# root directory of the files and directories specified below in "data".
13+
#
14+
# You won't typically need to specify this explicitly.
15+
root: "."
16+
17+
# The install mode is optional. If provided, it specifies how CIPD should
18+
# install a package: "copy", which will copy the contents of the package
19+
# to the installation directory; and "symlink", which will create symlinks
20+
# to the contents of the package in the CIPD root inside the installation
21+
# directory.
22+
#
23+
# You won't typically need to specify this explicitly.
24+
install_mode: "copy"
25+
26+
# The data is required and described what should be included in the CIPD
27+
# package.
28+
data:
29+
- file: development.mobileprovision

0 commit comments

Comments
 (0)