Skip to content

Commit 7a38ccc

Browse files
authored
Merge pull request #927 from marionbarker/working-docs
clarify when users need to delete a Distribution Certificate
2 parents 86a65d7 + 8b84a61 commit 7a38ccc

File tree

1 file changed

+40
-48
lines changed

1 file changed

+40
-48
lines changed

docs/browser/bb-errors.md

Lines changed: 40 additions & 48 deletions
Original file line numberDiff line numberDiff line change
@@ -154,9 +154,6 @@ Ignore the warnings - this does not affect the build.
154154
155155
## Rebuild Errors: Quick Reference
156156
157-
!!! check "Browser Build is Working Again"
158-
New builders can build at this time but only if they manually create Identifiers and configure each Identifier with the required capabilities. It is recommended that new builders wait for the next fix to be released.
159-
160157
### `Check Upstream and Keep Alive` Error
161158
162159
!!! important "`Check Upstream and Keep Alive` Error"
@@ -205,12 +202,12 @@ There are, however, a few intermittent errors that can happen when *GitHub* and
205202
206203
If you get an error when building with a browser, you can use this page to figure out what to do - but don't be afraid to [ask for help](#help-with-errors).
207204
208-
!!! important "Certificate is missing"
209-
If you get this build error message: `No code signing identity found and can not create a new one because you enabled`, you do not have certificates needed to run the build.
210-
211-
If you have more than one Distribution Certificate, you may need to delete the oldest one using these instructions: [Revoke Extra Distribution Certificate](bb-errors.md#revoke-extra-distribution-certificate){: target="_blank" }.
212-
213-
* With `Loop 3.6.1` and newer, this should not happen. Make sure you [Add Variable](prepare-fork.md#add-variable){: target="_blank" } to automatically renew certificates. It only happened with `Loop 3.6.0` when Apple made a change to their infrastructure.
205+
!!! important "Build Credentials are Invalid"
206+
If you are a repeat builder and you get this build error message: `No code signing identity found and`. The phrase ends with `can not create a new one because you enabled readonly` but the `readonly` has backquotes around it. Sometimes, the phrase uses `cannot` and in other cases `can not`.
207+
208+
You need to delete a Distribution Certificate and try again. See [Revoke Extra Distribution Certificate](bb-errors.md#revoke-extra-distribution-certificate){: target="_blank" }.
209+
210+
> A number of people who tried to update certificates after *Apple* changed things in May and before Loop 3.6.1 was released, may have Distribution Certificates that are not properly matched to profiles to create building credentials in their Match-Secrets repository. The solution is to simply delete a Distribution Certificate and Build again.
214211
215212
These are some of the most common errors to date.
216213
@@ -267,11 +264,9 @@ This is an example of a message that is not terribly descriptive - which is why
267264
268265
### Missing Certificates
269266
270-
> With `Loop 3.6.0` or newer, certificates are automatically renewed if your developer account is up to date, all agreements are signed and you completed the new [Add Variable](prepare-fork.md#add-variable){: target="_blank" } step.
271-
272-
If your certificates have expired, you will see this error when you try to build. It does not have a clear annotation. The error string starts with: `No code signing identity found and can not create a new one because you enabled`.
267+
> With `Loop 3.6.1` or newer, certificates are automatically renewed if your developer account is up to date, all agreements are signed and you completed the new [Add Variable](prepare-fork.md#add-variable){: target="_blank" } step.
273268
274-
> The first automatic build when Loop 3.6.0 is released will update the files required for automatic certificate creation. The next automatic build will use the new files. So if the first attempt with Loop 3.6.0 fails, try again.
269+
If your certificates have expired and you do not have the ENABLE_NUKE_VARIABLE configured, you will see this error when you try to build. It does not have a clear annotation. The error string starts with: `No code signing identity found and`. The phrase ends with `can not create a new one because you enabled readonly` but the `readonly` has backquotes around it. Sometimes, the phrase uses `cannot` and in other cases `can not`.
275270
276271
![graphic showing missing distribution certificate](img/missing-distribution-certificate.png){width="800"}
277272
{align="center"}
@@ -302,7 +297,7 @@ This section is required when you need to search for a string to diagnose and er
302297
If there are *Apple* Developer agreements you have not accepted, you may get errors when you try to Build that indicate your *Apple* <code>Secrets</code> are incorrect even if they are not.
303298
304299
* The misleading message tells you that one or more of these: <code>FASTLANE_ISSUER_ID</code>, <code>FASTLANE_KEY_ID</code> or <code>FASTLANE_KEY</code> is not correct
305-
* Once `Loop 3.6.0` or newer is available, this should no longer appear unless you have a mistake in one of those
300+
* With `Loop 3.6.0` or newer, this should no longer appear unless you have a mistake in one of those
306301
* Check your *Apple* Developer account for agreements first, before trying to fix those `Secrets`
307302
* If you previously built successfully - it is almost certainly the agreement
308303
* It can take 15 minutes to an hour after the agreement is signed before it can be used
@@ -506,26 +501,9 @@ The full error message is:
506501
507502
> `Could not create another Distribution certificate, reached the maximum number of available Distribution certificates`
508503
509-
#### New with `Loop 3.6.0`
504+
These steps are required to make room for a `Certificate` if you have two Certificates or if you tried to create a new certificate in the May/Jun 2025 time frame when the Browser Build actions were "broken", before `Loop 3.6.1` was released.
510505
511-
> If you just updated to 3.6.0, you might not have added the new variable, `ENABLE_NUKE_CERTS`. Go do that now and then try again. It will take care of renewing your certificates automatically. See [Add Variable](prepare-fork.md#add-variable){: target="_blank" }.
512-
513-
These steps are only needed to make room for a `Certificate` when running versions earlier than 3.6.0 if you choose not to add the `ENABLE_NUKE_CERTS` variable:
514-
515-
1. Delete an old `Distribution Certificate`
516-
* *Apple* limits you to two `Distribution Certificates`
517-
* Use this link to view your [Apple Developer Certificates](https://developer.apple.com/account/resources/certificates/list)
518-
* Carefully examine the `Type` column - do **not** delete a `Development` `Certificate`
519-
* If you accidentally delete a `Development` `Type` certificate associated with an Xcode build for your Loop app - it will stop working and you will be very sad
520-
* Click on the oldest `Distribution` `Certificate` and revoke it
521-
* You will get an email informing you the certificate was revoked
522-
1. To create a new `Certificate`:
523-
* Return to *GitHub* and your fork
524-
* Run the `Action`: `Create Certificates`
525-
1. You are now ready to run the `Action`: `Build Loop`
526-
527-
!!! question "But what about *TestFlight* builds?"
528-
Previous builds using this method that are already in *TestFlight* are not affected by deleting the `Distribution Certificate`.
506+
* Follow the directions to [Revoke Extra Distribution Certificate](#revoke-extra-distribution-certificate)
529507
530508
## Action: `Build Loop` Errors
531509
@@ -607,7 +585,15 @@ Copy the words on the line below and paste them into the search function for you
607585
> A new one cannot be created because you enabled
608586
> ```
609587
610-
If that phrase is found with lines similar to the following:
588+
If that exact phrase is found with lines similar to those in [Bundle ID is wrong](#bundle-id-is-wrong) below and this is your first build, you have the `Bundle ID` problem.
589+
590+
However, this very similar phrase means you need to delete one or more Distribution Certificates and try again: `No code signing identity found and`. The phrase ends with `can not create a new one because you enabled readonly` but the `readonly` has backquotes around it. Sometimes, the phrase uses `cannot` and in other cases `can not`.
591+
592+
* Follow the directions to [Revoke Extra Distribution Certificate](#revoke-extra-distribution-certificate)
593+
594+
#### Bundle ID is wrong
595+
596+
This is not typical and will only be seen for the very first build if you entered an incorrect TEAMID.
611597
612598
```
613599
[31mA new one cannot be created because you enabled `readonly`
@@ -807,14 +793,10 @@ https://github.com/my-name/Match-Secrets
807793

808794
### Revoke Extra Distribution Certificate
809795

810-
If you have the `ENABLE_NUKE_CERTS` variable added and set to `true`, you should not need this section for most apps. See [Add Variable](prepare-fork.md#add-variable){: target="_blank" } for instructions.
811-
812-
> A few apps still require manual steps for certificate renewal.
796+
Make sure you have the `ENABLE_NUKE_CERTS` variable added and set to `true`. See [Add Variable](prepare-fork.md#add-variable){: target="_blank" } for instructions.
813797

814798
This step is done at the *Apple* Developer site; click on this [link](https://developer.apple.com/account/resources/certificates/list).
815799

816-
If you only have *one* Certificate of the `Distribution` type, similar to the graphic shown below, skip ahead to [Delete Invalid Profiles](#delete-invalid-profiles). Ignore any other types of Certificate. Do not delete them.
817-
818800
> ![view the current certificates at Apple](img/certificates-01.png)
819801
820802
If you have two Certificates that have the `Distribution` type, select the oldest one and delete it.
@@ -823,20 +805,30 @@ If you have two Certificates that have the `Distribution` type, select the oldes
823805
* If you accidentally delete a Development Type certificate associated with an Xcode build for your app, it will stop working and you will be very sad
824806
* Click on the oldest Distribution Certificate, select Revoke and confirm. If you have two with the same expiration date, revoke both.
825807

826-
You will get an email informing you the certificate was revoked
808+
You will get an email informing you the certificate was revoked.
809+
810+
At this point, you should be able to simply run the Build action and a new Distribution Certificate will be created along with the profiles and build credentials needed.
827811

828-
!!! tip "Navigate with Menu"
829-
On the left side, you see a menu that indicates Certificates, Identifiers, Keys and Profiles. You can navigate between these items by clicking on the links.
812+
!!! question "But what about *TestFlight* builds?"
813+
Previous builds using this method that are already in *TestFlight* are not affected by deleting the `Distribution Certificate`.
814+
815+
### Navigate with Menu
830816

831-
* Certificates (this section)
832-
* Identifiers (you used those when adding the App Group)
833-
* Keys
834-
* Access to the *Apple* Push Notification Keys used by people to enable remote control
835-
* The `FastLane API Key` is at the App Store Connect site - not at this site
836-
* Profiles (next section)
817+
Once you open the *Apple* Developer site for Certificates: [link](https://developer.apple.com/account/resources/certificates/list), you can move around in the menu to get to Certificates, Identifiers, Keys and Profiles.
818+
819+
You can navigate between these items by clicking on the links.
820+
821+
* Certificates (previous section)
822+
* Identifiers (you used those when adding the App Group)
823+
* Keys
824+
* Access to the *Apple* Push Notification Keys used by people to enable remote control using Nightscout, LoopCaregiver or LoopFollow
825+
* The `FastLane API Key` is at the App Store Connect site - not at this site
826+
* Profiles (next section)
837827

838828
### Delete Invalid Profiles
839829

830+
These instructions are useful if you need to delete one or more profiles.
831+
840832
This step is done at the *Apple* Developer site; click on this [link](https://developer.apple.com/account/resources/profiles/list).
841833

842834
Your profiles will be displayed. Under the `Expiration` column, you might see an expiration date, even if some of these are invalid because you just revoked a certificate, or you might see `Invalid`.

0 commit comments

Comments
 (0)