Skip to content

trunk-merge/pr-3996/2786bfec-0752-480a-830f-06c20403e62f - #3999

Closed
trunk-io[bot] wants to merge 2 commits into
mainfrom
trunk-merge/pr-3996/2786bfec-0752-480a-830f-06c20403e62f
Closed

trunk-merge/pr-3996/2786bfec-0752-480a-830f-06c20403e62f#3999
trunk-io[bot] wants to merge 2 commits into
mainfrom
trunk-merge/pr-3996/2786bfec-0752-480a-830f-06c20403e62f

Conversation

@trunk-io

@trunk-io trunk-io Bot commented Jul 30, 2026

Copy link
Copy Markdown
Trunk Merge Pull Request Banner

This pull request was created and is being managed by Trunk Merge.

This pull request is based on the main branch at SHA 67f0052d862f801fd680e9aff0a2628539768593.

See more details here.

When CI completes, this pull request will be closed automatically.

Pull Requests Being Tested

This pull request is testing the changes from pull request 3996.

Gilbert09 and others added 2 commits July 30, 2026 11:56
iOS builds have been failing since the last green build in May, in two
different ways that turn out to share one cause: Expo's precompiled
RNWorklets XCFramework.

1. Cold builds could not archive:

     Pods/Headers/Private/RNReanimated/.../UIRuntimeDecorator.h:6:10
     'worklets/Compat/StableApi.h' file not found
     ** ARCHIVE FAILED **

   RNReanimated compiles from source, but RNWorklets was consumed as a
   precompiled XCFramework whose headers are only put in place by the
   "[Expo] Switch RNWorklets XCFramework for build configuration" script
   phase. That phase is not an input dependency of RNReanimated's
   compile, so the two race and reanimated loses. Warm builds hid it by
   restoring a Pods cache that already had the headers, so any change to
   the native fingerprint failed while an unchanged rebuild passed.

2. Builds that did archive could not be exported:

     IDEDistributionMethodManagerErrorDomain Code=2 "Unknown Distribution Error"
     error: exportArchive exportOptionsPlist error for key "method"
            expected one {} but found app-store

   Xcode could not enumerate any distribution method, so the allowed set
   was empty and every value was rejected -- ad-hoc and app-store alike.

Opting RNWorklets out of prebuilt modules fixes both: the archive builds
cleanly and exports to a signed .ipa.

EAS sets EXPO_USE_PRECOMPILED_MODULES=1 itself, and which modules
actually resolve to a prebuilt artifact varies per build (several 404 out
of the artifact cache and silently fall back to source), which is why
this looked intermittent rather than broken.
@trunk-io trunk-io Bot closed this Jul 30, 2026
@trunk-io
trunk-io Bot deleted the trunk-merge/pr-3996/2786bfec-0752-480a-830f-06c20403e62f branch July 30, 2026 11:28
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant