-
Notifications
You must be signed in to change notification settings - Fork 24.3k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[0.49.1] Broken bundling on run-ios in simulator #16208
Comments
I'm seeing this too, with a similar upgrading RN to 0.49 situation. Fix for me was to duplicate my Does this mean we are required to have a single |
Interesting, will have to test that. How is this not a breaking change unlisted in changelog if intentional? I don't think it is intentional as we still want iOS and android code separation. |
Experiencing as well. |
Summary: This change (initially discussed in expo/create-react-native-app#26) moves the HelloWorld project template from two nearly identical entry points (`index.android.js` and `index.ios.js`) to a single, minimal `index.js` entry point. The root component is created in `App.js`. This unifies the project structure between `react-native init` and Create React Native App and allows CRNA's eject to use the entry point from the HelloWorld template without any hacks to customize it. Also examples in the docs can be just copy-pasted to `App.js` the same way in both HelloWorld and CRNA apps without having to first learn about `AppRegistry.registerComponent`. * Created a new project from the template using `./scripts/test-manual-e2e.sh` and verified that: * The app builds, starts and runs both on Android and iOS. * Editing and reloading changes works. * The new files (`index.js`, `App.js`, `__tests__/App.js`) get created in the project folder. <img width="559" alt="screen shot 2017-08-01 at 19 10 51" src="https://user-images.githubusercontent.com/497214/28835171-300a12b6-76ed-11e7-81b2-623639c3b8f6.png"> <img width="467" alt="screen shot 2017-08-01 at 19 09 12" src="https://user-images.githubusercontent.com/497214/28835180-33d285e0-76ed-11e7-8d68-2b3bc44bf585.png"> <!-- Thank you for sending the PR! If you changed any code, please provide us with clear instructions on how you verified your changes work. In other words, a test plan is *required*. Bonus points for screenshots and videos! Please read the Contribution Guidelines at https://github.com/facebook/react-native/blob/master/CONTRIBUTING.md to learn more about contributing to React Native. Happy contributing! --> Closes #15312 Differential Revision: D5556276 Pulled By: hramos fbshipit-source-id: 068fdf7e51381c2bc50321522f2be0db47296c5e
Same here |
While it's breaking change (should be listed), there is nothing preventing you from separating platform specific code. |
It's not a breaking change since it should affect just new apps. See here: 6e99e31 - the commit modifies the HelloWorld app which is used as a template when using I believe Either:
Please pay attention to |
You mean revert to to RN 0.48? Ya that's what I did. The larger question is what's new convention going forward. I'm for just moving to
Which should it be? |
In my opinion, it definitely is breaking change. All existing apps does not work after upgrade. New ones are flawless, working as expected. Thumbd up for single entry point! 👍🏻 |
Can you share with me your It's an unwanted side-effect of an upgrade tool as far as I am aware. Once I get a breaking AppDelegate.m file, I will be able to make sure the issue is what I think. Next, I'll attach a special note in the release notes that folks should be aware of when upgrading. |
Inside my #ifdef DEBUG
jsCodeLocation = [[RCTBundleURLProvider sharedSettings] jsBundleURLForBundleRoot:@"index.ios" fallbackResource:nil];
#else
jsCodeLocation = [CodePush bundleURL];
#endif 0.49.1: #ifdef DEBUG
jsCodeLocation = [[RCTBundleURLProvider sharedSettings] jsBundleURLForBundleRoot:@"index" fallbackResource:nil];
#else
jsCodeLocation = [CodePush bundleURL];
#endif Yes I manually merged since I have a conflicting change with CodePush that failed 3 way merge during |
Hm, interesting that it failed even with `index.ios` - that shouldn't be
the case. Have you tried restarting packager w/o cache? Anyway, for
everyone - first step to try is to revert to `0.48.4` snippet that has been
pasted above. Simply said: make sure you have `index.ios` instead of
`index`.
…On Thu, 5 Oct 2017 at 19:04 Gary Fung ***@***.***> wrote:
0.48.4:
#ifdef DEBUG
jsCodeLocation = [[RCTBundleURLProvider sharedSettings] jsBundleURLForBundleRoot:@"index.ios" fallbackResource:nil];
#else
jsCodeLocation = [CodePush bundleURL];
#endif
0.49.1:
#ifdef DEBUG
jsCodeLocation = [[RCTBundleURLProvider sharedSettings] jsBundleURLForBundleRoot:@"index" fallbackResource:nil];
#else
jsCodeLocation = [CodePush bundleURL];
#endif
Yes I manually merged since I have a conflicting change with CodePush that
failed 3 way merge during react-native-git-upgrade. I also already tried
index.ios on 0.49.1, same bundling failure.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
<#16208 (comment)>,
or mute the thread
<https://github.com/notifications/unsubscribe-auth/ACWcxsfU3Q7rxCOWV1NGRVwA5LCAnvRZks5spQwPgaJpZM4PuaMJ>
.
|
Upgrading to 0.49.1 again. Note these changes merged by "Applied patch to 'android/app/build.gradle' cleanly." Added:
"Applied patch to 'android/app/src/main/java/com/[APP]/MainApplication.java' cleanly." Added:
inside |
Patch for my upgrade, excluded some files to keep it cleaner. As expected, upgrade process did change code to pick I think it is sufficient to inform users about this change ;) diff --git a/android/app/build.gradle b/android/app/build.gradle
index 8fab59d..77b7192 100644
--- a/android/app/build.gradle
+++ b/android/app/build.gradle
@@ -80,6 +80,10 @@ project.ext.envConfigFiles = [
apply from: project(':react-native-config').projectDir.getPath() + "/dotenv.gradle"
+project.ext.react = [
+ entryFile: "index.js"
+]
+
apply from: "../../node_modules/react-native/react.gradle"
/**
diff --git a/android/app/src/main/java/com/app/MainApplication.java b/android/app/src/main/java/com/app/MainApplication.java
index 01d7c8c..ab01a1d 100644
--- a/android/app/src/main/java/com/app/MainApplication.java
+++ b/android/app/src/main/java/com/app/MainApplication.java
@@ -33,6 +33,11 @@ public class MainApplication extends Application implements ReactApplication {
new ImagePickerPackage()
);
}
+
+ @Override
+ protected String getJSMainModuleName() {
+ return "index";
+ }
};
@Override
diff --git a/ios/app/AppDelegate.m b/ios/app/AppDelegate.m
index 4e1baef..a79f344 100644
--- a/ios/app/AppDelegate.m
+++ b/ios/app/AppDelegate.m
@@ -18,7 +18,7 @@
{
NSURL *jsCodeLocation;
- jsCodeLocation = [[RCTBundleURLProvider sharedSettings] jsBundleURLForBundleRoot:@"index.ios" fallbackResource:nil];
+ jsCodeLocation = [[RCTBundleURLProvider sharedSettings] jsBundleURLForBundleRoot:@"index" fallbackResource:nil];
RCTRootView *rootView = [[RCTRootView alloc] initWithBundleURL:jsCodeLocation
moduleName:@"app" |
I confirm that bundler works on keeping However my app is still broken hitting this error. I do have Commenting out code that uses Yes I'm frustrated how many things break on a single version upgrade. Tip on whether |
I have added note about this issue to the release notes as well as tweeted about it. Should prevent it from further escalation.
This has been a change in React itself and so, is most likely a result of React being upgraded. Maybe we should be more explicit about its version bumps, especially when we change majors. |
react-native-git-upgrade updated with index.js. I changed AppDelegate.m to |
Have you restarted your packager and built iOS app once again? (either from
xcode or by running `react-native run-ios`)
|
I am going to close this issue as the breaking change has been outlined in the release notes. Anyone else suffering from this issue, please comment here and I'll try to help to get your environment up and running. |
renamed index.ios.js to index.js as this is the expected entry point. Additional information here facebook/react-native#16208
Is this a bug report?
Yes.
Upgraded RN to 0.49.1.
Terminal output after
react-native run-ios
:And a corresponding redbox on simulator, for "Cannot find entry file index.js in any of the roots". Reloading simulator would just repeat the above.
Environment
Environment:
OS: macOS Sierra 10.12.6
Node: 8.6.0
Yarn: 1.1.0
npm: 5.3.0
Watchman: 4.9.0
Xcode: Xcode 9.0 Build version 9A235
Android Studio: Not Found
Packages: (wanted => installed)
react: 16.0.0-beta.5 => 16.0.0-beta.5
react-native: 0.49.1 => 0.49.1
Target Platform: iOS (11.0)
Steps to Reproduce
react-native-git-upgrade
react-native run-ios
Expected Behavior
App bundles and run.
Actual Behavior
Also in case it's 3rd package issues (unlikely since it's not building at all), here's my
package.json
:Reproducible Demo
Umm, am I the only one hitting this after all the RC's? I see some errors reported like this that's caused by 3rd party packages, but my terminal output says nothing about errring on a certain package, it just ends on line
at process._tickCallback (internal/process/next_tick.js:188:7)
.I would give more reproducing details if I even know where to look.
The text was updated successfully, but these errors were encountered: