expo / expo/eas-cli

Expo EAS Prepare Credentials Bug Report

Open
#4,402 1 comment 0 reactions 0 assignees View on GitHub
needs review
Dominant language
TypeScript
Stars
1.4k
Forks
236
Avg merge
3d 1h
Merged PRs (30d)
91

Description

### Build/Submit details page URL

_No response_

### Summary

### Summary

EAS iOS cloud builds consistently fail during the **Prepare credentials** phase with:

`Unknown error. See logs of the Prepare credentials build phase for more information.`

However, the Expo build page does not expose any Prepare credentials logs, so the underlying error cannot be inspected.

### Environment

* Expo SDK: 57.0.0
* Expo: 57.0.22
* React Native: 0.86.3
* EAS CLI: 24.4.0 / latest
* Platform: iOS
* Workflow: managed
* Distribution: internal / Ad Hoc
* Bundle Identifier: `com.movieapp.mobile`
* Apple Developer Program: Individual
* Physical iPhone registered in the provisioning profile

### Credentials

The credentials were manually created and independently validated:

* Apple Distribution certificate
* Private key matches the Distribution certificate
* Active Ad Hoc provisioning profile
* Provisioning profile contains the physical test device
* Provisioning profile contains the same Distribution certificate
* Bundle identifier matches
* Apple Team matches
* `aps-environment=production`
* APNs key configured

EAS Credentials also reports:

`All credentials are ready to build`

The Distribution Certificate and Provisioning Profile both show as active.

### Reproduction / isolation performed

The failure occurs with BOTH:

1. `credentialsSource: local`
2. `credentialsSource: remote`

For remote credentials, the existing certificate and provisioning profile were uploaded using `eas credentials`.

EAS successfully reports:

`Using remote iOS credentials (Expo server)`

Apple login was skipped.

EAS then confirms:

`All your registered devices are present in the Provisioning Profile.`

The same failure also occurs with:

* development build (`developmentClient: true`)
* normal internal preview build without `developmentClient`
* clean build cache
* `--verbose-logs`
* `--build-logger-level trace`

Therefore the issue does not appear specific to `credentials.json`, local Windows credential paths, or development-client signing.

### Latest reproduction

Build ID:

`0524979c-e9b4-4c7b-bdd1-17263b953d18`

Profile: `preview`

Distribution: `internal`

Credentials source: `remote`

Command:

`npx eas-cli@latest build --profile preview --platform ios --message "Prepare credentials trace diagnostic" --build-logger-level trace --verbose-logs --clear-cache`

Result:

`iOS build failed: Unknown error. See logs of the Prepare credentials build phase for more information.`

No Prepare credentials phase logs are visible on the Expo build page.

Previous remote credentials reproduction:

`38e3eabc-cc28-460f-9d4e-32d6d5eaabb4`

Local credentials reproductions:

`76c870cd-12da-438f-8d8e-2f797196d1c0`

`52a33be7-6308-4cd5-ae54-d5da61056671`

`408fa5e6-4e4b-45e7-864f-b0057a4a1e74`

### Additional context

There is currently a separate Apple authentication issue (#4392) producing:

`iTunes service key is empty`

I encountered that issue as well, which is why I switched to manually generated credentials and then uploaded those credentials to EAS.

The current problem is different: Apple authentication is skipped, EAS accepts the remote credentials, and the cloud build subsequently fails in Prepare credentials.

Could Expo staff inspect the internal Prepare credentials logs for build `0524979c-e9b4-4c7b-bdd1-17263b953d18` and provide the underlying error?

### Managed or bare?

Managed

### Environment

Expo SDK: 57.0.0
Expo package: 57.0.22
React Native: 0.86.3
EAS CLI: 24.4.0 / latest
Workflow: Managed
Platform: iOS
Distribution: Internal / Ad Hoc
Credentials source: Remote (also reproduced with Local)
Host OS: Windows 10, x64
Node.js: 24.19.0
npm: 11.17.0

EAS Project:
@emrepatan/movieapp-mobile

Bundle Identifier:
com.movieapp.mobile

Build profile:
preview

Physical iPhone is registered and included in the Ad Hoc provisioning profile.

EAS Credentials reports that the Distribution Certificate and Provisioning Profile are active and:
"All credentials are ready to build."

### Error output

√ Using remote iOS credentials (Expo server)

Skipping Distribution Certificate validation on Apple Servers because we aren't authenticated.
Skipping Provisioning Profile validation on Apple Servers because we aren't authenticated.

All registered devices are present in the Provisioning Profile.
The existing profile was reused.

√ Uploaded to EAS
√ Computed project fingerprint
Starting iOS build

Waiting for build to complete.

× Build failed

🍏 iOS build failed:
Unknown error. See logs of the Prepare credentials build phase for more information.

Latest failing build ID:
0524979c-e9b4-4c7b-bdd1-17263b953d18

The Expo build page does not expose any logs for the "Prepare credentials" phase, so the underlying error is not visible.

The same failure was reproduced with:
- Remote credentials
- Local credentials
- developmentClient: true
- Internal preview build without developmentClient
- --clear-cache
- --verbose-logs
- --build-logger-level trace

### Reproducible demo or steps to reproduce from a blank project

I have not yet reproduced this from a completely blank Expo project, because the failure occurs during EAS's "Prepare credentials" phase before the application build itself starts.

Steps to reproduce with the affected managed Expo project:

1. Create/configure a managed Expo SDK 57 project for iOS.
2. Configure an explicit iOS bundle identifier.
3. Register a physical iOS device in the Apple Developer Portal.
4. Create an Apple Distribution certificate.
5. Create an Ad Hoc provisioning profile for the bundle identifier containing the registered device.
6. Upload the Distribution Certificate and Ad Hoc provisioning profile to EAS using:

npx eas-cli@latest credentials --platform ios

7. EAS reports:
"All credentials are ready to build"

8. Configure an internal distribution profile in eas.json:

"preview": {
"distribution": "internal",
"credentialsSource": "remote"
}

9. Start the build without Apple authentication:

npx eas-cli@latest build --profile preview --platform ios --clear-cache --verbose-logs --build-logger-level trace

10. Reuse the existing provisioning profile when prompted.

Expected:
The credentials are prepared and the iOS build proceeds.

Actual:
The cloud build fails during "Prepare credentials" with:

"Unknown error. See logs of the Prepare credentials build phase for more information."

No Prepare credentials logs are visible in the Expo build page.

Latest reproduction build ID:
0524979c-e9b4-4c7b-bdd1-17263b953d18

The same failure also occurs when using credentialsSource: local, so the issue does not appear to be specific to remote credential storage.

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.