Day 18 (published 21 December 2020)


Updating Loop

There is a pretty good LoopDocs article on Updating Loop.  But, I am going to drive home a few points here, so please read this before moving on to the article.

You should always be ready to rebuild/update Loop, unless you are willing to go back to your old way of doing things (your backup plan), There are many reasons, such as dropping the phone in the ocean, where you could find yourself in the position of needing to do a quick rebuild.   So, some things to keep in mind.

Always keep your computer patched.   That doesn’t necessarily mean updating the OS to the latest version (for example, moving to Big Sur the week it comes out), but it does mean keeping the latest patches and minor upgrades installed as they come out.   There are security updates in these patches.  It is important that you install the security updates promptly.   If you only use your Mac or Virtual Mac for Looping, turn it on once a month and do the updates so it is always ready.

Keep Xcode up to date.   Do not install Beta versions, install it from the App store when prompted.   There are several articles on this site about updating Xcode, let them guide you.

Keep your developer account current.    If you let it expire, such as by not having a valid current credit card tied to it, you can suffer a long delay in getting it turned on again.   If you have to update or build with a different developer account, or a free account, your settings, active pods, etc will not carry over to the different developer ID.

Any time you update Xcode, it is a good idea to update homebrew also.   In a terminal window type “brew update”.   If you get any errors, take the time to resolve them so you are ready in case you need to build.

Any time you update homebrew, it is a good idea to update Carthage.   In a terminal window type “brew upgrade carthage” if you get any errors other than a Warning that the current version is “already installed”, take the time to resolve them so you are ready in case you need to build.

If you followed the instructions on this site for updating Xcode, you already configured the “command line tools” and rebooted.   Failing to do one of these two things before building, or failing to update homebrew or carthage are the most common problems people have when trying to build.  So, by following through with those items, you have eliminated the majority of the blocking items that would keep you from building.

If you just did these items to prep in case you need to update/rebuild, you can shut everything down and go back to the beach for another month.    If you are ready to do an update, read on.

Screenshot all your settings screens.  Screenshot the main screen, and go into each option, if it has more items than the main screen has, screenshot them also.   If you have FreeAPS, export the settings to iCloud also.

Visit to see if you need to agree to any new contract language.   If you skip this step, you may get some very obscure, hard to debug, error messages when trying to build.

Download the latest Loop software, no matter if that is a zip file, or a WorkSpace build, get the latest.

Sign the four targets, if you are using a WorkSpace build, make sure to switch to Loop (Workspace) in the title bar of Xcode before signing.

Check the profile expiration date for ALL FOUR targets.  They are not necessarily the same.   If needed, delete the profiles, unsign the targets, and sign them again.  The date is one year minus one day from the date at the top of the popover screen that you get when you click the little “I” in a circle at the end of the “Provisioning Profile” line in the middle of the target Signing & Certificates screens.

Put the earliest expiration date on your calendar so you know when Loop is going to croak.

Now, plug the phone in, unlock it, make sure the phone is selected in the title bar, and hit build.

If you run into build errors, use the Loop and Learn Build Help document to help resolve them, or to post a useful request for help to solve your issues fast.

Skip to content