chore(example): rename iOS project to EaseExample to avoid pod scheme collision#51
Merged
Merged
Conversation
… 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.
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
expo run:iosfor the example app intermittently "succeeds" without producing an app: it builds only theEasestatic library, then dies withENOENT ... RCTSwiftUI.app/Info.plistwhen expo-cli goes looking for the binary. The cause is a name collision: the app project generated fromexpo.namewasEase, the same as the development pod, and CocoaPods recreates a user scheme for every pod target on eachpod install— soxcodebuild -scheme Easeon the workspace can resolve to the pod's scheme instead of the app's. DeletingPods/Pods.xcodeproj/xcuserdata/*/xcschemes/Ease.xcschemeworked around it, but the scheme comes back on the nextpod install.This renames the example app to
expo.name: "Ease Example"so prebuild generatesEaseExample.xcodeproj/EaseExamplescheme, which can't collide. The bundle id (com.janic.easeexample) is unchanged; the home-screen label becomes "Ease Example".example/iosis gitignored prebuild output, so the only other changes are thebuild:iosscript and a CONTRIBUTING.md path.Test Plan
expo prebuild --platform ios --cleanregeneratesEaseExample.xcworkspace; the freshpod installrecreates the pod'sEase.xcschemeuser scheme as always.expo run:iosnow builds the app target, installsEaseExample.appon the simulator, and the app launches and renders the demo list normally. Before the rename this exact state failed as described above.