Skip to content

Parse binary plists with bplist-parser in readAndParsePlist #472

Closed

Description

@kraenhansen

Target branch: main

readAndParsePlist in packages/host/src/node/cli/apple.ts used to handle a binary Info.plist by shelling out to plutil -convert xml1, which rewrites the file in place and only works on macOS. Frameworks built by xcodebuild (e.g. CMake FRAMEWORK TRUE targets built through cmake-rn) ship binary plists, so that was the common path.

Current state

Implemented on main in 14e5119: binary plists are parsed in-process with bplist-parser and XML ones with @expo/plist, so the input file is no longer modified and macOS isn't required. It ships in the pending "Version Packages" release PR (#471, react-native-node-api@1.2.0). This issue can be closed once #471 is merged.

next doesn't have the change yet (it still shells out to plutil), so it needs to come along when main is merged into next.

Remaining

packages/node-addon-examples/scripts/verify-prebuilds.mts reads framework plists too (see #424); consider sharing the helper with readAndParsePlist.

Activity

  1. self-assigned this
    on Oct 11, 2026
  2. added 2 commits that reference this issue on Oct 11, 2026
    14e5119
    62f421b
  3. kraenhansen commented on Oct 12, 2026

    @kraenhansen
    CollaboratorAuthor

    Done: binary plist parsing landed in 14e5119, and #474 shares readAndParsePlist with verify-prebuilds and isolates all plist reading and writing in packages/host/src/node/plist.ts.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

AutomatableAn issue we expect to be fixed using automation.

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions