Skip to content

fix(SDK-743): run the example app on Xcode 27 - #902

Open
jferrao-itrbl wants to merge 2 commits into
masterfrom
feature/SDK-743-xcode-27-example-app
Open

jferrao-itrbl wants to merge 2 commits into
masterfrom
feature/SDK-743-xcode-27-example-app

Conversation

@jferrao-itrbl

@jferrao-itrbl jferrao-itrbl commented Sep 19, 2026

Copy link
Copy Markdown
Collaborator

📝 Summary

Make the SDK example launch and build on Xcode 27 via CLI 20.2.0 and a host Podfile lift of generated Pods targets.

🎟️ Jira Ticket: SDK-743

📖 Description

Xcode 27 replaces Simulator.app with Device Hub and rejects CocoaPods resource-bundle targets below iOS 15.0. Iterable-iOS-SDK-IterableSDKResources still inherits 12.0 from Iterable-iOS-SDK 6.6.7.

This PR:

  • Bumps @react-native-community/cli (and the example platform packages) from 20.1.0 to 20.2.0 so yarn example ios opens Device Hub.
  • Extends example/ios/Podfile post_install to set IPHONEOS_DEPLOYMENT_TARGET to 15.1 when it is nil or < 15.1 (keeps the existing fmt C++17 workaround).
  • Documents Device Hub, xcode-select, the 15.0 compile floor, and that the Podfile lift is a host workaround until Iterable iOS publishes ≥ 15.1 and this SDK depends on it.
  • Simplifies example/README.md so install and run happen from the SDK repo root (yarn install, yarn example ios / yarn example android). Metro starts with the CLI; a separate yarn start is not required.

Out of scope: no change to s.dependency "Iterable-iOS-SDK", "6.6.7", no public JS/native API, no demo app, no skills.

Related: SDK-741 (Bare demo Podfile), SDK-742 (skills).

🧪 How to test?

From the SDK repo root:

yarn install
(cd example/ios && bundle install && bundle exec pod install)
yarn example ios
  • Confirm lockfile CLI packages are 20.2.0 and aligned (package.json, example/package.json, yarn.lock).
  • After pod install: Iterable-iOS-SDK stays 6.6.7; Iterable-iOS-SDK-IterableSDKResources is 15.1 (no leftover 12.0).
  • Xcode 27 selected (xcode-select -p): yarn example ios opens Device Hub, starts Metro, builds, and runs. No Simulator.app does not exist; no resource-bundle 12.0 xcodebuild 65. No need to run yarn start first.
  • yarn lint, yarn typecheck, yarn test; yarn example build:ios (already verified on Xcode 27.0 / 27A266a).
  • Android: yarn example android / build:android should not regress from the CLI bump.

🧾 Changelog

No customer facing changes

📹 Loom recording if applicable

N/A

🐞 Github Issues solved

N/A

📚 Docs PR if applicable

In-repo README / example README only. No iterable-docs PR.

Bump the RN CLI to 20.2.0 so run-ios opens Device Hub, and lift generated
Pods targets to iOS 15.1 so IterableSDKResources compiles. The Iterable-iOS-SDK
pin stays 6.6.7.

Co-authored-by: Cursor <cursoragent@cursor.com>
@jferrao-itrbl
jferrao-itrbl requested a review from a team as a code owner September 19, 2026 09:00
@github-actions

github-actions Bot commented Sep 19, 2026

Copy link
Copy Markdown
Lines Statements Branches Functions
Coverage: 72%
71.92% (579/805) 61.22% (229/374) 67.18% (174/259)

@qltysh

qltysh Bot commented Sep 19, 2026

Copy link
Copy Markdown

Qlty


Coverage Impact

This PR will not change total coverage.

🚦 See full report on Qlty Cloud »

🛟 Help
  • Diff Coverage: Coverage for added or modified lines of code (excludes deleted files). Learn more.

  • Total Coverage: Coverage for the whole repository, calculated as the sum of all File Coverage. Learn more.

  • File Coverage: Covered Lines divided by Covered Lines plus Missed Lines. (Excludes non-executable lines including blank lines and comments.)

    • Indirect Changes: Changes to File Coverage for files that were not modified in this PR. Learn more.

Install and run via yarn example ios/android so Metro starts with the
CLI; skip a separate yarn start from example/.

Co-authored-by: Cursor <cursoragent@cursor.com>
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