You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: docs/browser/automatic.md
+58
Original file line number
Diff line number
Diff line change
@@ -65,6 +65,64 @@ The `alive` branch you need is created automatically when you run the `Build Loo
65
65
* You can delete every branch that starts with the name `alive`
66
66
* Leave the other branches alone unless a mentor directs you to take action
67
67
68
+
## Automatic Certificates
69
+
70
+
Coming soon with `Loop 3.6.0`.
71
+
72
+
Already here with `LoopFollow 2.3.0` and some other Open-Source apps.
73
+
74
+
### Requirements
75
+
76
+
You must have the `ENABLE_NUKE_CERTS` variable set to `true` for your *GitHub* organization, or when using a personal account to build, add it to each repository.
77
+
78
+
* Refer to [Add Variable](prepare-fork.md#add-variable){: target="_blank" }
79
+
80
+
### Certificates and `Match-Secrets`
81
+
82
+
The Create Certificates action does the following:
83
+
84
+
* Reads existing signing credentials from your `Match-Secrets` private respository and confirms if they are valid
85
+
* OR
86
+
* Uses your `Distribution` Certificate from *Apple* or creates a new one if one does not exist
87
+
* Securely stores, in your `Match-Secrets` private repository, signing credentials (like certificates and provisioning profiles from *Apple*) used for code signing for each Identifier in your app when you build
88
+
89
+
### Annual Renewal
90
+
91
+
This happens once a year after *Apple* automatically expires your `Distribution` Certificate.
92
+
93
+
* When the *Apple*`Distribution` certificate expires, the saved credentials in your `Match-Secrets` private repository are invalid and need to be removed (<code>nuke</code>)
94
+
* You need a new `Distribution` Certificate at *Apple*
95
+
* You need to create new signing credentials for `Match-Secrets`
96
+
97
+
For the `Loop` app, up through version 3.4.4, you need to do this process manually.
98
+
99
+
### Automatic Certificate Renewal
100
+
101
+
Some Open-Source apps, in particular `Trio` and `LoopFollow 2.3.0` already have this capability.
102
+
103
+
* If your signing credentials for the app being built are invalid and `ENABLE_NUKE_CERTS` is `true`, then signing credentials will be cleared from your `Match-Secrets` repository, a new `Distribution` certificate will be created at *Apple* and signing credentials for the current app will be generated and stored in `Match-Secrets`.
104
+
105
+
* Next app you build will need certificates created because all signing credentials were cleared out of your `Match-Secrets` repository
106
+
* If that app is configured for automatic certificate renewal, you only need to run the `Build Action`; it detects no signing credentials are available and creates them
107
+
* If that app is not configured for automatic certificate renewal, you must first run the action `Create Certificates` and then `Build`
108
+
109
+
### Open-Source App Schedule
110
+
111
+
Each Open-Source App has a schedule for when the automatic build happens. This determines when the automatic check for certificate status happens.
112
+
113
+
The times are shifted to make sure only one Open-Source app performs a `nuke` process at one time. This only happens once a year, but we wanted to be sure there are no conflicts. Even if an app doesn't have automatic certificates implemented yet, they are added to the table as suggested values to use when this capability gets added. All times are UTC. If other apps decide to add this feature, please make a pull request to LoopDocs so we can add those times to the deconfliction table.
114
+
115
+
| Open-Source App | AutoCerts? | Wed Time | 1st of Month Time |
116
+
|:--|:-:|--:|--:|
117
+
| <spantranslate="no">Loop</span> |`dev` only | 09:00 | 07:00 |
118
+
| <spantranslate="no">LoopCaregiver</span> | n | 13:00 | 11:00 |
119
+
| <spantranslate="no">LoopFollow</span> | y | 12:00 | 10:00 |
120
+
| <spantranslate="no">LoopFollow_Second</span> | y | 12:20 | 10:20 |
121
+
| <spantranslate="no">LoopFollow_Third</span> | y | 12:40 | 10:40 |
122
+
| <spantranslate="no">Trio</span> | y | 08:00 | 06:00 |
123
+
| <spantranslate="no">xDrip4iOS</span> | n | 16:00 | 14:00 |
124
+
125
+
68
126
## Modify Automatic Building
69
127
70
128
For someone using [development code](build-dev-browser.md) for their own use, they could decide to choose when to update their `fork` to the most recent commit. They can still have the advantage of automatic building without automatic updates; in other words, they want a new build added to TestFlight every month. There may be other configurations someone would choose. These options are available starting with Loop 3.3.0 (`dev` branch) and later.
Copy file name to clipboardExpand all lines: docs/browser/bb-update.md
+9-92
Original file line number
Diff line number
Diff line change
@@ -6,8 +6,10 @@
6
6
7
7
> Regardless of build method, this is an **update** and will install over your existing app; your **settings are maintained including your current CGM and Pump.**
8
8
9
+
**For most, the *Loop* app is configured for automatic build, so you only need to come to this page if the automatic build failed.**
10
+
9
11
???+ info "Time Estimate (click to open/close)"
10
-
Build the *Loop* App
12
+
Manually update and build the *Loop* App
11
13
12
14
- 5 min: Check *Apple* account status
13
15
- Check if you need to renew certificates (once a year only)
@@ -21,6 +23,7 @@
21
23
22
24
* 5 min: Clear out expired certificates
23
25
* 5 min: Generate new certificates
26
+
> When Loop 3.6.0 is released, certificate renewal will be automatic once you [Add Variable](prepare-fork.md#add-variable){: target="_blank" }
24
27
25
28
One Time: Complete the information for the Digital Service Act Compliance
26
29
@@ -32,7 +35,6 @@
32
35
33
36
Most users will start at [How to Update or Rebuild](#how-to-update-or-rebuild):
34
37
35
-
* If currently using verion 3.2.3 or earlier, there are manual steps included to update to 3.4
36
38
* If currently using verion 3.4.0 or later, builds are automatic but you still need to do some actions:
37
39
* Your *Apple Developer* account must be active
38
40
* All agreements must be signed for your *Apple Developer* account
@@ -115,6 +117,8 @@ Digital Service Act Compliance
115
117
116
118
> This is Step 2 of 6 - it is only needed once a year - you should get an email from Apple 30 days before your `Distribution Certificate` expires. (Don't worry if you did not see the email.)
117
119
120
+
> If you have not added the `Variable``ENABLE_NUKE_CERTS`, do it now. See [Add Variable](prepare-fork.md#add-variable){: target="_blank" }. Once `Loop 3.6.0` is released, your fork is updated and you set up that variable, you can skip this step - it will be automatic.
121
+
118
122
**Apps in TestFlight are not affected when a certificate expires or is revoked.**
119
123
120
124
* Apps installed on the phone continue to run
@@ -222,95 +226,6 @@ The bullets below show typical messages when you are building the `main` branch.
222
226
223
227
> This is Step 4 of 6 - this is always required.
224
228
225
-
### Update from 3.2.x to 3.4
226
-
227
-
For the update from 3.2.x to 3.4, you must do more than "just" build. If you skip this step - the build will fail.
228
-
229
-
* The `Identifier` for the "`widget`" changed from "`SmallStatusWidget`" to the more descriptive "`LoopWidgetExtension`"
230
-
231
-
> If you built version 3.3.0 (the `dev branch` before release of version 3.4) or newer, you can skip ahead to [Build the App](#build-the-app).
232
-
233
-
You will (1) run [`Add Identifiers`](#add-identifiers), (2) [add the `App Group`](#add-app-group-to-new-identifier) to the new identifier, (3) run [`Create Certificates`](#create-certificates) and then (4) run [`Build Loop`](#build-the-app).
234
-
235
-
#### Add Identifiers
236
-
237
-
In your fork of LoopWorkspace:
238
-
239
-
* Run the Action: `Add Identifier`
240
-
* Wait for it to succeed
241
-
242
-
??? tip "Detailed instructions for `Add Identifier` (Click to open/close)"
243
-
Refer to the graphic below for the numbered steps:
244
-
245
-
1. Click on the `Actions` tab of your <code>LoopWorkspace</code> repository
246
-
1. On the left side, click on 2. <code>Add Identifiers</code>
247
-
1. On the right side, click `Run Workflow` to show a dropdown menu
248
-
* You will see your default branch (typically this is `main`)
249
-
1. Tap the green button that says `Run workflow`.
250
-
251
-
{width="700"}
252
-
{align="center"}
253
-
254
-
The `Add Identifiers` <span class=notranslate>Action</span> should succeed or fail in a few minutes. Do not continue to the next step until this one succeeds.
255
-
256
-
* If you see the green check (:octicons-check-circle-fill-16:{: .passed }) continue to the next section
257
-
* If you see the red `X` (:octicons-x-circle-fill-16:{: .failed }):
258
-
* [Action: Add Identifiers Errors](bb-errors.md#action-add-identifiers-errors){: target="_blank" } tells you what to search for in the file
259
-
* Resolve the error and repeat `Add Identifiers`
260
-
261
-
#### Add `App Group` to New `Identifier`
262
-
263
-
Open the [Certificates, Identifiers & Profiles: Identifiers List](https://developer.apple.com/account/resources/identifiers/list){: target="_blank" } page.
264
-
265
-
Click on the "`LoopWidgetExtension`" identifier to open the `Edit Your App ID Configuration` screen.
The graphic below has numbered steps that match these directions:
272
-
273
-
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
274
-
2. If the word `Configure` shows up, tap on it
275
-
* This opens the `App Group Assignment` screen
276
-
* 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
277
-
3. Check the box by `Loop App Group` that uses your `TEAMID` in `group.com.TEAMID.loopkit.LoopGroup`
278
-
* Note that if you previously built with Xcode, the name may be different, i.e., `XC group com TEAMID loopkit LoopGroup`
279
-
4. Tap `Continue`
280
-
5. Tap `Save`
281
-
282
-
{width="700"}
283
-
{align="center"}
284
-
285
-
If you did not need to make changes, the `Save` button will not be active.
286
-
287
-
* Tap on the `< All Identifiers` link at the top left
288
-
289
-
The full list of Identifiers should be displayed again.
290
-
291
-
!!! note "Other Identifiers"
292
-
All other identifiers should be already set up.
293
-
294
-
* If they are not, refer to [Configure to Use Browser: Add App Group to Identifiers](prepare-app.md#add-app-group-to-identifiers){: target="_blank" }
295
-
296
-
#### Create Certificates
297
-
298
-
You must run the action `Create Certificates` again because the `Identifiers` were updated. Wait for this to succeed before trying to build.
299
-
300
-
???+ tip "Detailed instructions (Click to open/close)"
301
-
Refer to the graphic below for the numbered steps:
302
-
303
-
1. Click on the "<code>Actions</code>" tab of your <code>LoopWorkspace</code> repository
304
-
1. On the left side, click on "`Create Certificates`"
305
-
1. On the right side, click "`Run Workflow`" to show a dropdown menu
306
-
* You will see your default branch (typically `main`)
307
-
1. Tap the green button that says "`Run workflow`".
308
-
309
-
{width="700"}
310
-
{align="center"}
311
-
312
-
1. Wait a minute or two for the action to finish
313
-
314
229
#### Build the App
315
230
316
231
Refer to graphic below as you follow the steps to build the *Loop* app.
@@ -328,7 +243,9 @@ Refer to graphic below as you follow the steps to build the *Loop* app.
328
243
329
244
#### What if the Build Fails
330
245
331
-
If a new release is announced at [Current Release](../version/releases.md#current-release){: target="_blank" }, look to see if there are instructions about extra steps required with the release. ([Updating from 3.2.3 to 3.4.x](#update-from-32x-to-34) requires extra steps described above.)
246
+
If a new release is announced at [Current Release](../version/releases.md#current-release){: target="_blank" }, look to see if there are instructions about extra steps required with the release.
247
+
248
+
> When `Loop 3.6.0` is released, if you customized your Loop app, you may need to discard your customization and manually sync your `fork`. Check out the [Ahead and Behind](#ahead-and-behind) instructions.
332
249
333
250
If you are using the dev branch, the update steps are the same, but review information on this page: [Build Loop dev with Browser](build-dev-browser.md){: target="_blank" }.
Copy file name to clipboardExpand all lines: docs/browser/other-apps.md
+21-2
Original file line number
Diff line number
Diff line change
@@ -17,6 +17,8 @@ The same technique is used and the same six <code>Secrets</code> are used for ma
17
17
18
18
If you are coming to this page to update one of the other apps, follow the [How to Update or Rebuild](bb-update.md#how-to-update-or-rebuild){: target="_blank" } instructions provided for the *Loop* app, but substitute the repository name for the app you want to rebuild for all references to *<spantranslate="no">LoopWorkspace</span>*.
19
19
20
+
> If you have not added the `Variable``ENABLE_NUKE_CERTS`, do it now. See [Add Variable](prepare-fork.md#add-variable){: target="_blank" }.
21
+
20
22
### Multiple Copies of `LoopFollow`
21
23
22
24
For the convenience of caregivers who use `LoopFollow` to monitor multiple people, updates were added in v2.1.2 to make this more convenient. This works regardless of the build method. (Build with Browser or [Build with *Mac*](https://www.loopandlearn.org/loop-follow#lf-script){: target="_blank" }).
@@ -52,6 +54,18 @@ You will return to this page after reviewing (but not doing) this step [Configur
??? tips "LoopFollow Builders: Display Name (Click to Open/Close)"
58
+
* Would you like the name of your LoopFollow app to be personalized?
59
+
* Do you have more than one Looper, so you are using LoopFollow_Second or LoopFollow_Third?
60
+
* The 3 LoopFollow repositories enable you to customize the name shown on your phone
61
+
62
+
After you `fork` your *LoopFollow* repository, find the file named: `LoopFollowDisplayNameConfig.xcconfig`
63
+
64
+
* Open it in your browser
65
+
* Follow the directions to change `display_name`
66
+
* "Save the file" means commit the change to your `main` branch
67
+
* It is recommended that you use LF_name, where name is the customized name - that way you can find it in an alphabetic list of apps
68
+
55
69
The two repositories below are only if you need to follow a second or third looper. All others should use just the table above. The instructions for the second and third looper are otherwise identical to the first looper. Note that `LoopCaregiver` can follow multiple Loopers; you select the person inside the app.
56
70
57
71
| Special Case | Fork from this Address |
@@ -65,7 +79,7 @@ The two repositories below are only if you need to follow a second or third loop
65
79
66
80
* All `repositories` in your *GitHub* organization use the organization <code>Secrets and Variables</code>
67
81
* If you have not already completed [Add <code>Secrets</code> to your *GitHub* Organization](#add-secrets-to-your-github-organization), do it now
68
-
* Skip ahead to [Validate <code>Secrets</code>](#validate-secrets)
82
+
* Skip ahead to [Add Identifiers](#add-identifiers)
69
83
70
84
### Using a Personal *GitHub* Account
71
85
@@ -98,7 +112,9 @@ Open the text file in which you maintain a copy of your 6 <code>Secrets</code> s
98
112
{width="500"}
99
113
{align="center"}
100
114
101
-
Once all six <code>Secrets</code> are added, proceed to the first Action to validate your secrets.
115
+
Be sure to [Add Variable](prepare-fork.md#add-variable){: target="_blank" } to the repository as well as `Secrets` to enable automatic certificate creation.
116
+
117
+
Once the <code>Secrets</code> and `Variable` are added, proceed to the first Action to validate your secrets.
102
118
103
119
## Validate <code>Secrets</code>
104
120
@@ -135,6 +151,8 @@ The `Validate Secrets` <span class=notranslate>Action</span> should
135
151
136
152
Near the top middle of your Repository fork, click on the "Actions" tab.
137
153
154
+
* If this is the first `Action` you run with this repository you'll be informed that `Workflows aren't being run on this forked repository`
155
+
* Tap on the green button that says: `I understand my workflows, go ahead and enable them`
138
156
* The graphic below is an example from Loop, your screen will show your app and associated repository
139
157
140
158
Refer to the graphic below for the numbered steps:
@@ -448,6 +466,7 @@ The directions below may be sufficient for some.
448
466
* In the left pane, scroll down to find `Secrets and variables` and click on the dropdown symbol and choose `Actions`
449
467
* At this point, tap on `New organization secret` and add your 6 secrets
450
468
* Then tap on the `Variable` tab and enter your Variable
469
+
* For details on adding the variable, see [Add Variable](prepare-fork.md#add-variable){: target="_blank" }
Copy file name to clipboardExpand all lines: docs/faqs/glossary.md
+2
Original file line number
Diff line number
Diff line change
@@ -164,6 +164,8 @@ When Google Translate is selected:
164
164
165
165
**<spantranslate="no">Nightscout</span>** (Nightscout): a personal website used to view your glucose and diabetes management data, `Loop` can upload to `Nightscout`
166
166
167
+
**<spantranslate="no">nuke</span>** (nuke): clear signing credentials from your Match-Secrets repository
168
+
167
169
**<spantranslate="no">Onboarding</span>** (Onboarding): familiarize new, and existing, Loop users with settings in Loop 3 and ensure the Therapy Settings are all entered and are within safety guardrails
168
170
169
171
**<spantranslate="no">Omnipod</span>** (Omnipod): Insulet tubeless insulin pump; Loop supports Eros (with RileyLink) and DASH. Eros is also known as Classic, UST400, and System.
Copy file name to clipboardExpand all lines: includes/tooltip-list.txt
+1
Original file line number
Diff line number
Diff line change
@@ -75,6 +75,7 @@
75
75
*[MPC]: model predictive control; the type of control algorithm used by Loop
76
76
*[NFC]: Near-Field Communication is used for scanning devices such as Libre sensors
77
77
*[Nightscout]: a personal website used to view your glucose and diabetes management data, `Loop` can upload to `Nightscout`
78
+
*[nuke]: clear signing credentials from your Match-Secrets repository
78
79
*[Onboarding]: familiarize new, and existing, Loop users with settings in Loop 3 and ensure the Therapy Settings are all entered and are within safety guardrails
79
80
*[Omnipod]: Insulet tubeless insulin pump; Loop supports Eros (with RileyLink) and DASH. Eros is also known as Classic, UST400, and System.
80
81
*[OrangeLink]: radio-frequency device Loop uses to control Eros pods (aka. Gen 3) and older Medtronic pumps
0 commit comments