Repository navigation
[eas-cli] Fix capability sync for App Clip on-demand install - #4617
Open
janicduplessis wants to merge 3 commits into
Open
janicduplessis wants to merge 3 commits into
janicduplessis wants to merge 3 commits into
Conversation
Map com.apple.developer.on-demand-install-capable to Apple's ON_DEMAND_INSTALL_CAPABLE capability type. App Store Connect reports App Clip bundle IDs with that type, so the sync never matched the existing capability and tried to enable ONDEMANDINSTALL_EXTENSIONS, which Apple rejects.
janicduplessis
force-pushed
the
@janic/fix-app-clip-on-demand-install-capability
branch
from
October 13, 2026 22:35
9616aaa to
b1af993
Compare
janicduplessis
marked this pull request as ready for review
October 13, 2026 22:44
|
Subscribed to pull request
Generated by CodeMention Warning: The preamble and epilogue options in commentConfiguration are deprecated. Use template instead. |
Contributor
|
eas-cli now uses changesets for changelogs (#4580). The required "Check for a changeset" check fails on PRs that edit To update this PR:
The release adds the PR link and the author to the entry. If this PR needs no changelog entry, revert the |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Why
iOS builds with an App Clip target fail during credentials setup for the Clip, unless
EXPO_NO_CAPABILITY_SYNC=1is set:How
Map
com.apple.developer.on-demand-install-capabletoCapabilityType.ON_DEMAND_INSTALL_CAPABLE, the type App Store Connect actually reports, instead ofON_DEMAND_INSTALL_EXTENSIONS.The Clip's bundle ID already has the capability:
{ "id": "QQT5Y8UUW9_ON_DEMAND_INSTALL_CAPABLE", "attributes": { "settings": null, "capabilityType": "ON_DEMAND_INSTALL_CAPABLE" } }With the old mapping the sync never matched it, so it sent an enable request for
ONDEMANDINSTALL_EXTENSIONSon every build, which Apple rejects. Now it is matched and skipped.Once the capability is mapped, the disable pass would also turn it off on any App Clip whose entitlements file doesn't list the key. Xcode often adds that key only at signing time. So
ON_DEMAND_INSTALL_CAPABLEis never disabled, like In-App Purchase and Game Center.I only tested a Clip whose bundle ID already had the capability. I didn't test enabling it on a bundle ID that lacks it.
Test Plan
ON_DEMAND_INSTALL_CAPABLEand the entitlement istrue, so no patch request is sent. It fails without the fix.ON_DEMAND_INSTALL_CAPABLEand the entitlement is absent, so no patch request is sent.eas-cli@24.8.0the same way and raneas build --platform ioson a real project with an App Clip target and capability sync on. Before: the error above. After: