Repository navigation
SDK-812: Verify RN SDK 3.2.1 and inject Xcode 27 iOS 15.1 Podfile lift - #74
Merged
Merged
Conversation
|
Coverage Impact This PR will not change total coverage. Modified Files with Diff Coverage (3)
🛟 Help
|
Lockfiles now resolve @iterable/react-native-sdk 3.2.1 (ranges stay ^3.0.0). Prebuild adds a post_install hook that lifts Pods targets below iOS 15.1, so Xcode 27 accepts IterableSDKResources (still 12.0 upstream).
v1.26.3 builds on debian bullseye, whose security mirrors now 404.
Resolve an installed iOS simulator runtime instead of a missing iPhone 16 destination, use latest-stable Xcode (ExpoModulesCore 55 does not compile on 16.4), and fail the job when the example build fails. The example app sets ios.deploymentTarget 15.1 via expo-build-properties.
Both Podfile mods now call injectAfterReactNativePostInstall, so the regex, marker check and warning live in one place. Generated Podfiles are unchanged.
jferrao-itrbl
force-pushed
the
feature/SDK-812-verify-react-sdk-3-2-1
branch
from
October 23, 2026 09:00
eb4b277 to
b000a46
Compare
Contributor
Author
|
Extra manual testing (all successful): 1. Build the plugin and install dependencies2. Confirm the RN SDK resolved to 3.2.13. Regenerate the native project4. Both markers should be there, fmt first, then the lift5. Run prebuild again: each marker should still appear exactly once6. Build and launch on a simulator with Xcode 27 |
jferrao-itrbl
marked this pull request as ready for review
October 26, 2026 10:08
rtlsilva
requested changes
Oct 26, 2026
Pin CodeQL to Xcode 26.3 and remove redundant pod install. Fix misspell action commit SHA, deployment-target test guard, README wording, pipeline comment, and RN SDK @see link.
rtlsilva
approved these changes
Oct 26, 2026
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.

📝 Summary
Verify @iterable/react-native-sdk 3.2.1 and inject the Xcode 27 IPHONEOS 15.1 Podfile lift during expo prebuild.
🎟️ Jira Ticket: SDK-812
📖 Description
Plugin changes (the ticket scope)
^3.0.0resolves to 3.2.1. The peer dependency floor stays at^3.0.0.withIosDeploymentTargetLiftmod. Duringexpo prebuildit injects apost_installblock that raisesIPHONEOS_DEPLOYMENT_TARGETto 15.1 for any Pods target below 15.1. Xcode 27 no longer builds theIterableSDKResourcesbundle target at its default deployment target. The block has a marker, so running prebuild again doesn't duplicate it.injectAfterReactNativePostInstall(plugin/src/withIosPodfile.utils.ts) so the fmt workaround and the new lift share one regex, marker check and warning. The generated Podfile output is unchanged.withIterable.ts.withStoreConfigValuesstays first, and because Expo runswithPodfilemods in reverse order, on a fresh prebuild, the fmt block lands before the lift. The two blocks are independent.CI changes (prerequisites, not feature work)
These jobs were already broken on
main. This PR couldn't go green without fixing them, and they're split into their ownci:commits so they're easy to review apart from the feature:lint.yml: bumpreviewdog/action-misspellto v1.30.3. The old version's Docker image was based on Debian bullseye, and its apt mirrors now return 404, so the misspell job failed on every PR.codeql.yml(Swift): this job had been failing silently since the Expo 55 upgrade becausecontinue-on-errorhid it. ExpoModulesCore 55 doesn't compile with Xcode 16.4, so the job now useslatest-stableXcode. It also resolves an installed iOS 18 simulator runtime, pinsiPhone 16 Proto it, and dropscontinue-on-error, so a real failure now shows up.example/app.json: setexpo-build-propertiesios.deploymentTargetto15.1, which matches the lift and the RN SDK / demo app setup.ios/ExpoAdapterIterable.podspechas no net change;swift_versionstays5.4.Commits
Each commit is a clean conventional commit, so release-it generates the correct changelog:
feat(ios): inject Xcode 27 iOS 15.1 Podfile lift for RN SDK 3.2.1ci: bump reviewdog/action-misspell to v1.30.3ci(codeql): build the Expo example on latest-stable Xcoderefactor(plugin): share the react_native_post_install Podfile injectiondocs(plugin): document the withIterable pipeline order🧪 How to test?
Automated:
yarn test(67 tests, 100% coverage on the Podfile mods),yarn lintandyarn tsc --noEmit. CI is green, including the CodeQL Swift build of the example app.Manual QA, done by the merger before merging:
yarn installin the repo root, thencd example && yarn install, and confirmnode_modules/@iterable/react-native-sdk/package.jsonshows3.2.1.npx expo prebuild --cleanand check thatexample/ios/Podfilecontains both markers, fmt first and then the lift:# @iterable/expo-plugin: fmt workaround for Xcode 26.4# @iterable/expo-plugin: IPHONEOS deployment target lift for Xcode 27npx expo prebuildagain (without--clean) and confirm each marker still appears exactly once.yarn iosstill builds and launches.yarn androidbuilds and launches.🧾 Changelog
Added
post_installinjection that setsIPHONEOS_DEPLOYMENT_TARGETto 15.1 for Pods targets below 15.1 (Xcode 27 / IterableSDKResources workaround).Changed
@iterable/react-native-sdk3.2.1 (lockfiles).📹 Loom recording if applicable
N/A
🐞 Github Issues solved
N/A
📚 Docs PR if applicable
N/A