Repository navigation
Conversation
|
Hi @cipolleschi 👋 (I hope you don’t mind the mention 😅) when you have some time, could you please take a look at this fix? So it could land in 0.90. This fixes #55540 that symlinks breaks on Mac Catalyst (as stated above), similar to hermes#1883 that is already fixed, the RN main repo is not fixed yet. (Note that it breaks on every versions) This PR follows Hermes approach that “Compress slices to preserve Symlinks” when uploading artifacts, then extract it to compose xcframework. All prebuilt artifacts now have correct symlinks. (See artifacts in checks) Thanks 🙏 |
cipolleschi
left a comment
There was a problem hiding this comment.
Thanks for fixing this!
|
@theeket Can you please rebase on top of main? I tried to rebase from github, but it says that there are conflicts. |
378e7cc to
51a676f
Compare
|
@cipolleschi done. Is it available now ? |
Visual regression2 visual difference(s) at ios
|
|
@cipolleschi has imported this pull request. If you are a Meta employee, you can view this in D131815435. |






Summary:
Addresses the React Dependencies and Core framework symlink corruption reported in #55540.
Mac Catalyst frameworks use a versioned bundle layout (as macOS): the framework binary and
Resourcespoint intoVersions/Current, which points to the actual version directory. These symlinks must survive packaging. Although the local build scripts (including local-generated.tar.gz) work correctly, all the maven publishing have broken Mac Catalyst slice.Now, both iOS prebuild workflows upload raw
Build/Productsdirectories. GH's artifact ZIP writer explicitly resolves symlinks withrealpath()and stores their targets as ordinary files. (See implementation) So, the final.tar.gzarchives faithfully package that already-damaged layout, and Maven publishes those archives.The problem predates the reported 0.84: published dependency archives inspected from 0.79.2, 0.83.0, 0.84.0, and 0.88.1 all lack Catalyst symlinks. The inspected 0.88.1 React Core archive has the same problem.
Hermes already protects this handoff with a “Compress slices to preserve Symlinks” step. This PR follows the archive-before-upload approach to React Native's workflows.
Changes in
prebuild-ios-core.ymlandprebuild-ios-dependencies.yml:Changelog:
[IOS] [FIXED] - Preserve Mac Catalyst framework symlinks in published React Native prebuild artifacts.
Test Plan:
(Update) Prebuilt frameworks test passed, and have correct symlinks
React Dependencies: Debug, Release
React Core: Debug, Release
Composed XCFramework: Debug, Release