mapbox / mapbox-scenekit

Other
231 stars 51 forks source link

Support iOS 9 #25

Closed natalia-osa closed 6 years ago

natalia-osa commented 6 years ago

While I understand the readme tells the app needs to be at least iOS 10 (and some classes need to be 11 to use certain features), I'm not sure why is it. By looking at the library I couldn't find anything, what is not iOS 9 compatible (SceneKit & MapboxMobileEvents is iOS 8+, CoreLocation, CoreGraphics, Foundation, UIKit even below). Wouldn't you mind to decrease this requirement?

We'd like to deploy the app with a new feature basing on this library, but it will force us to lose a big percentage of customers. I'm not sure if such an additional feature will be enough to drop all of the users, and due to Xcode behaviour, I can't make this library optional only for users who are iOS 10 or higher (question here: https://stackoverflow.com/questions/51773908/import-optional-framework).

The change is super easy and doesn't break anything in your project, but allows people who use your project to support all of their clients. This library is fully capable of supporting iOS 8 and up.

avi-c commented 6 years ago

Hi Natalia, were you able to successfully build the SceneKit pieces for iOS 8/9? I don't have the older Xcode versions and iOS SDK required to try it myself now.

I know the MapboxMobileEvents SDK that is an external dependency of the SceneKit SDK works all the way back to iOS 8.

If you are able to build the portions you need for iOS 8 support in your app, you should feel free to do so and include it in your app. I don't want to merge this PR unless I have the toolset to build and verify it myself. I'll try and dig it up soon to check.

Do you mind commenting to say if you got things working for you?

avi-c commented 6 years ago

Also, can you email me at avi.cieplinski@mapbox.com to discuss your app outside of github?

avi-c commented 6 years ago

@natalia-osa - Can you separate out the changes for the SDK version from the other changes you made to add extensions to the TerrainNode for route drawing? I think the SDK changes look fine, but I want to evaluate the route drawing separately.

natalia-osa commented 6 years ago

@avi-c Yes, I was able to build everything for iOS 9 and 8. It's in the pull request, doesn't it work for you? That's weird, even Carthage builds it correctly.

You can't include a (non-system) library with support iOS 10+ to project iOS9+. It requires to bump the whole project. That's why a dependency framework needs to have the correct iOS minimum version, otherwise, the client project cannot use it at all.

I am not sure what do you want me to separate? The pull request (https://github.com/mapbox/mapbox-scenekit/pull/26) contains project configuration changes to support older iOS versions. It doesn't contain either change connected to TerrainNode or route drawing..?