Hi
We are trying to integrate EAS Update, but we are hitting an issue with Material Community Icons. When we build our app using EAS Build, it works flawless. Creating an update works as well and it’s published and then picked up by the app. The problem is, no icons are displayed and an exception is thrown, which in turn marks the update as invalid (I assume as on the next reload, it’s back to the previous version).
This is what I get after running eas update
:
[expo-cli] Starting Metro Bundler
[expo-cli]
[expo-cli] iOS Bundling complete 122442ms
[expo-cli]
[expo-cli] Android Bundling complete 122453ms
[expo-cli] iOS Building Hermes bytecode for the bundle
[expo-cli] Android Building Hermes bytecode for the bundle
[expo-cli]
[expo-cli] Bundle Size
[expo-cli] ┌ index.ios.js (Hermes) 3.16 MB
[expo-cli] ├ index.android.js (Hermes) 3.16 MB
[expo-cli] ├ index.ios.js.map (Hermes) 9.4 MB
[expo-cli] └ index.android.js.map (Hermes) 9.41 MB
[expo-cli]
[expo-cli] 💡 JavaScript bundle sizes affect startup time. Learn more: https://expo.fyi/javascript-bundle-sizes
[expo-cli]
[expo-cli] Finished saving JS Bundles
[expo-cli] Saving assets
[expo-cli] saving /node_modules/@expo/vector-icons/build/vendor/react-native-vector-icons/Fonts/MaterialCommunityIcons.ttf
[expo-cli] saving /node_modules/react-native-paper/src/assets/back-chevron.png
[expo-cli] saving /node_modules/@react-navigation/elements/src/assets/back-icon@1x.ios.png
[expo-cli] saving /node_modules/@react-navigation/elements/src/assets/back-icon@1.5x.ios.png
[expo-cli] saving /node_modules/@react-navigation/elements/src/assets/back-icon@2x.ios.png
[expo-cli] saving /node_modules/@react-navigation/elements/src/assets/back-icon@3x.ios.png
[expo-cli] saving /node_modules/@react-navigation/elements/src/assets/back-icon@4x.ios.png
[expo-cli] saving /node_modules/@react-navigation/elements/src/assets/back-icon-mask.png
[expo-cli] saving /node_modules/@expo/vector-icons/build/vendor/react-native-vector-icons/Fonts/AntDesign.ttf
[expo-cli] saving /node_modules/@expo/vector-icons/build/vendor/react-native-vector-icons/Fonts/Entypo.ttf
[expo-cli] saving /node_modules/@expo/vector-icons/build/vendor/react-native-vector-icons/Fonts/EvilIcons.ttf
[expo-cli] saving /node_modules/@expo/vector-icons/build/vendor/react-native-vector-icons/Fonts/Feather.ttf
[expo-cli] saving /node_modules/@expo/vector-icons/build/vendor/react-native-vector-icons/Fonts/Fontisto.ttf
[expo-cli] saving /node_modules/@expo/vector-icons/build/vendor/react-native-vector-icons/Fonts/FontAwesome.ttf
[expo-cli] saving /node_modules/@expo/vector-icons/build/vendor/react-native-vector-icons/Fonts/FontAwesome5_Regular.ttf
[expo-cli] saving /node_modules/@expo/vector-icons/build/vendor/react-native-vector-icons/Fonts/FontAwesome5_Solid.ttf
[expo-cli] saving /node_modules/@expo/vector-icons/build/vendor/react-native-vector-icons/Fonts/FontAwesome5_Brands.ttf
[expo-cli] saving /node_modules/@expo/vector-icons/build/vendor/react-native-vector-icons/Fonts/Foundation.ttf
[expo-cli] saving /node_modules/@expo/vector-icons/build/vendor/react-native-vector-icons/Fonts/Ionicons.ttf
[expo-cli] saving /node_modules/@expo/vector-icons/build/vendor/react-native-vector-icons/Fonts/MaterialIcons.ttf
[expo-cli] saving /node_modules/@expo/vector-icons/build/vendor/react-native-vector-icons/Fonts/Octicons.ttf
[expo-cli] saving /node_modules/@expo/vector-icons/build/vendor/react-native-vector-icons/Fonts/SimpleLineIcons.ttf
[expo-cli] saving /node_modules/@expo/vector-icons/build/vendor/react-native-vector-icons/Fonts/Zocial.ttf
[expo-cli] saving /node_modules/@react-navigation/elements/src/assets/back-icon@1x.android.png
[expo-cli] saving /node_modules/@react-navigation/elements/src/assets/back-icon@1.5x.android.png
[expo-cli] saving /node_modules/@react-navigation/elements/src/assets/back-icon@2x.android.png
[expo-cli] saving /node_modules/@react-navigation/elements/src/assets/back-icon@3x.android.png
[expo-cli] saving /node_modules/@react-navigation/elements/src/assets/back-icon@4x.android.png
[expo-cli] Files successfully saved.
[expo-cli] Dumping asset map
[expo-cli] Dumping source maps
[expo-cli] Preparing additional debugging files
[expo-cli] Export was successful. Your exported files can be found in dist
✔ Exported bundle(s)
✔ Uploaded 2 app bundles
✔ Uploading assets skipped - no new assets found
✔ Channel: develop pointed at branch: develop
✔ Published!
Branch develop
Runtime version exposdk:48.0.0
Platform android, ios
Update group ID XXX
Android update ID XXX
iOS update ID XXX
Message Test No. 5
Commit XXX
Website link https://expo.dev/accounts/XXX/projects/XXX/updates/XXX
This makes me believe, the assets are bundled in the update (although not sure why they need to be since it’s already bundled in the APK). Looks like the paths are somehow incompatible between the initial APK and the update file.
And here is an error we get in Bugsnag:
Error Font.loadAsync unexpected exception: Font asset not found /data/user/0/XXX/files/.expo-internal/raw/node_modules_expo_vectoricons_build_vendor_reactnativevectoricons_fonts_materialcommunityicons.ttf
(native) construct
(native) apply
address at /data/user/0/XXX/files/.expo-internal/209f381b392936ee7d948a509f8c81dc:1:90853 _construct
address at /data/user/0/XXX/files/.expo-internal/209f381b392936ee7d948a509f8c81dc:1:90498 Wrapper
(native) construct
address at /data/user/0/XXX/files/.expo-internal/209f381b392936ee7d948a509f8c81dc:1:677268 _createSuperInternal
(native) call
address at /data/user/0/XXX/files/.expo-internal/209f381b392936ee7d948a509f8c81dc:1:677553 CodedError
I tried upgrading all libs and dependencies to their latest versions so we are running Expo SDK 48 and the latest version of expo-updates
. We are also using react-native-paper
(the only one I could not upgrade - v4), so we don’t actually import any of the icon font files directly - it’s proxied through that I think.
Has anyone encountered a similar issue? If so, how did you solve it?
Thank you all for your time!
Regards,
Vladimir