Standalone Release app in iOS hangs on white loading screen


#1

Hey all.

I’m trying to build a “production” release for my ios app detached and using expokit.

Everything works fine on “debug” mode (debug build mode on xcode), which loads my JS locally and has all expo hot reload stuff and everything is fine.

But when I change my run profile to “release” on xcode and try to run it on simulator, the app hangs on a white screen with a loading gif

The logs is also empty so I don’t have any idea of what’s going on there.
I recently upgraded to SDK 26 and followed the instructions in https://blog.expo.io/expo-sdk-v26-0-0-is-now-available-2be6d9805b31 (also removed the loadReactApplication line in AppDelegate.

Maybe is something about Main Interface setting? What should be setted there? What about Launch Screen File? I’m totally lost.

Thanks


#2

With me, is happening almost the same. But is in dev mode. I have a detached app, with splash screen set int app.json, but only appears the loading in the top left corner.

app.json:
“splash”: {
“image”: “./assets/icons/loading.png”
},


#3

Well, also, I’ve setted isSplashScreenDisabled = YES in ExShell.plist but the splashscreen still shows up when app loads, in both debug and release mode.

Maybe there’s something going on reading the ExShell.plist file because that’s where the manifestUrl is setted so that would be an aswer to why my app doesn’t boot on release mode, since it may not be reading this file properly. But that’s just a guess


#4

Update: I’ve changed my manifestUrl in ExShell.plist to my local development url and the app worked fine (but using my local JS). exp://exp.host/@MYUSER/MYPROJECT doesn’t work.

I’ve tried to change exp:// to https:// but no luck as well.
In android the release url works just fine.


#5

Update: For me, if I pass a backgroundColor, the background change, but the image is not rendered!

23


#6

@wesley39 I believe your issue is totally different from mine.

My app won’t boot, won’t load my published JS specifically on release iOS stanadlone detached build and your issue is the loading screen not properly rendering. I suggest you to open another topic since the issue is completely different.

Also I suggest you to change the LaunchScreen.xib in ios/supporting as well as checking the isSplashScreenDisabled in ExShell.plist and LaunchScreenFile in the root of XCode Project. Good luck!


#7

Yes, I’m thinking this too. Well, thanks for your help


#8

Still no luck… Can anybody help me with that?
My uploads to Testflight won’t even start the app!


#9

I’m having the exact same issue. Android is working fine but iOS does not. It seems as though it is unable to download the bundled JS from Expo.


#10

Hi everyone! Sorry for the delayed response here. Unfortunately I’m not able to reproduce this locally in my environment, could someone who is having these issues upload a GitHub repo with a minimal repro (i.e. no code except that which is necessary to display the issue)?


#11

@dikaiosune I did some experimenting and found the root cause of my issue.

I am running a detached app and was using assetBundlePatterns in app.json to include all of my assets in the app bundle. I was also trying to use Font.loadAsync while still showing the splash screen in the main app file.

HOWEVER, and this is the strange part, putting the assets in assetBundlePatterns caused them not to load at all. As soon as I took out Font.loadAsync that was blocking the splash screen from disappearing, the app loaded, but none of the assets (fonts or images) were in there. Taking them out of assetBundlePatterns caused the images to correctly be displayed.

Is this expected functionality? It seems very weird that I can’t bundle images in a detached app.


#12

EXACTLY my issue as well.

I ran the Font.loadAsync inside a try/catch block in found out that the issue was an FONT NOT FOUND (although it exists and loads nicely on dev).

Now the app will only build when I change the build number and run exp detach again.


#13

I believe we’ll support assetBundlePatterns for ExpoKit in a release soon, but we don’t currently support it in SDK 26.


#14

So what shall we do? Remove assetBundlePatterns? Why my font only loads after I re-detach?
It’s annoying to re-detach every native change and reinstall all pods, re-apply all changes I previously made… Really really bad


#15

I’m not sure I understand what you’re having to do here, could you explain a bit more about why you’re having to re-detach?

If you’re using ExpoKit, I would definitely recommend removing assetBundlePatterns from app.json until you can upgrade to an SDK version which supports it (hopefully very soon!).


#16

Well I had to re-detach because I’ve done virtually everything else to make my assets load!

The only thing I left for me to do was re-detach so I’ve done it and the app surprisingly worked for the first release after re-detach. Then next release was broken again. So I re-detached again. The first release the assets loaded once again and the very next broke things up again even though the only thing I updated was the build/version number.

But I’m removing assetBundlePatterns right now and check if it’ll work.


#17

Does assetBundlePatterns works fine in ExpoKit with Android?
Is there a valid config to assetBundlePatterns inside android key on app.json?


#18

I don’t believe we currently support platform-specific asset bundle patterns, but that might be a good feature request to make!

If you need to have one platform detached but build the other as a standalone, then you can use the --config flag in exp to configure which app.json to use, and you could create separate app.json files for your detached and non-detached platforms.

That said, we’ll be releasing a fix for the issue very soon (this week, hopefully) so you shouldn’t need to choose between these options.


closed #19

This topic was automatically closed 15 days after the last reply. New replies are no longer allowed.