To quickly sum up my issue: My WebGL project works perfectly on Android and Windows. But iOS Safari has been a nightmare. I’m currently on iPadOS 17 with Unity 2023.1.15f1, and this was also an issue on iPadOS 16.4 with the latest Unity 2022.3.3f1.
I kept getting “unity RuntimeError: call_indirect to a null table entry” error after refreshing the page. I implemented code in my template’s index.html as described in this doc: Unity - Manual: Cache behavior in WebGL
The code is:
#if USE_DATA_CACHING
cacheControl: function (url) {
// Disable explicit caching for all other files.
// Note: the default browser cache may cache them anyway.
return "no-store";
},
#endif
I am also using @brendanduncan_u3d 's workaround as shown here: iOS 15 + WebGL 2 issue page-2
My hope was that this would force Safari to restart from scratch on every page load. My project ALWAYS launches if I clear Safari’s cache, then reload the page. That code made my project much more robust, but now, I’m running into issues where the loading bar gets to 90% and it stays there forever without any errors.
Can anyone please give me some advice on this? It’s really infuriating that the project works every single time if the cache is cleared, but when I let the iPad stay off for a few minutes, it no longer wants to load without clearing cache again. You can try it out here: Build1 by GBG_PCS.
I have Data Caching on in Player Settings so that my custom code will execute. Compression is Brotli but I haven’t noticed differences between gZip, Brotli or Off. Enable Development Build with Enable Exceptions Full Without Stacktrace hasn’t stopped the issue either.
This is ultra frustrating because I feel like I didn’t do anything wrong - I’m just fighting Safari to NOT cache. If it would reload everything on each page refresh, I wouldn’t have this issue. ANY ideas are very appreciated!
Are you able to connect desktop Safari’s debugger to the iPhone/iPad device to see the browser console logs and the results of the Network tab?
Also, if you remove itch.io hosting from the equation and run via a web server that directly serves the Unity build output (without iframes or other content), how does it look in the Network tab?
The fact that it works on the first run in Safari, but not on subsequent runs does suggest a bug in Safari, or a bug in Unity’s Data Caching implementation.
If you disable Unity’s Data Caching, does the issue still occur? If it does, then that hints that the issue would be something in Safari’s caching.
Thank you so much for looking into this - I’m very grateful!
Here’s some findings. I’m not a Mac expert but…
This is my first load. Notice all the data in the Transfer Size column.
This is my consequent load. Everything now says “disk”.
As for the Console, I enabled everything I could to verbose logging. But I noticed a surefire way to kill my build: Go to the home page, put the iPad to sleep, wait a minute, and refresh. Here are the logs:
Logs
{\rtf1\ansi\ansicpg1252\cocoartf2509
\cocoatextscaling0\cocoaplatform0{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
{\colortbl;\red255\green255\blue255;}
{*\expandedcolortbl;;}
\margl1440\margr1440\vieww10800\viewh8400\viewkind0
\pard\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\pardirnatural\partightenfactor0
\f0\fs24 \cf0 [Debug] AudioParam::setValue(5D8E9F2BA4B80001) 0.754
[Debug] AudioParam::setValue(5D8E9F2BA4B80002) -3.252
[Debug] AudioParam::setValue(5D8E9F2BA4B80003) -3.028
[Log] MediaSessionManageriOS::applicationWillBecomeInactive(0)
[Log] MediaSessionManageriOS::applicationDidEnterBackground(0) suspendedUnderLock: false
[Log] PlatformMediaSession::beginInterruption(D606C893FF258843) state = Playing, interruption type = EnteringBackground, interruption count = 0
[Log] PlatformMediaSession::beginInterruption(D606C893FF258843) returning early because client says to override interruption
[Log] MediaSessionManageriOS::processWillSuspend(0)
[Log] MediaSessionManageriOS::maybeDeactivateAudioSession(0) tried to set inactive AudioSession
[Log] AudioSession::tryToSetActive(0) is active = true, previousIsActive = true
[Log] HTMLMediaElement::purgeBufferedDataIfPossible(5991AEDCE0183A55)
[Info] MediaElementSession::addBehaviorRestriction(5991AEDCE0183A55) adding RequireUserGestureForFullscreen
[Info] MediaElementSession::addBehaviorRestriction(5991AEDCE0183A55) adding RequirePageConsentToLoadMedia
[Info] MediaElementSession::addBehaviorRestriction(5991AEDCE0183A55) adding RequireUserGestureToAutoplayToExternalDevice
[Info] MediaElementSession::addBehaviorRestriction(5991AEDCE0183A55) adding RequireUserGestureToControlControlsManager
[Info] MediaElementSession::addBehaviorRestriction(5991AEDCE0183A55) adding RequirePlaybackToControlControlsManager
[Info] MediaElementSession::addBehaviorRestriction(5991AEDCE0183A55) adding InvisibleAutoplayNotPermitted
[Log] MediaSession::MediaSession(C3A4AF30)
[Log] MediaElementSession::clientWillBeginAutoplaying(5991AEDCE0183A55) state = Idle
[Log] MediaElementSession::setState(5991AEDCE0183A55) Autoplaying
[Log] HTMLMediaElement::setBufferingPolicy(5991AEDCE0183A55) LimitReadAhead
[Log] HTMLMediaElement::setBufferingPolicy(5991AEDCE0183A55) PurgeResources
[Log] HTMLMediaElement::purgeBufferedDataIfPossible(699943783D00177E)
[Info] MediaElementSession::addBehaviorRestriction(699943783D00177E) adding RequireUserGestureForFullscreen
[Info] MediaElementSession::addBehaviorRestriction(699943783D00177E) adding RequirePageConsentToLoadMedia
[Info] MediaElementSession::addBehaviorRestriction(699943783D00177E) adding RequireUserGestureToAutoplayToExternalDevice
[Info] MediaElementSession::addBehaviorRestriction(699943783D00177E) adding RequireUserGestureToControlControlsManager
[Info] MediaElementSession::addBehaviorRestriction(699943783D00177E) adding RequirePlaybackToControlControlsManager
[Info] MediaElementSession::addBehaviorRestriction(699943783D00177E) adding InvisibleAutoplayNotPermitted
[Log] MediaElementSession::clientWillBeginAutoplaying(699943783D00177E) state = Idle
[Log] MediaElementSession::setState(699943783D00177E) Autoplaying
[Log] HTMLMediaElement::setBufferingPolicy(699943783D00177E) LimitReadAhead
[Log] HTMLMediaElement::setBufferingPolicy(699943783D00177E) PurgeResources
[Log] HTMLMediaElement::purgeBufferedDataIfPossible(A0FF8EB9FEB80F21)
[Info] MediaElementSession::addBehaviorRestriction(A0FF8EB9FEB80F21) adding RequireUserGestureForFullscreen
[Info] MediaElementSession::addBehaviorRestriction(A0FF8EB9FEB80F21) adding RequirePageConsentToLoadMedia
[Info] MediaElementSession::addBehaviorRestriction(A0FF8EB9FEB80F21) adding RequireUserGestureToAutoplayToExternalDevice
[Info] MediaElementSession::addBehaviorRestriction(A0FF8EB9FEB80F21) adding RequireUserGestureToControlControlsManager
[Info] MediaElementSession::addBehaviorRestriction(A0FF8EB9FEB80F21) adding RequirePlaybackToControlControlsManager
[Info] MediaElementSession::addBehaviorRestriction(A0FF8EB9FEB80F21) adding InvisibleAutoplayNotPermitted
[Log] MediaElementSession::clientWillBeginAutoplaying(A0FF8EB9FEB80F21) state = Idle
[Log] MediaElementSession::setState(A0FF8EB9FEB80F21) Autoplaying
[Log] HTMLMediaElement::setBufferingPolicy(A0FF8EB9FEB80F21) LimitReadAhead
[Log] HTMLMediaElement::setBufferingPolicy(A0FF8EB9FEB80F21) PurgeResources
[Log] HTMLMediaElement::purgeBufferedDataIfPossible(B9FC63E42CD4A3DF)
[Info] MediaElementSession::addBehaviorRestriction(B9FC63E42CD4A3DF) adding RequireUserGestureForFullscreen
[Info] MediaElementSession::addBehaviorRestriction(B9FC63E42CD4A3DF) adding RequirePageConsentToLoadMedia
[Info] MediaElementSession::addBehaviorRestriction(B9FC63E42CD4A3DF) adding RequireUserGestureToAutoplayToExternalDevice
[Info] MediaElementSession::addBehaviorRestriction(B9FC63E42CD4A3DF) adding RequireUserGestureToControlControlsManager
[Info] MediaElementSession::addBehaviorRestriction(B9FC63E42CD4A3DF) adding RequirePlaybackToControlControlsManager
[Info] MediaElementSession::addBehaviorRestriction(B9FC63E42CD4A3DF) adding InvisibleAutoplayNotPermitted
[Log] MediaElementSession::clientWillBeginAutoplaying(B9FC63E42CD4A3DF) state = Idle
[Log] MediaElementSession::setState(B9FC63E42CD4A3DF) Autoplaying
[Log] HTMLMediaElement::setBufferingPolicy(B9FC63E42CD4A3DF) LimitReadAhead
[Log] HTMLMediaElement::setBufferingPolicy(B9FC63E42CD4A3DF) PurgeResources
[Log] HTMLMediaElement::purgeBufferedDataIfPossible(71838D521C21DFE5)
[Info] MediaElementSession::addBehaviorRestriction(71838D521C21DFE5) adding RequireUserGestureForFullscreen
[Info] MediaElementSession::addBehaviorRestriction(71838D521C21DFE5) adding RequirePageConsentToLoadMedia
[Info] MediaElementSession::addBehaviorRestriction(71838D521C21DFE5) adding RequireUserGestureToAutoplayToExternalDevice
[Info] MediaElementSession::addBehaviorRestriction(71838D521C21DFE5) adding RequireUserGestureToControlControlsManager
[Info] MediaElementSession::addBehaviorRestriction(71838D521C21DFE5) adding RequirePlaybackToControlControlsManager
[Info] MediaElementSession::addBehaviorRestriction(71838D521C21DFE5) adding InvisibleAutoplayNotPermitted
[Log] MediaElementSession::clientWillBeginAutoplaying(71838D521C21DFE5) state = Idle
[Log] MediaElementSession::setState(71838D521C21DFE5) Autoplaying
[Log] HTMLMediaElement::setBufferingPolicy(71838D521C21DFE5) LimitReadAhead
[Log] HTMLMediaElement::setBufferingPolicy(71838D521C21DFE5) PurgeResources
[Log] HTMLMediaElement::purgeBufferedDataIfPossible(AA54CD0ADC6EAAFE)
[Info] MediaElementSession::addBehaviorRestriction(AA54CD0ADC6EAAFE) adding RequireUserGestureForFullscreen
[Info] MediaElementSession::addBehaviorRestriction(AA54CD0ADC6EAAFE) adding RequirePageConsentToLoadMedia
[Info] MediaElementSession::addBehaviorRestriction(AA54CD0ADC6EAAFE) adding RequireUserGestureToAutoplayToExternalDevice
[Info] MediaElementSession::addBehaviorRestriction(AA54CD0ADC6EAAFE) adding RequireUserGestureToControlControlsManager
[Info] MediaElementSession::addBehaviorRestriction(AA54CD0ADC6EAAFE) adding RequirePlaybackToControlControlsManager
[Info] MediaElementSession::addBehaviorRestriction(AA54CD0ADC6EAAFE) adding InvisibleAutoplayNotPermitted
[Log] MediaElementSession::clientWillBeginAutoplaying(AA54CD0ADC6EAAFE) state = Idle
[Log] MediaElementSession::setState(AA54CD0ADC6EAAFE) Autoplaying
[Log] HTMLMediaElement::setBufferingPolicy(AA54CD0ADC6EAAFE) LimitReadAhead
[Log] HTMLMediaElement::setBufferingPolicy(AA54CD0ADC6EAAFE) PurgeResources
[Log] HTMLMediaElement::purgeBufferedDataIfPossible(E65045C2D0C8F5BE)
[Info] MediaElementSession::addBehaviorRestriction(E65045C2D0C8F5BE) adding RequireUserGestureForFullscreen
[Info] MediaElementSession::addBehaviorRestriction(E65045C2D0C8F5BE) adding RequirePageConsentToLoadMedia
[Info] MediaElementSession::addBehaviorRestriction(E65045C2D0C8F5BE) adding RequireUserGestureToAutoplayToExternalDevice
[Info] MediaElementSession::addBehaviorRestriction(E65045C2D0C8F5BE) adding RequireUserGestureToControlControlsManager
[Info] MediaElementSession::addBehaviorRestriction(E65045C2D0C8F5BE) adding RequirePlaybackToControlControlsManager
[Info] MediaElementSession::addBehaviorRestriction(E65045C2D0C8F5BE) adding InvisibleAutoplayNotPermitted
[Log] MediaElementSession::clientWillBeginAutoplaying(E65045C2D0C8F5BE) state = Idle
[Log] MediaElementSession::setState(E65045C2D0C8F5BE) Autoplaying
[Log] HTMLMediaElement::setBufferingPolicy(E65045C2D0C8F5BE) LimitReadAhead
[Log] HTMLMediaElement::setBufferingPolicy(E65045C2D0C8F5BE) PurgeResources
[Log] HTMLMediaElement::purgeBufferedDataIfPossible(D7FA621BC0BEFF76)
[Info] MediaElementSession::addBehaviorRestriction(D7FA621BC0BEFF76) adding RequireUserGestureForFullscreen
[Info] MediaElementSession::addBehaviorRestriction(D7FA621BC0BEFF76) adding RequirePageConsentToLoadMedia
[Info] MediaElementSession::addBehaviorRestriction(D7FA621BC0BEFF76) adding RequireUserGestureToAutoplayToExternalDevice
[Info] MediaElementSession::addBehaviorRestriction(D7FA621BC0BEFF76) adding RequireUserGestureToControlControlsManager
[Info] MediaElementSession::addBehaviorRestriction(D7FA621BC0BEFF76) adding RequirePlaybackToControlControlsManager
[Info] MediaElementSession::addBehaviorRestriction(D7FA621BC0BEFF76) adding InvisibleAutoplayNotPermitted
[Log] MediaElementSession::clientWillBeginAutoplaying(D7FA621BC0BEFF76) state = Idle
[Log] MediaElementSession::setState(D7FA621BC0BEFF76) Autoplaying
[Log] HTMLMediaElement::setBufferingPolicy(D7FA621BC0BEFF76) LimitReadAhead
[Log] HTMLMediaElement::setBufferingPolicy(D7FA621BC0BEFF76) PurgeResources
[Log] HTMLMediaElement::purgeBufferedDataIfPossible(9C73AFCB12AC39E5)
[Info] MediaElementSession::addBehaviorRestriction(9C73AFCB12AC39E5) adding RequireUserGestureForFullscreen
[Info] MediaElementSession::addBehaviorRestriction(9C73AFCB12AC39E5) adding RequirePageConsentToLoadMedia
[Info] MediaElementSession::addBehaviorRestriction(9C73AFCB12AC39E5) adding RequireUserGestureToAutoplayToExternalDevice
[Info] MediaElementSession::addBehaviorRestriction(9C73AFCB12AC39E5) adding RequireUserGestureToControlControlsManager
[Info] MediaElementSession::addBehaviorRestriction(9C73AFCB12AC39E5) adding RequirePlaybackToControlControlsManager
[Info] MediaElementSession::addBehaviorRestriction(9C73AFCB12AC39E5) adding InvisibleAutoplayNotPermitted
[Log] MediaElementSession::clientWillBeginAutoplaying(9C73AFCB12AC39E5) state = Idle
[Log] MediaElementSession::setState(9C73AFCB12AC39E5) Autoplaying
[Log] HTMLMediaElement::setBufferingPolicy(9C73AFCB12AC39E5) LimitReadAhead
[Log] HTMLMediaElement::setBufferingPolicy(9C73AFCB12AC39E5) PurgeResources
[Log] HTMLMediaElement::purgeBufferedDataIfPossible(F8C7C228DE895E6E)
[Info] MediaElementSession::addBehaviorRestriction(F8C7C228DE895E6E) adding RequireUserGestureForFullscreen
[Info] MediaElementSession::addBehaviorRestriction(F8C7C228DE895E6E) adding RequirePageConsentToLoadMedia
[Info] MediaElementSession::addBehaviorRestriction(F8C7C228DE895E6E) adding RequireUserGestureToAutoplayToExternalDevice
[Info] MediaElementSession::addBehaviorRestriction(F8C7C228DE895E6E) adding RequireUserGestureToControlControlsManager
[Info] MediaElementSession::addBehaviorRestriction(F8C7C228DE895E6E) adding RequirePlaybackToControlControlsManager
[Info] MediaElementSession::addBehaviorRestriction(F8C7C228DE895E6E) adding InvisibleAutoplayNotPermitted
[Log] MediaElementSession::clientWillBeginAutoplaying(F8C7C228DE895E6E) state = Idle
[Log] MediaElementSession::setState(F8C7C228DE895E6E) Autoplaying
[Log] HTMLMediaElement::setBufferingPolicy(F8C7C228DE895E6E) LimitReadAhead
[Log] HTMLMediaElement::setBufferingPolicy(F8C7C228DE895E6E) PurgeResources
[Log] HTMLMediaElement::purgeBufferedDataIfPossible(B857595352F5C683)
[Info] MediaElementSession::addBehaviorRestriction(B857595352F5C683) adding RequireUserGestureForFullscreen
[Info] MediaElementSession::addBehaviorRestriction(B857595352F5C683) adding RequirePageConsentToLoadMedia
[Info] MediaElementSession::addBehaviorRestriction(B857595352F5C683) adding RequireUserGestureToAutoplayToExternalDevice
[Info] MediaElementSession::addBehaviorRestriction(B857595352F5C683) adding RequireUserGestureToControlControlsManager
[Info] MediaElementSession::addBehaviorRestriction(B857595352F5C683) adding RequirePlaybackToControlControlsManager
[Info] MediaElementSession::addBehaviorRestriction(B857595352F5C683) adding InvisibleAutoplayNotPermitted
[Log] MediaElementSession::clientWillBeginAutoplaying(B857595352F5C683) state = Idle
[Log] MediaElementSession::setState(B857595352F5C683) Autoplaying
[Log] HTMLMediaElement::setBufferingPolicy(B857595352F5C683) LimitReadAhead
[Log] HTMLMediaElement::setBufferingPolicy(B857595352F5C683) PurgeResources
[Log] HTMLMediaElement::purgeBufferedDataIfPossible(A104E8A5A064FCE3)
[Info] MediaElementSession::addBehaviorRestriction(A104E8A5A064FCE3) adding RequireUserGestureForFullscreen
[Info] MediaElementSession::addBehaviorRestriction(A104E8A5A064FCE3) adding RequirePageConsentToLoadMedia
[Info] MediaElementSession::addBehaviorRestriction(A104E8A5A064FCE3) adding RequireUserGestureToAutoplayToExternalDevice
[Info] MediaElementSession::addBehaviorRestriction(A104E8A5A064FCE3) adding RequireUserGestureToControlControlsManager
[Info] MediaElementSession::addBehaviorRestriction(A104E8A5A064FCE3) adding RequirePlaybackToControlControlsManager
[Info] MediaElementSession::addBehaviorRestriction(A104E8A5A064FCE3) adding InvisibleAutoplayNotPermitted
[Log] MediaElementSession::clientWillBeginAutoplaying(A104E8A5A064FCE3) state = Idle
[Log] MediaElementSession::setState(A104E8A5A064FCE3) Autoplaying
[Log] HTMLMediaElement::setBufferingPolicy(A104E8A5A064FCE3) LimitReadAhead
[Log] HTMLMediaElement::setBufferingPolicy(A104E8A5A064FCE3) PurgeResources
[Log] HTMLMediaElement::purgeBufferedDataIfPossible(9384525FC773D7B9)
[Info] MediaElementSession::addBehaviorRestriction(9384525FC773D7B9) adding RequireUserGestureForFullscreen
[Info] MediaElementSession::addBehaviorRestriction(9384525FC773D7B9) adding RequirePageConsentToLoadMedia
[Info] MediaElementSession::addBehaviorRestriction(9384525FC773D7B9) adding RequireUserGestureToAutoplayToExternalDevice
[Info] MediaElementSession::addBehaviorRestriction(9384525FC773D7B9) adding RequireUserGestureToControlControlsManager
[Info] MediaElementSession::addBehaviorRestriction(9384525FC773D7B9) adding RequirePlaybackToControlControlsManager
[Info] MediaElementSession::addBehaviorRestriction(9384525FC773D7B9) adding InvisibleAutoplayNotPermitted
[Log] MediaElementSession::clientWillBeginAutoplaying(9384525FC773D7B9) state = Idle
[Log] MediaElementSession::setState(9384525FC773D7B9) Autoplaying
[Log] HTMLMediaElement::setBufferingPolicy(9384525FC773D7B9) LimitReadAhead
[Log] HTMLMediaElement::setBufferingPolicy(9384525FC773D7B9) PurgeResources
[Log] HTMLMediaElement::purgeBufferedDataIfPossible(36D704526BC2343B)
[Info] MediaElementSession::addBehaviorRestriction(36D704526BC2343B) adding RequireUserGestureForFullscreen
[Info] MediaElementSession::addBehaviorRestriction(36D704526BC2343B) adding RequirePageConsentToLoadMedia
[Info] MediaElementSession::addBehaviorRestriction(36D704526BC2343B) adding RequireUserGestureToAutoplayToExternalDevice
[Info] MediaElementSession::addBehaviorRestriction(36D704526BC2343B) adding RequireUserGestureToControlControlsManager
[Info] MediaElementSession::addBehaviorRestriction(36D704526BC2343B) adding RequirePlaybackToControlControlsManager
[Info] MediaElementSession::addBehaviorRestriction(36D704526BC2343B) adding InvisibleAutoplayNotPermitted
[Log] MediaElementSession::clientWillBeginAutoplaying(36D704526BC2343B) state = Idle
[Log] MediaElementSession::setState(36D704526BC2343B) Autoplaying
[Log] HTMLMediaElement::setBufferingPolicy(36D704526BC2343B) LimitReadAhead
[Log] HTMLMediaElement::setBufferingPolicy(36D704526BC2343B) PurgeResources
[Log] HTMLMediaElement::purgeBufferedDataIfPossible(ECF56E18B5BF108A)
[Info] MediaElementSession::addBehaviorRestriction(ECF56E18B5BF108A) adding RequireUserGestureForFullscreen
[Info] MediaElementSession::addBehaviorRestriction(ECF56E18B5BF108A) adding RequirePageConsentToLoadMedia
[Info] MediaElementSession::addBehaviorRestriction(ECF56E18B5BF108A) adding RequireUserGestureToAutoplayToExternalDevice
[Info] MediaElementSession::addBehaviorRestriction(ECF56E18B5BF108A) adding RequireUserGestureToControlControlsManager
[Info] MediaElementSession::addBehaviorRestriction(ECF56E18B5BF108A) adding RequirePlaybackToControlControlsManager
[Info] MediaElementSession::addBehaviorRestriction(ECF56E18B5BF108A) adding InvisibleAutoplayNotPermitted
[Log] MediaElementSession::clientWillBeginAutoplaying(ECF56E18B5BF108A) state = Idle
[Log] MediaElementSession::setState(ECF56E18B5BF108A) Autoplaying
[Log] HTMLMediaElement::setBufferingPolicy(ECF56E18B5BF108A) LimitReadAhead
[Log] HTMLMediaElement::setBufferingPolicy(ECF56E18B5BF108A) PurgeResources
[Log] HTMLMediaElement::purgeBufferedDataIfPossible(77129FCB65D6957B)
[Info] MediaElementSession::addBehaviorRestriction(77129FCB65D6957B) adding RequireUserGestureForFullscreen
[Info] MediaElementSession::addBehaviorRestriction(77129FCB65D6957B) adding RequirePageConsentToLoadMedia
[Info] MediaElementSession::addBehaviorRestriction(77129FCB65D6957B) adding RequireUserGestureToAutoplayToExternalDevice
[Info] MediaElementSession::addBehaviorRestriction(77129FCB65D6957B) adding RequireUserGestureToControlControlsManager
[Info] MediaElementSession::addBehaviorRestriction(77129FCB65D6957B) adding RequirePlaybackToControlControlsManager
[Info] MediaElementSession::addBehaviorRestriction(77129FCB65D6957B) adding InvisibleAutoplayNotPermitted
[Log] MediaElementSession::clientWillBeginAutoplaying(77129FCB65D6957B) state = Idle
[Log] MediaElementSession::setState(77129FCB65D6957B) Autoplaying
[Log] HTMLMediaElement::setBufferingPolicy(77129FCB65D6957B) LimitReadAhead
[Log] HTMLMediaElement::setBufferingPolicy(77129FCB65D6957B) PurgeResources
[Log] HTMLMediaElement::purgeBufferedDataIfPossible(A251C3A81A9BAB2D)
[Info] MediaElementSession::addBehaviorRestriction(A251C3A81A9BAB2D) adding RequireUserGestureForFullscreen
[Info] MediaElementSession::addBehaviorRestriction(A251C3A81A9BAB2D) adding RequirePageConsentToLoadMedia
[Info] MediaElementSession::addBehaviorRestriction(A251C3A81A9BAB2D) adding RequireUserGestureToAutoplayToExternalDevice
[Info] MediaElementSession::addBehaviorRestriction(A251C3A81A9BAB2D) adding RequireUserGestureToControlControlsManager
[Info] MediaElementSession::addBehaviorRestriction(A251C3A81A9BAB2D) adding RequirePlaybackToControlControlsManager
[Info] MediaElementSession::addBehaviorRestriction(A251C3A81A9BAB2D) adding InvisibleAutoplayNotPermitted
[Log] MediaElementSession::clientWillBeginAutoplaying(A251C3A81A9BAB2D) state = Idle
[Log] MediaElementSession::setState(A251C3A81A9BAB2D) Autoplaying
[Log] HTMLMediaElement::setBufferingPolicy(A251C3A81A9BAB2D) LimitReadAhead
[Log] HTMLMediaElement::setBufferingPolicy(A251C3A81A9BAB2D) PurgeResources
[Log] HTMLMediaElement::purgeBufferedDataIfPossible(2589533DCA2F8330)
[Info] MediaElementSession::addBehaviorRestriction(2589533DCA2F8330) adding RequireUserGestureForFullscreen
[Info] MediaElementSession::addBehaviorRestriction(2589533DCA2F8330) adding RequirePageConsentToLoadMedia
[Info] MediaElementSession::addBehaviorRestriction(2589533DCA2F8330) adding RequireUserGestureToAutoplayToExternalDevice
[Info] MediaElementSession::addBehaviorRestriction(2589533DCA2F8330) adding RequireUserGestureToControlControlsManager
[Info] MediaElementSession::addBehaviorRestriction(2589533DCA2F8330) adding RequirePlaybackToControlControlsManager
[Info] MediaElementSession::addBehaviorRestriction(2589533DCA2F8330) adding InvisibleAutoplayNotPermitted
[Log] MediaElementSession::clientWillBeginAutoplaying(2589533DCA2F8330) state = Idle
[Log] MediaElementSession::setState(2589533DCA2F8330) Autoplaying
[Log] HTMLMediaElement::setBufferingPolicy(2589533DCA2F8330) LimitReadAhead
[Log] HTMLMediaElement::setBufferingPolicy(2589533DCA2F8330) PurgeResources
[Log] HTMLMediaElement::purgeBufferedDataIfPossible(DA2C8AEDBF92E942)
[Info] MediaElementSession::addBehaviorRestriction(DA2C8AEDBF92E942) adding RequireUserGestureForFullscreen
[Info] MediaElementSession::addBehaviorRestriction(DA2C8AEDBF92E942) adding RequirePageConsentToLoadMedia
[Info] MediaElementSession::addBehaviorRestriction(DA2C8AEDBF92E942) adding RequireUserGestureToAutoplayToExternalDevice
[Info] MediaElementSession::addBehaviorRestriction(DA2C8AEDBF92E942) adding RequireUserGestureToControlControlsManager
[Info] MediaElementSession::addBehaviorRestriction(DA2C8AEDBF92E942) adding RequirePlaybackToControlControlsManager
[Info] MediaElementSession::addBehaviorRestriction(DA2C8AEDBF92E942) adding InvisibleAutoplayNotPermitted
[Log] MediaElementSession::clientWillBeginAutoplaying(DA2C8AEDBF92E942) state = Idle
[Log] MediaElementSession::setState(DA2C8AEDBF92E942) Autoplaying
[Log] HTMLMediaElement::setBufferingPolicy(DA2C8AEDBF92E942) LimitReadAhead
[Log] HTMLMediaElement::setBufferingPolicy(DA2C8AEDBF92E942) PurgeResources
[Log] HTMLMediaElement::purgeBufferedDataIfPossible(CA464B878F3AF2F1)
[Info] MediaElementSession::addBehaviorRestriction(CA464B878F3AF2F1) adding RequireUserGestureForFullscreen
[Info] MediaElementSession::addBehaviorRestriction(CA464B878F3AF2F1) adding RequirePageConsentToLoadMedia
[Info] MediaElementSession::addBehaviorRestriction(CA464B878F3AF2F1) adding RequireUserGestureToAutoplayToExternalDevice
[Info] MediaElementSession::addBehaviorRestriction(CA464B878F3AF2F1) adding RequireUserGestureToControlControlsManager
[Info] MediaElementSession::addBehaviorRestriction(CA464B878F3AF2F1) adding RequirePlaybackToControlControlsManager
[Info] MediaElementSession::addBehaviorRestriction(CA464B878F3AF2F1) adding InvisibleAutoplayNotPermitted
[Log] MediaElementSession::clientWillBeginAutoplaying(CA464B878F3AF2F1) state = Idle
[Log] MediaElementSession::setState(CA464B878F3AF2F1) Autoplaying
[Log] HTMLMediaElement::setBufferingPolicy(CA464B878F3AF2F1) LimitReadAhead
[Log] HTMLMediaElement::setBufferingPolicy(CA464B878F3AF2F1) PurgeResources
[Log] MediaSessionManageriOS::updateSessionState(0) types: AudioCapture(0), AudioTrack(0), Video(0), Audio(0), VideoAudio(0), WebAudio(1)
[Log] MediaSessionManageriOS::updateSessionState(0) setting category = AmbientSound, mode = Default, policy = Default, previous category = AmbientSound
[Log] MediaSessionManageriOS::applicationWillEnterForeground(0) suspendedUnderLock: false
[Log] PlatformMediaSession::endInterruption(D606C893FF258843) flags = 1, stateToRestore = Playing, interruption count = 1
[Log] AudioSession::tryToSetActive(0) is active = false, previousIsActive = false
[Log] MediaSessionManageriOS::maybeActivateAudioSession(0) successfully activated AudioSession
[Log] MediaSessionManageriOS::applicationDidBecomeActive(0) }
Nothing shows up in the console when trying to play the cached build that freezes at 90% launch.
This build was with Data Caching unchecked and my custom code (as in first post) in the index.html of my template. I will try to host without Itch and see if this behavior changes.
I’ve uploaded my project’s build to Github: Online PC Builder
It runs perfectly on Windows and Android, but my iPad will not load this version past 90% at all. It works with Itch, but not this. I have no idea why this is happening…
I wasn’t able to see anything in Console. Perhaps this is because my only Mac device is pretty old - I have a Mac Mini coming in a few days because I really need this project to work on iOS.