Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
40 changes: 39 additions & 1 deletion docs/build/lf-browser-build.md
Original file line number Diff line number Diff line change
Expand Up @@ -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))
Expand Down Expand Up @@ -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

Expand Down Expand Up @@ -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
Expand Down Expand Up @@ -242,6 +275,7 @@ For each Identifier in the table below, click on the Identifier and then add the
| --- | --- |
| <span translate="no">LoopFollow</span> | <span translate="no">com.TEAMID.LoopFollow</span> |
| <span translate="no">LoopFollow Live Activity Extension</span> | <span translate="no">com.TEAMID.LoopFollow.LoopFollowLAExtension</span> |
| <span translate="no">LoopFollow Notification Service</span> (`dev`) | <span translate="no">com.TEAMID.LoopFollow.LoopFollowNotificationService</span> |
| <span translate="no">LoopFollow Watch App</span> | <span translate="no">com.TEAMID.LoopFollow.watchkitapp</span> |
| <span translate="no">LoopFollow Watch Complications</span> | <span translate="no">com.TEAMID.LoopFollow.watchkitapp.widgets</span> |

Expand All @@ -255,6 +289,7 @@ If you previously built *LoopFollow* with *Xcode*, the NAME of an identifier may
|:--|:--|:--|
| <span translate="no">LoopFollow</span> | <span translate="no">XC com TEAMID LoopFollow</span> | <span translate="no">com.TEAMID.LoopFollow</span> |
| <span translate="no">LoopFollow Live Activity Extension</span> | <span translate="no">XC com TEAMID LoopFollow LoopFollowLAExtension</span> | <span translate="no">com.TEAMID.LoopFollow.LoopFollowLAExtension</span> |
| <span translate="no">LoopFollow Notification Service</span> | <span translate="no">XC com TEAMID LoopFollow LoopFollowNotificationService</span> | <span translate="no">com.TEAMID.LoopFollow.LoopFollowNotificationService</span> |
| <span translate="no">LoopFollow Watch App</span> | <span translate="no">XC com TEAMID LoopFollow watchkitapp</span> | <span translate="no">com.TEAMID.LoopFollow.watchkitapp</span> |
| <span translate="no">LoopFollow Watch Complications</span> | <span translate="no">XC com TEAMID LoopFollow watchkitapp widgets</span> | <span translate="no">com.TEAMID.LoopFollow.watchkitapp.widgets</span> |

Expand Down Expand Up @@ -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.

Expand All @@ -306,14 +341,17 @@ Refer to the table below to see how the App Group and Identifiers for LoopFollow
| --- | --- |
| <span translate="no">LoopFollow</span> | <span translate="no">com.TEAMID.LoopFollow</span> |
| <span translate="no">LoopFollow Live Activity Extension</span> | <span translate="no">com.TEAMID.LoopFollow.LoopFollowLAExtension</span> |
| <span translate="no">LoopFollow Notification Service</span> (`dev`) | <span translate="no">com.TEAMID.LoopFollow.LoopFollowNotificationService</span> |
| <span translate="no">LoopFollow Watch App</span> | <span translate="no">com.TEAMID.LoopFollow.watchkitapp</span> |
| <span translate="no">LoopFollow Watch Complications</span> | <span translate="no">com.TEAMID.LoopFollow.watchkitapp.widgets</span> |
| <span translate="no">LoopFollowSecond</span> | <span translate="no">com.TEAMID.LoopFollow.Second</span> |
| <span translate="no">LoopFollowSecond Live Activity Extension</span> | <span translate="no">com.TEAMID.LoopFollow.Second.LoopFollowLAExtension</span> |
| <span translate="no">LoopFollowSecond Notification Service</span> (`dev`) | <span translate="no">com.TEAMID.LoopFollow.Second.LoopFollowNotificationService</span> |
| <span translate="no">LoopFollowSecond Watch App</span> | <span translate="no">com.TEAMID.LoopFollow.Second.watchkitapp</span> |
| <span translate="no">LoopFollowSecond Watch Complications</span> | <span translate="no">com.TEAMID.LoopFollow.Second.watchkitapp.widgets</span> |
| <span translate="no">LoopFollowThird</span> | <span translate="no">com.TEAMID.LoopFollow.Third</span> |
| <span translate="no">LoopFollowThird Live Activity Extension</span> | <span translate="no">com.TEAMID.LoopFollow.Third.LoopFollowLAExtension</span> |
| <span translate="no">LoopFollowThird Notification Service</span> (`dev`) | <span translate="no">com.TEAMID.LoopFollow.Third.LoopFollowNotificationService</span> |
| <span translate="no">LoopFollowThird Watch App</span> | <span translate="no">com.TEAMID.LoopFollow.Third.watchkitapp</span> |
| <span translate="no">LoopFollowThird Watch Complications</span> | <span translate="no">com.TEAMID.LoopFollow.Third.watchkitapp.widgets</span> |

Expand Down