soundscape-community / soundscape

An iOS application/service that aids navigation through spatialized audio

Home Page:https://openscape.io

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

CRASH: MARKER TUTORIAL: App crashes after the new Marker is called out in the tutorial

jchudge opened this issue · comments

By @jchudge While going through the Add Marker tutorial i created a Marker for the nearby train station. Soundscape crashed after it had read it out. I used the submit feedback form to report the issue. On restarting Soundscape, the new Marker for the train station was in my Marker list.

Build: 1.0.0 (8)

Repro Steps:

  1. Go to Settings
  2. Select "Help & Tutorials"
  3. Select the "Getting Started with Markers" tutorial
  4. Select the "Add Marker" button
  5. Search for a destination and listen to the tutorial
  6. Edit the name of the Marker (optional) and select DONE
  7. Continue to listen to the tutorial and select the "Nearby Markers" button

Expected Results:
The Markers will be called out and the tutorial will complete

Actual Results:
After the final Marker is called out the app crashes

I can replicate this in the simulator. In the marker tutorial, after you create the marker and press "Nearby Markers" as recommended by the tutorial, the app crashes after the callout has been spoken.

Exception	NSException *	"Modifications to the layout engine must not be performed from a background thread after it has been accessed from the main thread."	0x0000600001117d20

Unfortunately, the debugger drops us somewhere into the thread assembly code, not the app's Swift code, so it'll take a little work to figure out where/how to fix this.

I traced this down to some calls in MarkerTutorialViewController.swift using the breakpoint technique in https://stackoverflow.com/a/59299616. I pushed a commit that alleviates the crash. However, I still can't complete the tutorial in the simulator because the next step involves beacons, which don't work in the simulator since compass direction isn't simulated. So we should still test the fix on a real device in the next build.

I confirmed on a device that the tutorial can be completed after the patch.

@StevenAbrams to validate on next build.

I just tried this will build 1.0.0 (9) which became available a few hours ago. On a physical device I can’t complete the tutorial, but the crash is fixed. Do I need to wait for another build?

I accessed the Marker tutorial via the Help & Tutorials menu and it worked well. I created a new marker via the tutorial and it read it out, along with the other markers I already had and then I was able to exit the tutorial and there was no crash :-)
On a separate note...the text on that last screen is a little confusing because it refers to the Marker and encourages you to locate it by holding your phone flat and turning around...I tried that a couple of times but there were no audio cues at all. We can look into that after release...but I would say it is a priority 3?

Yeah, the crash is gone but the tutorial is not fully advancing properly. So I'd say this isn't yet resolved.

FWIW, this seems to be a preexisting bug -- I can replicate the crash in the last Microsoft Soundscape release I still have installed.

That's fair; we can come back to it post release :-)

Let's close this bug @jchudge @steinbro @fraziercarr and open a new one that specifically states that the tutorial does not end. I have opened #56 to address the new bug.