Cesium on iOS 9 and OS X El Capitan (Safari 9)

I wanted to give everyone a heads up regarding running Cesium on iOS 9 and OS X El Capitan (Safari 9), both of which are being released later this month.

Unfortunately, Apple has introduced a bug that breaks Cesium on all iOS 9 devices and under Safari 9 on the desktop. While they are aware of the bug, it will not be fixed in time for release. We have already introduced a workaround in Cesium master (see #3024), but all existing versions of Cesium will remain broken on Apple browsers until they address the issue. This means that if you want your Cesium-based application to run on iOS 9 (all browsers) or Safari 9 on OS X, you will need to update to the latest version of Cesium when it is released on October 1st.

Once Apple fixes the issue, old versions of Cesium should work again, but I’m sure most people would rather not wait.



Kudos on developing the workaround.

Any chance you could release a special 1.13.1 (1.13 plus the workaround), to enable Cesium on iOS till October 1st?

We will most likely not perform an official out-of-band release. I would recommend anyone who needs it simply use the master branch until 1.14 is out. If you haven’t built Cesium before, it’s pretty easy and instructions are in the Contributor’s Guide

I built off Master but many tests are failing in Safari.
A lot of the fail messages start with this line:
AfterAll TypeError: undefined is not an object (evaluating 'context.destroyForSpecs') in ...

and others have this message:
RuntimeError: The browser supports WebGL, but initialization failed.

Does anyone else have this issue?

- V

The unit tests have never passed in Safari because of the many bugs in both its JavaScript and WebGL implementations (It doesn’t pass the official WebGL Conformance Tests either). Cesium itself works fine in most cases, but Safari is the slowest of the 4 major browsers when running it. The exact errors you are seeing in this case are because Safari can’t handle creating and destroying dozens of WebGL contexts (which is what happens in the unit tests).

I think I can safely speak for all Cesium developers and users when I say we would all love better Safari support, but in this case it’s Safari that needs to improve to better support Cesium; there’s not much the Cesium team can do to work around the poor WebGL implementation Safari.

What makes things worse is that since 3rd party browsers are not available on iOS, running “Chrome” or “Firefox” on i-devices just means you are running Safari with a different GUI.

ou can also download iOS 9 on your Mac through iTunes, and then upgrade to the new operating system with your iOS device connected to your Mac.we can solve these error with the help of Apple customer service. They are the best for solving your queries and give better solutions.Then I shorted this problem by the help of Apple customer service https://babasupport.org/pc/apple-customer-service/183