From 3bdf99f9ac2affab32c9c912c2d4d15229986371 Mon Sep 17 00:00:00 2001 From: marionbarker Date: Sat, 25 Apr 2026 08:37:12 -0700 Subject: [PATCH 1/7] update build directions for release 6.0 --- ...update-identifier-loopfollow-app-group.svg | 95 +++++++++++++++ docs/build/lf-browser-build.md | 112 ++++++++++++++++-- docs/faqs/lf-faqs.md | 10 ++ 3 files changed, 208 insertions(+), 9 deletions(-) create mode 100644 docs/build/img/update-identifier-loopfollow-app-group.svg diff --git a/docs/build/img/update-identifier-loopfollow-app-group.svg b/docs/build/img/update-identifier-loopfollow-app-group.svg new file mode 100644 index 0000000..73d89b0 --- /dev/null +++ b/docs/build/img/update-identifier-loopfollow-app-group.svg @@ -0,0 +1,95 @@ + + + +3 diff --git a/docs/build/lf-browser-build.md b/docs/build/lf-browser-build.md index 2311867..d2a92f4 100644 --- a/docs/build/lf-browser-build.md +++ b/docs/build/lf-browser-build.md @@ -26,12 +26,15 @@ If you choose, you can: Detailed directions are found in the next sections, this is the summary of what you will do: 1. Click on the link to open the repository in your browser -2. `Fork` the repository to your organization -3. Open your `fork` and enable Actions -4. `Add Identifiers` -5. Review App Identifier in Apple Developer portal -6. Add the App in App Store Connect and configure TestFlight users -7. `Build LoopFollow` +1. `Fork` the repository to your organization +1. Open your `fork` and enable Actions +1. `Add Identifiers` +1. Review App Identifier in Apple Developer portal +1. Create a `LoopFollow App Group` + * One Time Only, New with LoopFollow version 6.0 and newer +1. Add the App Group to the Identifiers +1. Add the App in App Store Connect and configure TestFlight users +1. `Build LoopFollow` !!! tip "What About Other Actions" * You already have your organization configured, there is no need to run `Validate Secrets` @@ -139,12 +142,103 @@ Open this link: [Certificates, Identifiers & Profiles: Identifiers List](https:/ After successfully performing the `Add Identifiers Action`, you will see the identifier for your app with a Name and Bundle ID matching that in the table below. You will see your unique TEAMID embedded in the identifier. (If you previously built this App with Xcode, the name may start with XC but the ending should match.) -| App Name | Name | Bundle ID | -| --- | --- | --- | -| LoopFollow | LoopFollow | com.TEAMID.LoopFollow | +| Name (Description) | Bundle ID | +| --- | --- | +| LoopFollow | com.TEAMID.LoopFollow | +| LoopFollow Live Activity Extension | com.TEAMID.LoopFollow.LoopFollowLAExtension | > If you build from a second or third `repository` for `LoopFollow`, the Name will end in `Second` or `Third` and Bundle ID will have `.Second` or `.Third` at the end. +### Create `App Group` + +!!! important "Updating LoopFollow to version 6.0 and newer" + New builders - just follow the instructions as provided on this page. + + This information admonition is for existing builders who need to update. + + The addition of Live Activity requires adding the LoopFollow App Group. Your build will fail until you take these steps. + + If you are updating from an earlier version, sync your fork and then: + + 1. Run the `Add Identifiers` action again + 2. Create the LoopFollow App Group + 3. Add the LoopFollow App Group to the 2 identifiers: + * LoopFollow + * LoopFollow Live Activity Extension + + +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. + +If you have never built the *LoopFollow* app with *Xcode* using your `TEAMID`, you need to create an *App Group* associated with your `TEAMID`. + +1. Open this link: [Register an App Group](https://developer.apple.com/account/resources/identifiers/applicationGroup/add/) on the *Apple Developer* site. +1. For **`Description`**, use `LoopFollow App Group`. +1. For **`Identifier`**, enter `group.com.TEAMID.LoopFollow`, substituting your team id for `TEAMID`. +1. Double-check the spelling - your `TEAMID` must be correct and the `LoopFollow` *App Group* must match the format shown in the previous step + * A mistake here means you will not be able to build the *LoopFollow* app until you fix it +1. Click `Continue` and then `Register`. + +If this is successful, then [:material-skip-forward:](#add-app-group) skip ahead to [Add `App Group`](#add-app-group) + +If you get an error saying `An Application Group with Identifier 'group.com.TEAMID.loopkit.LoopGroup' is not available. Please enter a different string`, that means you already have the `Loop App Group` assigned to your account. Continue with the next section. + +#### Optional: App Group Description Modification + +> This step is not required, but if you previously built using a Mac with Xcode, it is a good idea to update the Name associated with the Identifier for the Loop App Group. Then what you see on your display will match the directions as you continue. + +??? tip "Optional Rename Step (click to open/close)" + Click to display the [App Group List](https://developer.apple.com/account/resources/identifiers/list/applicationGroup) + + Tap on the Identifier that shows `group.com.TEAMID.loopkit.LoopGroup` where TEAMID is your Developer ID. + + * This opens the `Edit your Identifier Configuration` screen + * In the Description box in the upper left, edit the Description to match the **NAME** + * Tap Save in the upper right and confirm the the change for that identifier._ + + Notice in the table below that the XCode version of the **NAME** for the `App Group` is the same as the **IDENTIFIER** but with the `.` replaced with a space. + + | NAME | XCode version | IDENTIFIER | + |:--|:--|:--| + | Loop App Group | group com TEAMID loopkit LoopGroup| group.com.TEAMID.loopkit.LoopGroup | + +### Add `App Group` + +First, review the Identifiers and then [Add `App Group` to Identifiers](#add-app-group-to-identifiers). + +### Identifiers for the *LoopFollow* app + +For each identifier in the table below, click on the Identifer and then add the LoopFollow App Group to the App Group capability. + +| Name (Description) | Bundle ID | +| --- | --- | +| LoopFollow | com.TEAMID.LoopFollow | +| LoopFollow Live Activity Extension | com.TEAMID.LoopFollow.LoopFollowLAExtension | + + +The example graphic below has numbered steps that match these directions. The columns from left to right are `Capabilities`, `App Services` and `Capability Requests`. The check box under `Capabilities` will already be checked for you.: + +1. Looking at the `App Services` column, scroll down to the `App Groups` row and ensure the check box (under the `Capabilities column`) for `App Groups` is checked +2. If the word `Configure` shows up, tap on it + * This opens the `App Group Assignment` screen + * If it said `Edit` instead of `Configure` - you can click to confirm you have the correct App Group but won't need to continue or save if it is correct +3. Check the box by `LoopFollow App Group` that uses your `TEAMID` in `group.com.TEAMID.LoopFollow` + * Note that if you previously built with Xcode, the name may be different, i.e., `XC group com TEAMID LoopFollow` +4. Tap `Continue` +5. Tap `Save` + +![graphic showing selection of the correct App Group](img/update-identifier-loopfollow-app-group.svg){width="700"} +{align="center"} + +If you did not need to make changes, the `Save` button will not be active. + +* Tap on the `< All Identifiers` link at the top left + +The full list of Identifiers should be displayed again. + +Repeat until the 2 Identifiers have the `LoopFollow App Group` configured. + +* If you miss an identifier, the `Create Certificates` step will succeed but `Build LoopFollow` will fail. + - - - ## Create App in App Store Connect diff --git a/docs/faqs/lf-faqs.md b/docs/faqs/lf-faqs.md index c7e628d..d9bf209 100644 --- a/docs/faqs/lf-faqs.md +++ b/docs/faqs/lf-faqs.md @@ -10,6 +10,15 @@ This section consolidates version requirements for *LoopFollow* to work with *Loop* and *Trio*, and provides historical context for how remote control has evolved. +It also lists updates to the method for using Browser Build. + +### *LoopFollow* Version 6.0 and newer + +With the addition of Live Activity to *LoopFollow*, the build directions for browser build were updated. + +* If you use Browser Build, your automatic build will fail until you add the new Identifier, create the `LoopFollow App Group` and include the `LoopFollow App Group` in the capabilities for the *LoopFollow* Identifiers. +* Instructions start here: [Add LoopFollow App Group](../build/lf-browser-build.md#create-app-group){: target="_blank" } + ### *LoopFollow* and *Loop* Compatibility | Feature | Minimum Versions Required | @@ -61,3 +70,4 @@ The APNS credentials only need to be in *Nightscout* if you also use *Nightscout | 4.0 | *Trio* 0.6 remote control support; share remote configuration via QR code | | 4.3 | Separate QR codes for *Nightscout* Site, Dexcom Share, Remote Settings, and Alarm Settings | | 4.6 | Real-time APNS notifications returned from the *Loop* phone (requires *Loop* v3.11.1 or newer) | +| 6.0 | Live Activity added - must use LoopFollow App Group to build
see [Add LoopFollow App Group](../build/lf-browser-build.md#create-app-group){: target="_blank" } | From d15b4b6a561246538c24e37238b3338d6c298097 Mon Sep 17 00:00:00 2001 From: marionbarker Date: Sat, 25 Apr 2026 10:23:00 -0700 Subject: [PATCH 2/7] fix typos and improve instructions --- docs/build/lf-browser-build.md | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/docs/build/lf-browser-build.md b/docs/build/lf-browser-build.md index d2a92f4..a168c8d 100644 --- a/docs/build/lf-browser-build.md +++ b/docs/build/lf-browser-build.md @@ -25,16 +25,16 @@ If you choose, you can: Detailed directions are found in the next sections, this is the summary of what you will do: -1. Click on the link to open the repository in your browser -1. `Fork` the repository to your organization -1. Open your `fork` and enable Actions -1. `Add Identifiers` -1. Review App Identifier in Apple Developer portal -1. Create a `LoopFollow App Group` +1. Open the *LoopFollow* repository in your browser ([link](#fork-loopfollow)) +1. `Fork` the repository to your organization ([link](#create-the-fork)) +1. `Add Identifiers` ([link](#add-identifiers)) +1. Review App Identifier in Apple Developer portal ([link](#review-app-identifier)) +1. Create a `LoopFollow App Group` ([link](#create-app-group)) * One Time Only, New with LoopFollow version 6.0 and newer -1. Add the App Group to the Identifiers -1. Add the App in App Store Connect and configure TestFlight users -1. `Build LoopFollow` +1. Add the App Group to the Identifiers ([link](#add-app-group)) +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)) !!! tip "What About Other Actions" * You already have your organization configured, there is no need to run `Validate Secrets` @@ -158,7 +158,7 @@ After successfully performing the `Add Identifiers Action`, you will see the ide The addition of Live Activity requires adding the LoopFollow App Group. Your build will fail until you take these steps. - If you are updating from an earlier version, sync your fork and then: + If you are updating from an earlier version, **sync your fork** and then: 1. Run the `Add Identifiers` action again 2. Create the LoopFollow App Group @@ -180,7 +180,7 @@ If you have never built the *LoopFollow* app with *Xcode* using your `TEAMID`, y If this is successful, then [:material-skip-forward:](#add-app-group) skip ahead to [Add `App Group`](#add-app-group) -If you get an error saying `An Application Group with Identifier 'group.com.TEAMID.loopkit.LoopGroup' is not available. Please enter a different string`, that means you already have the `Loop App Group` assigned to your account. Continue with the next section. +If you get an error saying `An Application Group with Identifier 'group.com.TEAMID.LoopFollow' is not available. Please enter a different string`, that means you already have the `LoopFollow App Group` assigned to your account. Continue with the next section. #### Optional: App Group Description Modification @@ -203,7 +203,7 @@ If you get an error saying `An Application Group with Identifier 'group.com.TEAM ### Add `App Group` -First, review the Identifiers and then [Add `App Group` to Identifiers](#add-app-group-to-identifiers). +You will [Add `App Group` to Identifiers](#add-app-group-to-identifiers) for *LoopFollow*. ### Identifiers for the *LoopFollow* app From 6e1cd893f3933f25e2c4a42d627a2b763678a7a5 Mon Sep 17 00:00:00 2001 From: marionbarker Date: Sat, 25 Apr 2026 10:30:47 -0700 Subject: [PATCH 3/7] fix a few copies from loopdocs that were not updated --- docs/build/lf-browser-build.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/docs/build/lf-browser-build.md b/docs/build/lf-browser-build.md index a168c8d..35d77f4 100644 --- a/docs/build/lf-browser-build.md +++ b/docs/build/lf-browser-build.md @@ -89,7 +89,7 @@ You start by opening a browser using the URL from the table below. Most people o * Leave the selection that says "`Copy the main branch only`" checked * Click on the green `Create fork` button - ![fork information for LoopWorkspace](img/fork-org.gif){width="700"} + ![fork information for LoopWorkspac](img/fork-org.gif){width="700"} {align="center"} #### Successful Fork @@ -184,12 +184,12 @@ If you get an error saying `An Application Group with Identifier 'group.com.TEAM #### Optional: App Group Description Modification -> This step is not required, but if you previously built using a Mac with Xcode, it is a good idea to update the Name associated with the Identifier for the Loop App Group. Then what you see on your display will match the directions as you continue. +> This step is not required, but if you previously built using a Mac with Xcode, it is a good idea to update the Name associated with the Identifier for the LoopFollow App Group. Then what you see on your display will match the directions as you continue. ??? tip "Optional Rename Step (click to open/close)" Click to display the [App Group List](https://developer.apple.com/account/resources/identifiers/list/applicationGroup) - Tap on the Identifier that shows `group.com.TEAMID.loopkit.LoopGroup` where TEAMID is your Developer ID. + Tap on the Identifier that shows `group.com.TEAMID.LoopFollow` where TEAMID is your Developer ID. * This opens the `Edit your Identifier Configuration` screen * In the Description box in the upper left, edit the Description to match the **NAME** @@ -199,7 +199,7 @@ If you get an error saying `An Application Group with Identifier 'group.com.TEAM | NAME | XCode version | IDENTIFIER | |:--|:--|:--| - | Loop App Group | group com TEAMID loopkit LoopGroup| group.com.TEAMID.loopkit.LoopGroup | + | LoopFollow App Group | group com TEAMID LoopFollow| group.com.TEAMID.LoopFollow | ### Add `App Group` From 613441f841b0f9303d855a260b35579c3e0e766e Mon Sep 17 00:00:00 2001 From: marionbarker Date: Sat, 25 Apr 2026 10:31:37 -0700 Subject: [PATCH 4/7] fix typo --- docs/build/lf-browser-build.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/build/lf-browser-build.md b/docs/build/lf-browser-build.md index 35d77f4..516a79b 100644 --- a/docs/build/lf-browser-build.md +++ b/docs/build/lf-browser-build.md @@ -89,7 +89,7 @@ You start by opening a browser using the URL from the table below. Most people o * Leave the selection that says "`Copy the main branch only`" checked * Click on the green `Create fork` button - ![fork information for LoopWorkspac](img/fork-org.gif){width="700"} + ![fork information for LoopWorkspace](img/fork-org.gif){width="700"} {align="center"} #### Successful Fork From 3fb03839279ad0033220e05610671c711e8be873 Mon Sep 17 00:00:00 2001 From: marionbarker Date: Sat, 25 Apr 2026 13:05:20 -0700 Subject: [PATCH 5/7] reorder and be explict on Second and Third groups --- docs/build/lf-browser-build.md | 51 +++++++++++++++++++++------------- 1 file changed, 31 insertions(+), 20 deletions(-) diff --git a/docs/build/lf-browser-build.md b/docs/build/lf-browser-build.md index 516a79b..28092b2 100644 --- a/docs/build/lf-browser-build.md +++ b/docs/build/lf-browser-build.md @@ -25,12 +25,10 @@ If you choose, you can: Detailed directions are found in the next sections, this is the summary of what you will do: -1. Open the *LoopFollow* repository in your browser ([link](#fork-loopfollow)) -1. `Fork` the repository to your organization ([link](#create-the-fork)) +1. `Fork` the repository to your organization ([link](#fork-loopfollow)) 1. `Add Identifiers` ([link](#add-identifiers)) -1. Review App Identifier in Apple Developer portal ([link](#review-app-identifier)) 1. Create a `LoopFollow App Group` ([link](#create-app-group)) - * One Time Only, New with LoopFollow version 6.0 and newer + * New with LoopFollow version 6.0 and newer 1. Add the App Group to the Identifiers ([link](#add-app-group)) 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)) @@ -41,7 +39,7 @@ Detailed directions are found in the next sections, this is the summary of what * The Build action includes a `Create Certificates` step - you can run it separately but it is not necessary -### Fork LoopFollow +## Fork LoopFollow You start by opening a browser using the URL from the table below. Most people only need the *LoopFollow* app to follow one person. If you need to follow more than one person, then repeat the steps for each of the URL in the table. If you need to follow more than three people, reach out to the developers for help. @@ -136,20 +134,8 @@ The `Add Identifier`  Action  should su * Use the Browser Build Errors page to resolve the error, then repeat the Action * [Quick Reference for Browser Build Errors](https://loopkit.github.io/loopdocs/browser/bb-errors/#quick-reference-for-browser-build-errors) -## Review App Identifier -Open this link: [Certificates, Identifiers & Profiles: Identifiers List](https://developer.apple.com/account/resources/identifiers/list){: target="_blank" } on the apple developer site. - -After successfully performing the `Add Identifiers Action`, you will see the identifier for your app with a Name and Bundle ID matching that in the table below. You will see your unique TEAMID embedded in the identifier. (If you previously built this App with Xcode, the name may start with XC but the ending should match.) - -| Name (Description) | Bundle ID | -| --- | --- | -| LoopFollow | com.TEAMID.LoopFollow | -| LoopFollow Live Activity Extension | com.TEAMID.LoopFollow.LoopFollowLAExtension | - -> If you build from a second or third `repository` for `LoopFollow`, the Name will end in `Second` or `Third` and Bundle ID will have `.Second` or `.Third` at the end. - -### Create `App Group` +## Create `App Group` !!! important "Updating LoopFollow to version 6.0 and newer" New builders - just follow the instructions as provided on this page. @@ -201,9 +187,9 @@ If you get an error saying `An Application Group with Identifier 'group.com.TEAM |:--|:--|:--| | LoopFollow App Group | group com TEAMID LoopFollow| group.com.TEAMID.LoopFollow | -### Add `App Group` +## Add `App Group` -You will [Add `App Group` to Identifiers](#add-app-group-to-identifiers) for *LoopFollow*. +You will need to add the `LoopFollow App Group` to the App Group capability for each Identifier. ### Identifiers for the *LoopFollow* app @@ -239,6 +225,31 @@ Repeat until the 2 Identifiers have the `LoopFollow App Group` configured. * If you miss an identifier, the `Create Certificates` step will succeed but `Build LoopFollow` will fail. +### LoopFollow Second and Third + +If you build LoopFollow Second or Third, each has their own identifiers and their own App Group. +Refer to the table below to see how the App Group and Identifiers for LoopFollow are modified when building the Second or Third version of the app. + +#### App Groups + +| Name (Description) | App Group | +| --- | --- | +| LoopFollow App Group | group.com.TEAMID.LoopFollow | +| LoopFollowSecond App Group | group.com.TEAMID.LoopFollow.Second | +| LoopFollowThird App Group | group.com.TEAMID.LoopFollow.Third | + +#### Identifiers + + +| Name (Description) | Bundle ID | +| --- | --- | +| LoopFollow | com.TEAMID.LoopFollow | +| LoopFollow Live Activity Extension | com.TEAMID.LoopFollow.LoopFollowLAExtension | +| LoopFollowSecond | com.TEAMID.LoopFollow.Second | +| LoopFollowSecond Live Activity Extension | com.TEAMID.LoopFollow.Second.LoopFollowLAExtension | +| LoopFollowThird | com.TEAMID.LoopFollow.Third | +| LoopFollowThird Live Activity Extension | com.TEAMID.LoopFollow.Third.LoopFollowLAExtension | + - - - ## Create App in App Store Connect From 01c24e7ead779022eeed3b3bbc6fc072eb12effd Mon Sep 17 00:00:00 2001 From: marionbarker Date: Sat, 25 Apr 2026 15:25:34 -0700 Subject: [PATCH 6/7] update more browser build instructions --- docs/build/lf-browser-build.md | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/docs/build/lf-browser-build.md b/docs/build/lf-browser-build.md index 28092b2..9b04fcd 100644 --- a/docs/build/lf-browser-build.md +++ b/docs/build/lf-browser-build.md @@ -158,12 +158,14 @@ The `LoopFollow` *App Group* already exists if you previously built the *LoopFol If you have never built the *LoopFollow* app with *Xcode* using your `TEAMID`, you need to create an *App Group* associated with your `TEAMID`. 1. Open this link: [Register an App Group](https://developer.apple.com/account/resources/identifiers/applicationGroup/add/) on the *Apple Developer* site. -1. For **`Description`**, use `LoopFollow App Group`. -1. For **`Identifier`**, enter `group.com.TEAMID.LoopFollow`, substituting your team id for `TEAMID`. -1. Double-check the spelling - your `TEAMID` must be correct and the `LoopFollow` *App Group* must match the format shown in the previous step +1. For **`Description`**, use `LoopFollow App Group` +1. For **`Identifier`**, enter `group.com.TEAMID.LoopFollow`, substituting your Team ID for `TEAMID` + * **You must replace `TEAMID` with your 10-digit Apple Developer ID - do not just copy the App Group Identifier above** * A mistake here means you will not be able to build the *LoopFollow* app until you fix it 1. Click `Continue` and then `Register`. +> If you are building Second or Third versions, use the Name (Description) found in the [App Groups](#app-groups) table. + If this is successful, then [:material-skip-forward:](#add-app-group) skip ahead to [Add `App Group`](#add-app-group) If you get an error saying `An Application Group with Identifier 'group.com.TEAMID.LoopFollow' is not available. Please enter a different string`, that means you already have the `LoopFollow App Group` assigned to your account. Continue with the next section. @@ -200,6 +202,7 @@ For each identifier in the table below, click on the Identifer and then add the | LoopFollow | com.TEAMID.LoopFollow | | LoopFollow Live Activity Extension | com.TEAMID.LoopFollow.LoopFollowLAExtension | +> If you are building Second or Third versions, use the Name (Description) found in the [Identifiers](#identifiers) table. The example graphic below has numbered steps that match these directions. The columns from left to right are `Capabilities`, `App Services` and `Capability Requests`. The check box under `Capabilities` will already be checked for you.: From ecc17ef744d252cab2dabb833f7950f7600c7056 Mon Sep 17 00:00:00 2001 From: marionbarker Date: Sat, 25 Apr 2026 16:04:42 -0700 Subject: [PATCH 7/7] add confirm step --- docs/build/lf-browser-build.md | 1 + 1 file changed, 1 insertion(+) diff --git a/docs/build/lf-browser-build.md b/docs/build/lf-browser-build.md index 9b04fcd..f10ae80 100644 --- a/docs/build/lf-browser-build.md +++ b/docs/build/lf-browser-build.md @@ -214,6 +214,7 @@ The example graphic below has numbered steps that match these directions. The co * Note that if you previously built with Xcode, the name may be different, i.e., `XC group com TEAMID LoopFollow` 4. Tap `Continue` 5. Tap `Save` +6. Tap `Confirm` ![graphic showing selection of the correct App Group](img/update-identifier-loopfollow-app-group.svg){width="700"} {align="center"}