Skip to content

chore(example): rename iOS project to EaseExample to avoid pod scheme collision#51

Merged
janicduplessis merged 1 commit into
mainfrom
@janic/fix-example-scheme-collision
Jul 2, 2026
Merged

chore(example): rename iOS project to EaseExample to avoid pod scheme collision#51
janicduplessis merged 1 commit into
mainfrom
@janic/fix-example-scheme-collision

Conversation

@janicduplessis

Copy link
Copy Markdown
Collaborator

Summary

expo run:ios for the example app intermittently "succeeds" without producing an app: it builds only the Ease static library, then dies with ENOENT ... RCTSwiftUI.app/Info.plist when expo-cli goes looking for the binary. The cause is a name collision: the app project generated from expo.name was Ease, the same as the development pod, and CocoaPods recreates a user scheme for every pod target on each pod install — so xcodebuild -scheme Ease on the workspace can resolve to the pod's scheme instead of the app's. Deleting Pods/Pods.xcodeproj/xcuserdata/*/xcschemes/Ease.xcscheme worked around it, but the scheme comes back on the next pod install.

This renames the example app to expo.name: "Ease Example" so prebuild generates EaseExample.xcodeproj/EaseExample scheme, which can't collide. The bundle id (com.janic.easeexample) is unchanged; the home-screen label becomes "Ease Example". example/ios is gitignored prebuild output, so the only other changes are the build:ios script and a CONTRIBUTING.md path.

Test Plan

  • expo prebuild --platform ios --clean regenerates EaseExample.xcworkspace; the fresh pod install recreates the pod's Ease.xcscheme user scheme as always.
  • With that pod scheme present (not deleted), expo run:ios now builds the app target, installs EaseExample.app on the simulator, and the app launches and renders the demo list normally. Before the rename this exact state failed as described above.

… collision

The app project generated by expo prebuild was named Ease, the same as
the development pod. CocoaPods recreates a user scheme for the pod on
every pod install, and xcodebuild resolved -scheme Ease to the pod's
scheme, so expo run:ios built only the static library and then failed
to find the app binary. Naming the app EaseExample keeps the two
schemes distinct.
@janicduplessis janicduplessis marked this pull request as ready for review July 2, 2026 03:44
@janicduplessis janicduplessis merged commit a112f76 into main Jul 2, 2026
5 checks passed
@janicduplessis janicduplessis deleted the @janic/fix-example-scheme-collision branch July 2, 2026 03:45
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