-
Notifications
You must be signed in to change notification settings - Fork 30
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
Incompatible with Expo SDK 50 #34
Comments
Sorry, just saw that you already have a branch for this. |
Hey Thomas, thanks for noticing that.
Can you let me know if the fix works for you?
Especially if you have an M1 system, please.
Thank you!
…On Fri, 19 Jan 2024 at 15:40, Thomas Cerny ***@***.***> wrote:
Closed #34
<#34> as
completed.
—
Reply to this email directly, view it on GitHub
<#34 (comment)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/AELMPHREXYXMJMZHTRGYVMTYPJZWBAVCNFSM6AAAAABCB67RG6VHI2DSMVQWIX3LMV45UABCJFZXG5LFIV3GK3TUJZXXI2LGNFRWC5DJN5XDWMJRGUZTONZVHE3TIOI>
.
You are receiving this because you are subscribed to this thread.Message
ID:
<morrowdigital/watermelondb-expo-plugin/issue/34/issue_event/11537759749@
github.com>
|
I am re-opening the issue in case someone else has the issue also.
|
Thanks for updating! Unfortuantely this didn't end up working for me, I am on a M1 Mac:
I had this issue before with SDK49, which was resolved by adding this to my package.json:
However, if I add it back into my project on SDK50, I get this error:
If I go to my
My dependencies in my package.json:
Everything works fine again if I revert back to SDK49. I've tried deleting my |
Hey @garygcchiu it seems that the podfile cannot find the simjson in node modules. Indeed very weird.
Because these are the official instructions. Also I would suggest you try this. After install go and patch (with 'patch package`) the file in node_modules, the @morrowdigital/watermelondb-expo-plugin/build/withWatermelon.js and inside the function:
to
This is the old 'way' of setting up cocoapods (in SDK49). And since it works for you, it should work also for SDK50, since no change done in the iOS part. Please let me know if this works, for you. |
FWIW |
@killerchip yeah, after I upgrade my expo to sdk50 & related packages (including
Inside my
Changing line 267 to
However, when trying to run my app, it still returns the same error as above:
After the successful prebuild with the patched line, the contents of my
If the change the path for all three of these deps (if I just change one, then the others would give the same error) prepended with Thanks for the help! |
If I actually remove
|
If this helps too, I just tried a brand new
Without specifying After installing it, the
|
Hey @garygcchiu I have updated the plugin with a newer version (-beta1).
|
I confirm Example: const adapter = new SQLiteAdapter({
schema: schemaFile,
dbName: dbPath.replace("file://", ""),
}); |
@bamzi nice! are you also on a Apple Silicon machine? Unfortuately I'm still getting a giant wall of red errors even with |
Hey @garygcchiu Can you try please the same with a vanilla create expo app? P.S. (And throw a --clear-cache in the equation to be sure) |
@garygcchiu Not tested on M1, I'm using Intel based CPU but I have an M1 laptop that I will try later today. FYI, As soon as I attempted the SDK-50 upgrade process I had a lot of issues with ios prebuild and had to update my OS, XCode and Simulator to latest versions. I also had to go through package upgrades as well, not just Some notables updates in "dependencies": {
"@expo/metro-config": "^0.17.3",
"expo-asset": "~9.0.2",
"expo-build-properties": "~0.11.0",
"expo-file-system": "~16.0.4",
"expo-font": "~11.10.2",
"expo-linking": "~6.2.2",
"expo-localization": "~14.8.3",
"expo-router": "latest",
"expo-splash-screen": "~0.26.3",
"expo-sqlite": "~13.2.1",
"expo-status-bar": "~1.11.1",
"expo-system-ui": "~2.9.3",
"expo-web-browser": "~12.8.1",
},
"devDependencies": {
"@expo/prebuild-config": "latest",
"metro-react-native-babel-preset": "^0.77.0",
},
|
Officially after the upgrade you have to run |
@killerchip I think If it works for your |
@garygcchiu yes it requires an account in order to create provisioning profiles. |
yep, my issue occurs when executing The ending of the wall of errors:
I'll keep exploring this, since it seems others have ran into this issue in previous SDK upgrades. Likely just an issue w/ my installation |
After a lot tinkering, I've managed to get things to work on Mac M1. Here are the things I had to do and modify. ** Specially check the last part on ARM being apart of excluded architectures Version check:
Properly install Ruby 3.1.4
Link to thread on fixing exclude architecture If you're getting some errors on JSX or Babel, you need to update |
Update: I tried
|
Check if you can patch-package the changes in the following PR and if this solves your issues with expo run:ios, https://github.com/morrowdigital/watermelondb-expo-plugin/pull/24/files |
Sorry for the delay. I confirm just However, I could not make it work on existing repo upgraded to Step to build slowly: > bunx create-expo-app -t
# level 1 "start"
> bun install
> bun expo prebuild --clean
##>>> While PREBUILD is running, you have to jump into xcode and remove ARM from excluded architectures
# xcode > app > build settings > excluded architectures << remove "arm"
# if you see an error during prebuild is likely due to the architecture issue
> cd ios && pod install --repo-update && cd ..
> bun expo run ios
# after each change like adding packages to package.json or adding files to directories
# remove all the generated file and start from scratch
> rm -rf ios android bun.lockb node-modules .expo
# go up to > level 1 "start" and repeat
##!!! don't move all files and packages all at once or you risk a breaking change here's my package.json dependencies: "dependencies": {
"@bufbuild/protobuf": "^1.6.0",
"@connectrpc/connect": "^1.3.0",
"@expo/metro-config": "^0.17.3",
"@expo/vector-icons": "14",
"@gorhom/bottom-sheet": "^4.6.0",
"@morrowdigital/watermelondb-expo-plugin": "2.3.0-beta1",
"@nozbe/watermelondb": "^0.27.1",
"@nozbe/with-observables": "^1.6.0",
"@react-native-masked-view/masked-view": "^0.3.1",
"@react-navigation/bottom-tabs": "^6.5.11",
"@react-navigation/drawer": "^6.6.6",
"@react-navigation/native": "^6.1.9",
"@react-navigation/native-stack": "^6.9.17",
"@react-navigation/stack": "^6.3.20",
"@shopify/flash-list": "^1.6.3",
"@shopify/restyle": "^2.4.2",
"@tanstack/react-query": "^5.17.19",
"@xstate/react": "^4.0.3",
"app-icon-badge": "^0.0.15",
"color-hash": "^2.0.2",
"expo": "^50.0.3",
"expo-asset": "^9.0.2",
"expo-build-properties": "^0.11.0",
"expo-file-system": "^16.0.5",
"expo-font": "^11.10.2",
"expo-linking": "^6.2.2",
"expo-localization": "^14.8.3",
"expo-router": "^3.4.5",
"expo-splash-screen": "^0.26.3",
"expo-sqlite": "^13.2.1",
"expo-status-bar": "^1.11.1",
"expo-system-ui": "^2.9.3",
"expo-web-browser": "^12.8.1",
"fast-text-encoding": "^1.0.6",
"fuzzysort": "^2.0.4",
"graphemer": "^1.4.0",
"lodash-es": "^4.17.21",
"luxon": "^3.4.4",
"rc-field-form": "^1.41.0",
"react": "18.2.0",
"react-dom": "18.2.0",
"react-native": "^0.73.2",
"react-native-avoid-softinput": "^5.0.0",
"react-native-config": "^1.5.1",
"react-native-countdown-circle-timer": "^3.2.1",
"react-native-country-flag": "^2.0.2",
"react-native-drawer-layout": "^3.2.2",
"react-native-gesture-handler": "^2.14.1",
"react-native-linear-gradient": "^2.8.3",
"react-native-mmkv": "^2.11.0",
"react-native-pager-view": "^6.2.3",
"react-native-reanimated": "^3.6.1",
"react-native-redash": "^18.1.3",
"react-native-safe-area-context": "^4.8.2",
"react-native-screens": "^3.29.0",
"react-native-shadow-2": "^7.0.8",
"react-native-svg": "^14.1.0",
"react-native-url-polyfill": "^2.0.0",
"react-native-web": "^0.19.10",
"react-native-webview": "^13.6.4",
"react-svg-main": "^4.0.1",
"resolve-from": "^5.0.0",
"rgb-hex": "^4.1.0",
"superjson": "^2.2.1",
"xstate": "^5.5.2",
"zod": "^3.22.4"
},
"devDependencies": {
"@babel/core": "^7.23.7",
"@babel/plugin-proposal-decorators": "^7.23.7",
"@babel/plugin-proposal-export-namespace-from": "^7.18.9",
"@babel/plugin-transform-react-jsx": "^7.23.4",
"@babel/preset-react": "^7.23.3",
"@expo/prebuild-config": "^6.7.4",
"@ianvs/prettier-plugin-sort-imports": "^4.1.1",
"@react-native/babel-preset": "^0.73.19",
"@tanstack/eslint-plugin-query": "^5.17.20",
"@types/babel__core": "^7.20.5",
"@types/eslint": "^8.56.2",
"@types/luxon": "^3.4.2",
"@types/react": "^18.2.48",
"@typescript-eslint/eslint-plugin": "^6.19.1",
"@typescript-eslint/parser": "^6.19.1",
"ajv": "^8.12.0",
"autoprefixer": "^10.4.17",
"cross-env": "^7.0.3",
"eslint": "^8.56.0",
"eslint-config-prettier": "^9.1.0",
"eslint-plugin-import": "^2.29.1",
"eslint-plugin-jsx-a11y": "^6.8.0",
"eslint-plugin-react": "^7.33.2",
"eslint-plugin-react-hooks": "^4.6.0",
"jest": "^29.7.0",
"jest-expo": "^50.0.1",
"prettier": "^3.2.4",
"react-native-mmkv-flipper-plugin": "^1.0.0",
"react-native-svg-transformer": "^1.3.0",
"react-test-renderer": "^18.2.0",
"typescript": "^5.3.3"
}, My babel.config.js /** @type {import("@babel/core").ConfigFunction} */
module.exports = function (api) {
api.cache(true);
return {
presets: ['babel-preset-expo'],
plugins: [
require.resolve("react-native-reanimated/plugin"),
"@babel/plugin-proposal-export-namespace-from",
["@babel/plugin-proposal-decorators", { legacy: true }],
],
};
}; and app.config.ts or app.json plugins: [
[
"expo-font",
{
// "fonts": ["path/to/file.ttf"]
fonts: [...]
},
],
"./expo-plugins/with-modify-gradle.js",
["@morrowdigital/watermelondb-expo-plugin"],
[
"expo-build-properties",
{
android: {
kotlinVersion: "1.8.10",
extraProguardRules: "-keep class com.nozbe.watermelondb.** { *; }",
packagingOptions: {
pickFirst: ["**/libc++_shared.so"],
},
},
ios: {
extraPods: [],
},
},
],
"expo-localization",
"expo-router",
],
... |
hi is the beta version include JSI? |
Yes, by default
…On Thu, 25 Jan 2024 at 19:45, roo12312 ***@***.***> wrote:
hi is the beta version include JSI?
—
Reply to this email directly, view it on GitHub
<#34 (comment)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/AELMPHQEQVIK3CA4X3EEZCLYQKK33AVCNFSM6AAAAABCB67RG6VHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTSMJQGY4TQMBTGA>
.
You are receiving this because you were mentioned.Message ID:
***@***.***>
|
v2.3.0-beta2 is now published. Details: Install: |
@killerchip i'm using your new version with excludeSimArch on my M2 apple sillicon, and i`m facing this error
|
@FarahWe
If you don’t add the option?
…On Mon, 29 Jan 2024 at 19:20, Eduardo Farah ***@***.***> wrote:
@killerchip <https://github.com/killerchip> i'm using your new version
with excludeSimArch on my M2 apple sillicon, and i`m facing this error
could not find module 'ExpoModulesCore' for target
'x86_64-apple-ios-simulator'; found: arm64-apple-ios-simulator,
—
Reply to this email directly, view it on GitHub
<#34 (comment)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/AELMPHTJCLVEUVIDTLG66P3YQ7K5JAVCNFSM6AAAAABCB67RG6VHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTSMJVGIYTAMJUHA>
.
You are receiving this because you were mentioned.Message ID:
***@***.***>
|
I remove the plug-in option and worked! Thanks |
I can confirm this is working on Intel Macs -- I was able to get https://github.com/morrowdigital/watermelondb-plugin-example up and running. I cannot for the life of me figure out why this is not working for me on my M1 Mac. The steps I took on my M1 Mac are identical to what I did on my Intel Mac:
If I add the If I remove the Log: Specs:
|
Oddly enough, it does work if I:
🤔, no idea why this works, and if I run |
Gary, try to build and work with a dev client
…On Wed, 31 Jan 2024 at 07:20, Gary Chiu ***@***.***> wrote:
Oddly enough, it does work if I:
npx expo run:ios
get wall of errors
open ios/wmdbpluginexample.xcworkspace in XCode
click Run button, successful build -> opens iPhone Simulator, but would
fail since bundler is not running
Start Metro Bundler via npx expo start
Reload app in iPhone Simulator -> works
🤔, no idea why this works, and if I run npx expo run:ios again, it still
fails with the same errors.
—
Reply to this email directly, view it on GitHub
<#34 (comment)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/AELMPHVFCYJMN4KZGPTTOV3YRHICZAVCNFSM6AAAAABCB67RG6VHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTSMJYGQYDIMZYG4>
.
You are receiving this because you were mentioned.Message ID:
***@***.***>
|
Thanks! interestingly, it did work if I used: eas.json: "development-simulator": {
"developmentClient": true,
"distribution": "internal",
"ios": {
"simulator": true
}
}, Ran:
Maybe my understanding is off. I assumed that Either way, seems I'm unblocked now. Thank you so much! |
@garygcchiu Most probably it's your local XCode installation. |
TypeError: Cannot read property 'initializeJSI' of null, js engine: hermes |
@yamadaOliva |
I am also getting the I get this on the CLI using simply
I'm on Mac M1, deploying to iOS simulator (iPhone 15). I've tried the latest release and the beta packages but with the same errors Is this a related issue or do I need to create a new issue? |
Ignore my last comment - just realised this wont work with expo go so switched to easbuild and got it working fine |
@garygcchiu I noticed that you have both @nozbe/watermelondb and @nozbe/simdjson. @nozbe/simdjson is already a dependency of @nozbe/watermelondb, so adding @nozbe/simdjson in your project could potentially cause the double copy of simdjson in your Podfile?
|
I did a presentation on Expo Prebuild to my development team @ my company. I was able to install watermelondb using the plugin on Expo@51. If you're interested, check out my basic Expo + prebuild repo: |
Reason: MainActivity.java and MainApplication.java were migrated to Kotlin. If you use any config plugins that modify these files, they may need to be updated for SDK 50 support.
The WatermelonDB config plugin was specifically mentioned in the SDK 50 release notes: https://expo.dev/changelog/2024/01-18-sdk-50#%E2%9E%A1%EF%B8%8F-upgrading-your-app
The text was updated successfully, but these errors were encountered: