diff --git a/docs/build/img/notification-service-identifier-app-group-assignment.png b/docs/build/img/notification-service-identifier-app-group-assignment.png new file mode 100644 index 0000000..e882346 Binary files /dev/null and b/docs/build/img/notification-service-identifier-app-group-assignment.png differ diff --git a/docs/build/img/notification-service-identifier-app-groups.png b/docs/build/img/notification-service-identifier-app-groups.png new file mode 100644 index 0000000..7ac9844 Binary files /dev/null and b/docs/build/img/notification-service-identifier-app-groups.png differ diff --git a/docs/build/img/notification-service-identifier-edit.png b/docs/build/img/notification-service-identifier-edit.png new file mode 100644 index 0000000..536fb58 Binary files /dev/null and b/docs/build/img/notification-service-identifier-edit.png differ diff --git a/docs/build/lf-browser-build.md b/docs/build/lf-browser-build.md index 8f56fae..b71818e 100644 --- a/docs/build/lf-browser-build.md +++ b/docs/build/lf-browser-build.md @@ -31,6 +31,7 @@ Detailed directions are found in the next sections, this is the summary of what * New with LoopFollow version 6.0 and newer 1. Add the App Group to the Identifiers ([link](#add-app-group)) * New with LoopFollow version 8.0 and newer: the Apple Watch app adds 2 identifiers ([link](#update-to-loopfollow-v8)) + * New in the `dev` branch: LF Hub adds 1 identifier ([link](#update-for-lf-hub)) 1. Create the App in App Store Connect and configure TestFlight users ([link](#create-app-in-app-store-connect)) 1. Configure TestFlight users for the *LoopFollow* app ([link](#add-users-to-testflight-for-app)) 1. `Build LoopFollow` ([link](#build-app)) @@ -144,6 +145,7 @@ Existing Browser Builders who have not updated: * since version 5.x or older need to follow both sets of update instructions below * since version 6.x or 7.x should skip to [Update to *LoopFollow* v8](#update-to-loopfollow-v8) +* who build the `dev` branch also need [Update for LF Hub](#update-for-lf-hub) ### Update to *LoopFollow* v6 @@ -192,6 +194,37 @@ Existing Browser Builders who have not updated: If you skip these steps, the build log says `The Apple Watch app identifiers are not set up yet` with a link to this section. +### Update for LF Hub + +!!! important "Building the `dev` branch with LF Hub" + This information admonition is for builders of the `dev` branch. The same steps will be needed for the release that brings LF Hub to `main`. + + LF Hub alarms are rung by a new notification service extension, which needs 1 new identifier with the LoopFollow App Group. Your build will fail until you take these one-time steps. + + Run each action from the branch you build: in the `Run workflow` dropdown, select `dev` under `Use workflow from`. + + 1. Run the `Add Identifiers` action again + 2. Add the LoopFollow App Group to the new identifier, as described in [Add `App Group`](#add-app-group): + * LoopFollow Notification Service + 3. Run the `Create Certificates` action + 4. Run the `Build LoopFollow` action + + In the [Identifiers list](https://developer.apple.com/account/resources/identifiers/list), open the notification service identifier. Its Bundle ID ends in `.LoopFollowNotificationService`: + + ![the notification service identifier: the Bundle ID ends in .LoopFollowNotificationService](img/notification-service-identifier-edit.png){width="700"} + + Scroll down to `App Groups`. When the box is checked and the notes say `Enabled App Groups (1)`, tap `Edit` to check that it is the LoopFollow App Group: + + ![the App Groups row of the notification service identifier](img/notification-service-identifier-app-groups.png){width="700"} + + ![the LoopFollow App Group selected for the notification service identifier](img/notification-service-identifier-app-group-assignment.png){width="600"} + + If you changed anything, tap `Continue`, then `Save` and `Confirm`. If you only checked, tap `Cancel`. + + If you already built a version with LF Hub with *Xcode*, *Xcode* created the identifier for you, and `Add Identifiers` keeps its name. Its name starts with `XC`, see [Previous Xcode Builders](#previous-xcode-builders). You do not need to delete it, but check that it has the LoopFollow App Group. + + If you skip these steps, the build log says `The LoopFollow Notification Service identifier is not set up yet`. + The `LoopFollow` *App Group* already exists if you previously built the *LoopFollow* app using *Xcode* with this *Apple Developer ID*. In that case, skip ahead to [Optional: App Group Description Modification](#optional-app-group-description-modification) to update the description. ## Create the LoopFollow Group @@ -242,6 +275,7 @@ For each Identifier in the table below, click on the Identifier and then add the | --- | --- | | LoopFollow | com.TEAMID.LoopFollow | | LoopFollow Live Activity Extension | com.TEAMID.LoopFollow.LoopFollowLAExtension | +| LoopFollow Notification Service (`dev`) | com.TEAMID.LoopFollow.LoopFollowNotificationService | | LoopFollow Watch App | com.TEAMID.LoopFollow.watchkitapp | | LoopFollow Watch Complications | com.TEAMID.LoopFollow.watchkitapp.widgets | @@ -255,6 +289,7 @@ If you previously built *LoopFollow* with *Xcode*, the NAME of an identifier may |:--|:--|:--| | LoopFollow | XC com TEAMID LoopFollow | com.TEAMID.LoopFollow | | LoopFollow Live Activity Extension | XC com TEAMID LoopFollow LoopFollowLAExtension | com.TEAMID.LoopFollow.LoopFollowLAExtension | +| LoopFollow Notification Service | XC com TEAMID LoopFollow LoopFollowNotificationService | com.TEAMID.LoopFollow.LoopFollowNotificationService | | LoopFollow Watch App | XC com TEAMID LoopFollow watchkitapp | com.TEAMID.LoopFollow.watchkitapp | | LoopFollow Watch Complications | XC com TEAMID LoopFollow watchkitapp widgets | com.TEAMID.LoopFollow.watchkitapp.widgets | @@ -282,7 +317,7 @@ If you did not need to make changes, the `Save` button will not be active. The full list of Identifiers should be displayed again. -Repeat until the 4 Identifiers have the `LoopFollow App Group` configured. +Repeat until the 4 Identifiers have the `LoopFollow App Group` configured, or 5 Identifiers if you build the `dev` branch. * If you miss an identifier, the `Create Certificates` step will succeed but `Build LoopFollow` will fail. @@ -306,14 +341,17 @@ Refer to the table below to see how the App Group and Identifiers for LoopFollow | --- | --- | | LoopFollow | com.TEAMID.LoopFollow | | LoopFollow Live Activity Extension | com.TEAMID.LoopFollow.LoopFollowLAExtension | +| LoopFollow Notification Service (`dev`) | com.TEAMID.LoopFollow.LoopFollowNotificationService | | LoopFollow Watch App | com.TEAMID.LoopFollow.watchkitapp | | LoopFollow Watch Complications | com.TEAMID.LoopFollow.watchkitapp.widgets | | LoopFollowSecond | com.TEAMID.LoopFollow.Second | | LoopFollowSecond Live Activity Extension | com.TEAMID.LoopFollow.Second.LoopFollowLAExtension | +| LoopFollowSecond Notification Service (`dev`) | com.TEAMID.LoopFollow.Second.LoopFollowNotificationService | | LoopFollowSecond Watch App | com.TEAMID.LoopFollow.Second.watchkitapp | | LoopFollowSecond Watch Complications | com.TEAMID.LoopFollow.Second.watchkitapp.widgets | | LoopFollowThird | com.TEAMID.LoopFollow.Third | | LoopFollowThird Live Activity Extension | com.TEAMID.LoopFollow.Third.LoopFollowLAExtension | +| LoopFollowThird Notification Service (`dev`) | com.TEAMID.LoopFollow.Third.LoopFollowNotificationService | | LoopFollowThird Watch App | com.TEAMID.LoopFollow.Third.watchkitapp | | LoopFollowThird Watch Complications | com.TEAMID.LoopFollow.Third.watchkitapp.widgets |