Skip to content
Merged
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
2 changes: 1 addition & 1 deletion docs/build/build-options.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
*LoopFollow* can be built using either the Browser Build or the Mac-Xcode Build method. A paid Apple Developer account is required to use the Browser Build method. Regardless of how you build, you can customize your *LoopFollow* app’s name.

* Browser Build:
* If you have never built, see [LoopDocs: Browser Build for Other Apps](https://loopkit.github.io/loopdocs/browser/other-apps/)
* If you have never built, see [LoopFollow Browser Build](lf-browser-build.md)
* If you are a repeat builder, then you need a one-time update [Browser Build Update for *LoopFollow* v4.0](#browser-build-update-for-loopfollow-v40)
* Mac-Xcode: [Build *LoopFollow* Script for Mac-Xcode](#build-loopfollow-script-for-mac-xcode)

Expand Down
156 changes: 0 additions & 156 deletions docs/build/img/action-03-create-certs.svg

This file was deleted.

8,599 changes: 3,841 additions & 4,758 deletions docs/build/img/action-04-build.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
1,056 changes: 1,056 additions & 0 deletions docs/build/img/create-app-in-store.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
1,118 changes: 1,118 additions & 0 deletions docs/build/img/fork-loopfollow.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/build/img/fork-org.gif
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/build/img/lf-initial-fork.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/build/img/new-app-in-store.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
267 changes: 267 additions & 0 deletions docs/build/lf-browser-build.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,267 @@
## Overview

**This page is for users who have configured an organization with their build credentials.**

* If you don't know what that means, please review the entire Browser Build section in LoopDocs starting with [Browser Build Overview](https://loopkit.github.io/loopdocs/browser/bb-overview)

### Multiple Copies of `LoopFollow`

For the convenience of caregivers who follow more than one person, you can build up to three instances of `LoopFollow`.

### Customize `LoopFollow`

If you choose, you can:

* Customize the name of the app that appears on your phone
* Display the custom name in the main `LoopFollow` screen

### Prerequisites

* This page is only for users who have built using Browser Build method before and who have configured an organization that already contains their Secrets.

- - -

## Summary of Steps to Build *LoopFollow*

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. Update Identifiers
6. Add the App in App Store Connect and configure TestFlight users
7. `Build LoopFollow`

!!! tips "What About Other Actions"
* You already have your organizaton configured, there is no need to run `Validate Secrets`
* The Build action includes a `Create Certificates` step - you can run it separately but it is not necessary


### <span translate="no">Fork LoopFollow</span>

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.

* Click on the link to open the repository in your browser
* Follow the directions to [Create the Fork](#create-the-fork)

### Table of App `Repositories`

| App | Fork from this Address |
|---|---|
| <span translate="no">LoopFollow</span> | [https://github.com/loopandlearn/LoopFollow](https://github.com/loopandlearn/LoopFollow) |
| <span translate="no">LoopFollow_Second</span> | [https://github.com/loopandlearn/LoopFollow_Second](https://github.com/loopandlearn/LoopFollow_Second) |
| <span translate="no">LoopFollow_Third</span> | [https://github.com/loopandlearn/LoopFollow_Third](https://github.com/loopandlearn/LoopFollow_Third) |

??? tips "LoopFollow Display Name Customization (Click to Open/Close)"
* Would you like the name of your LoopFollow app to be personalized?
* Do you have more than one Looper, so you are using LoopFollow_Second or LoopFollow_Third?
* The 3 LoopFollow repositories enable you to customize the name shown on your phone

After you `fork` your *LoopFollow* repository, find the file named: `LoopFollowDisplayNameConfig.xcconfig`

* Open it in your browser
* Follow the directions for [Display Name Customization for `LoopFollow`](#display-name-customization-for-loopfollow){: target="_blank" }
* "Save the file" means commit the change to your `main` branch
* 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


### Create the `Fork`

1. At the upper right side of the screen, click on the word `Fork`

![fork information for LoopFollow](img/fork-loopfollow.svg){width="700"}
{align="center"}

1. Refer to the GIF below:
* You will see the display shown in the GIF below where you will choose your organization as the owner
* This GIF is copied from LoopDocs, your screen will show `loopandlearn/LoopFollow` instead of `LoopKit/LoopWorkspace`
* The repository name is already filled in
* **It is best not to rename the repository to something else**
* It can be confusing if you need to reach out to a mentor for help
* However, if you have 3 people you follow it's fine to use names like:
* LoopFollow_Mary
* LoopFollow_Second_Joe
* LoopFollow_Third_Tom
* 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"}
{align="center"}

#### Successful Fork

After creating the &nbsp;<span class="notranslate">fork</span>, your screen should be similar to the next graphic.

!!! info "Dismiss Messages"
You may or may not see the messages described in the next two bullets. If you see them, dismiss them. No worries if you don't see them. They are not seen in the example screenshot below.

* Near the top right, click on the close button :octicons-x-16: (`x`) to dismiss the `Successfully fetched` message
* In the middle, click on the `Dismiss` button to remove the "`Your branch is not protected`" message

![after creating the fork LoopFollow](img/lf-initial-fork.png){width="750"}
{align="center"}

* Note that your URL is `https://github.com/my-name-org/LoopFollow`
* The comment on the second row indicates where the &nbsp;<span class="notranslate">fork</span>&nbsp; came from (that is a clickable link)
* The branch :octicons-git-branch-16: selected is `main`
* The message says "`This branch is up to date with loopandlearn/LoopFollow:main`"

## Add Identifiers

Near the top middle of your Repository fork, click on the "Actions" tab.

* 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`
* Tap on the green button that says: `I understand my workflows, go ahead and enable them`

Refer to the graphic below for the numbered steps:

1. Click on the "Actions" tab of your repository
1. On the left side, click on "Add Identifiers"
1. On the right side, click "Run Workflow" to show a dropdown menu
* You will see your default branch (`main`)
* You can select a different branch, but typically, you run the default
1. Tap the green button that says "Run workflow"

![add identifiers using github actions](img/action-02-add-identifiers.svg){width="700"}
{align="center"}

The `Add Identifier` &nbsp;<span class=notranslate>Action</span>&nbsp; should succeed or fail in a few minutes.

* If you see the green check (:octicons-check-circle-fill-16:{: .passed }) continue to the next section
* If you see the red `X` (:octicons-x-circle-fill-16:{: .failed }):
* 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.)

| App Name | Name | Bundle ID |
| --- | --- | --- |
| <span translate="no">LoopFollow</span> | <span translate="no">LoopFollow</span> | <span translate="no">com.TEAMID.LoopFollow</span> |

> 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.

#### Add Push Notifications Capability to LoopFollow Identifiers

For LoopFollow 4.0 and later, you must manually enable the Push Notifications capabilty for the *LoopFollow* Identifier.

The example graphic below has numbered steps that match these directions:

Click to open the [Certificates, Identifiers & Profiles: Identifiers List](https://developer.apple.com/account/resources/identifiers/list) page.

1. Locate the LoopFollow Identifer and click on it to open the `Edit your App ID Configuration` screen
* The name in the **`NAME`** column may be different if you previously built with a Mac using Xcode, in that case it will start with XC
2. Looking at the `App Services` column, scroll down to the `Push Notifications` row
3. If the check box is not checked, you must check it
4. Scroll back to the top and hit Save if you modified that value or All Identifiers if you made no changes

If you made a change and hit Save, you then need to Tap `Continue` and Tap `Save` to complete the process.

> ![graphic showing selection of the push notifications](img/add-push-notifications.svg){width="600"}

Repeat this step if you use LoopFollow_Second or LoopFollow_Third.

- - -

## Create App in App Store Connect

You must create an App in App Store Connect if you don't already have one.

Examine the table below for the bundle ID associated with your app.

| App Name | Bundle ID |
| --- | --- |
| <span translate="no">LoopFollow</span> | <span translate="no">com.TEAMID.LoopFollow</span> |

> If you build from a second or third `repository` for `LoopFollow`, the Bundle ID will have `.Second` or `.Third` at the end.

1. Open this link: [App Store Connect / Apps](https://appstoreconnect.apple.com/apps) to view your apps; log in if needed.

1. If this App already exists, you can continue to the build step
1. Click the Add Apps button or the blue "plus" icon and select New App as shown in the graphic below

![choose to add a new app](img/new-app-in-store.png){width="300"}
{align="center"}

1. The New App dialog box opens and should appear similar to the graphic below. Before you fill anything out, make sure your Bundle ID is available in the dropdown menu. If you do not see the Bundle ID for your app; you should ask a mentor for help.
* Select "iOS". For LoopFollow you can also select "macOS" if you own a Mac with macOS 11 or later.
* Enter a name: this will have to be unique
* You could start with "App Name ABC" where ABC are your initials
* If that is already taken, you can add a number, for example, "App Name ABC 123"
* This name is what you see on the App Store Connect list and in the *TestFlight* app
* Once installed on your phone, you will see the actual app name
* You can [Change the App Store Connect Name](../browser/phone-install/#change-the-app-store-connect-name) later if you want
* Select your primary language.
* Choose the bundle ID for your app
* SKU can be anything; for example "123" but must be unique across all your apps, so try 1234 or 12345 depending on how many apps you build with this method
* Select "Full Access".

![create loop app in store connect - with missing bundle id](img/create-app-in-store.svg){width="600"}
{align="center"}

1. Click Create but do not fill out the next form. That is for submitting to the app store and you will not be doing that.

You are done with the create app step.

**You will use this same browser location to complete the next step. Tap on the *TestFlight* tab at the top of the page.**

## Add Users to *TestFlight* for App

> If you are not already on your app page because you just created it, use this link to get there: [App Store Connect / Apps](https://appstoreconnect.apple.com/apps). Find your app and click on it and then select the *TestFlight* tab at the top of the page.

You need to configure a *TestFlight* Internal Testing Group for each app you build and invite the users (including yourself).

* Each person added to the Internal Testing Group gets an invitation to join the group for this app
* Then after each successful build of the app, group members will get a notification when the new build is transferred to *TestFlight* and is available for use
* They open the *TestFlight* app on their phone to install the new build

If you need detailed instruction, visit [Configure to Use Browser: *TestFlight* Users Overview](https://loopkit.github.io/loopdocs/browser/tf-users/#testflight-overview).


## Build App

### Display Name Customization for `LoopFollow`

> If you build `LoopFollow` for one, two or three loopers, you may choose to customize your `fork` or `forks` to insert a custom display name.

> * Find and click on the file `LoopFollowDisplayNameConfig.xcconfig`
> * Tap the pencil icon so you can edit the file
> * The last line says `display_name = LoopFollow` (or `LoopFollow_Second` or `LoopFollow_Third`)
> * Insert your custom name so the last line says `display_name = LF custom name`
> * Click on commit changes and chose to commit directly into the `main` branch

> Continue to build as instructed below. After you install the app on your phone, iPad or Mac via *TestFlight*, that custom name is what is displayed. The prefix LF is suggested to make it easier to find the custom named `LoopFollow` app in the list of apps, but is not required.

### Build Action

11. Click on the Actions tab of your *LoopFollow* repository
2. On the left side, click on `4. Build LoopFollow`
3. On the right side, click Run Workflow to show a dropdown menu
4. Tap the green button that says Run workflow.

> ![add identifiers](img/action-04-build.svg){width="700"}

**Once this completes, be sure to update from TestFlight to get the updated version of *LoopFollow* on your phone.**

Repeat the build and install from TestFlight steps if you use LoopFollow_Second or LoopFollow_Third.

> Your app should eventually appear on [App Store Connect](https://appstoreconnect.apple.com/apps).

### Build Errors

Refer to the [Browser Build: Build Errors](https://loopkit.github.io/loopdocs/browser/bb-errors) to find your error.

Please do not remove an existing app if you have trouble building a new one. Your build error is not cause by any existing app.

!!! Important "Removing App Warning"
If you remove an app and later want to restore that app, you might not be able to.


## Install on Phone

The [LoopDocs instructions: Install on Phone](https://loopkit.github.io/loopdocs/browser/phone-install) walk you through the steps to install the app to a phone. When going through those steps, replace your App Name for&nbsp;_<span translate="no">Loop</span>_. Everything else is the same.

14 changes: 0 additions & 14 deletions docs/index.md
Original file line number Diff line number Diff line change
@@ -1,17 +1,3 @@

🚧 Documentation Under Construction 🚧

<!--todo-->
<!--Notes: be sure to add this info

-->

While this website is under construction, you can find missing information in three places:

* [*Loop and Learn* website: *LoopFollow* page](https://www.loopandlearn.org/loop-follow/)
* [LoopDocs website: Build Other Apps page](https://loopkit.github.io/loopdocs/browser/other-apps/)
* [Trio Docs: Loop Follow Remote Control Configuration page](https://triodocs.org/configuration/settings/features/remote-control/)

## *LoopFollow*

*LoopFollow* is an open-source DIY (do-it-yourself) app that displays information for a person with diabetes in an easy-to-use interface.
Expand Down
2 changes: 0 additions & 2 deletions docs/remote/remote-control-loop.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,3 @@
🚧 Documentation Under Construction 🚧

## Remote Control of the *Loop* App

This option is available for remote control of a *Loop* phone using *LoopFollow* 3.2 and newer.
Expand Down
2 changes: 0 additions & 2 deletions docs/remote/remote-control-nightscout.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,3 @@
🚧 Documentation Under Construction 🚧

## Remote Control with Nightscout

You must configure *LoopFollow* and the *Nightscout* URL to use remote commands.
Expand Down
4 changes: 2 additions & 2 deletions docs/remote/remote-control-overview.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,3 @@
🚧 Documentation Under Construction 🚧

## Remote Control Overview

*LoopFollow* remote commands are sent directly using the [Apple Push Notification System (APNS)](#apple-push-notifications-system-apns) for all Open-Source Automated Insulin Delivery systems that support this feature.
Expand Down Expand Up @@ -31,6 +29,8 @@ The *Loop* app and the open beta version of the *Trio* app (0.5.x or newer) supp

> With the release of *LoopFollow* 4.0, you can [share remote control configuration](#export-remote-settings-with-qr-code) using a QR code.

* Keep checking back on this page, the remote capability is under development and there may be new features for you to read about.

The graphic below shows the Remote Settings screen for *LoopFollow*. You must first enter a *Nightscout* URL before any remote options are offered and then only the option suitable for that *Nightscout* site can be selected.

* When following someone running Loop, the options are None or [Loop Remote Control](remote-control-loop.md){: target="_blank" }
Expand Down
4 changes: 2 additions & 2 deletions docs/remote/remote-control-trio.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,3 @@
🚧 Documentation Under Construction 🚧

## Remote Control Overview

Trio can accept remote commands from *Nightscout* or from *LoopFollow*. There are a variety of options, but the final control of whether remote commands will be enacted rests with the *Trio* user. They can enable or disable remote control.
Expand Down Expand Up @@ -81,6 +79,8 @@ The sequence is *LoopFollow* to *Apple Push Notifications* to *Trio*, which uplo
* discarded, ignored by *Apple* or the phone
* significantly slowed down due to network connectivity
1. The *Trio* app processes the remote command and either **enacts** it or **rejects** it
* With *Trio* v0.6 or newer and *LoopFollow* v4.0 or newer, the *Trio* app returns a message to the originating *LoopFollow* phone via APNS indicating the result of the remote command
* This response can be much faster, and more definitive, than waiting for the *Nightscout* site and then the *LoopFollow* plot to update
1. The *Trio* app uploads to *Nightscout* with result shown on *LoopFollow* main screen in a few minutes
* If the remote request was **enacted**, the result is visible on the *LoopFollow* main plot
* If the remote request was **rejected**, a gray dot is visible on the *LoopFollow* main plot - touch it to see the reason why the request was rejected
Expand Down
Binary file modified docs/setup/img/initial-screen-no-credentials.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading