iOS App Crashes Immediately in Test Flight

Has anyone run into issues using test flight?

I’ve uploaded my app into my App Developer account and added users to Test Flight. Immediately upon opening the app it crashes. I see the splash screen for a split second and then crashes.

I can’t figure out what the issue is. Any suggestions?

1 Like

We’re debugging this in a private thread with William too – if the app works with the Preview app, the logical conclusion is that some key plugin requirement is not handled correctly by the build service. What kind of flow functions is your app using? Are any of them triggered immediately on app load?

@Harri_Sarsa Upon initial app opening the only one I am using is Set App Variable where I have a looped logic node that sets appvar.now to the formula NOW() every second.

Global Canvas Logic:

Otherwise, it should open up the initial 3rd party auth log-in screen where there is no initial logic to start.

Login Page Logic:

I’m using a lot of flow functions in the app from HTTP Request nodes, component nodes, get device token, and many more, but none that fire upon launch. Here is the list that I’ve installed.


Hey @William_Glass and @Harri_Sarsa … I’m having some funny issues with iOS as well.

Just did my first build using TestFlight and the first run was crash upon start.

Now my app just shows the spinner indefinitely after the login.

I figured out that I need to tap the screen to force the app to move through the logic flow.

After a few taps, it gets through the login.

I think it might have to do with custom events.

Is it possible that these are getting stuck and that a screen tap moves them along?

I’m debugging it now.

Curious what you guys have tried.

I think I’ve been able to trace it to writing to client-side storage. Anytime I go to read/write/delete a record in client-side storage I need to tap a second time to force the logic flow through.

@William_Glass … Are you are also using client-side storage? I’m using it to save the Firebase refresh token so users can automatically log in.

We’ve had similar issues with Android HTTP requests getting stuck until screen is tapped – the current top hack is to show an invisible (empty content, background color set to fully transparent rgba(0,0,0,0)) toast with a loop to nudge things forward. Haven’t run into issues like this with iOS though.

Can you share your app ID @vereggen, I’d like to take a look at the logic if that’s OK!

Sure … App ID is 93291

Let me know if you also want me to add you as a tester of the app in TestFlight.

It happens during the login but it’s doing a ton of stuff so it’s hard to trace.

If you try to manually logout on the profile screen you need to tap a second time to continue.

Here’s a screen shot of the flow …

@vereggen I have not been able to get past crash immediately upon launch on iOS. I’ve tried toggling all of the various functions on and off and reconfiguring profile. I even spun up a different iOS app I had been fooling around with that worked just fine. That other app also uses the Firebase Auth and had no issues.

@Harri_Sarsa and the team are planning on spinning up a version of the app with debug logic to get it sorted.

@vereggen What was it that wouldn’t allow the app to get past the initial splash screen on iOS?

I have not been using client-side storage yet for storing the refresh token so unfortunately can’t help on that front. I previously built the app using client-side storage for core data, but have moved everything to Firebase since.

@vereggen I got it sorted. I had to put a 5-second delay node on the Global Canvas logic. It seems that between the initial launch running that logic there was an issue.

Now the app loads just fine. I’m going to implement similar logic for the refresh token to keep a user logged in using client-side storage and will let you know if I run into the same issues.

1 Like

Interesting … I just had the app crashing once. Glad you figured it out.

Still have this craziness with needing to tap the screen to force stepping through the flow.

Not sure if it’s the HTTP calls, reading local data, or something else.

Hopefully, @Harri_Sarsa will be able to shead some light.

1 Like

@Harri_Sarsa … can you tell me more how to setup this hack? Would like to test if this solves the problem.

Questions:

  1. Do I build this on the global canvas?
  2. How often should I trigger the toast message to run?
  3. Do I keep it running forever or just through the HTTP requests?
  4. What toast message should I display (it’s a required field)?
  5. Do you have a screenshot of the flow and toast properties?

Tx … :slight_smile:

@vereggen I’m using client-side storage now to automatically log-in users. I have it attached to a 500 MS delay node on global canvas and it works fine without tapping. Try adding a short delay node on app launch and see if that works.

To clarify this is only on iOS. I have not tested this on Android yet so if the issue is on Android then this hack may not work.

I added a nudge loop as suggested by @Harri_Sarsa and everything is now working. My App is now available in iOS (via TestFlight) and Andriod (Early Access). Woot!

The Nudge is an empty toast message with a transparent background rgb(0,0,0,0).

This solved a couple of problems in both iOS and Andriod.

One issue that I know for sure was that the Event - Page Focused was not being fired when the page was loaded (working fine on some pages and not on others) in both iOS and Andriod.

Other random symptoms where HTTP calls, Javascript functions, and client-side storage getting stuck in the flow (it takes forever to debug as it requires a multi-step process to build and publish to the app stores).

The Nudge Loop seems to be working so I’m not going to spend much more time on this. More of just an FYI for @Harri_Sarsa and team.

image

image

2 Likes

Thanks for the info! We’ll dig into these as part of the new runtime stabilization, definitely want to get rid of needing hacks like these.

1 Like

@vereggen did you put this on the global canvas logic or on the page logic?

I’m finding that the firebase auth gets stuck for some users and not others. It’s super strange because it only happens on some versus others.

I’m hoping the nudge will solve this for the time being.

Hey @William_Glass … It’s attached to the “App Launched” event on the global canvas page.

1 Like