| Summary: | Change project settings for Xcode 9? | ||
|---|---|---|---|
| Product: | SDL | Reporter: | Mark Callow <libsdl.org> |
| Component: | build | Assignee: | Sam Lantinga <slouken> |
| Status: | RESOLVED FIXED | QA Contact: | Sam Lantinga <slouken> |
| Severity: | normal | ||
| Priority: | P2 | CC: | amaranth72, sylvain.becker |
| Version: | HG 2.0 | ||
| Hardware: | x86 | ||
| OS: | macOS 10.13 | ||
|
Description
Mark Callow
2017-09-21 02:44:25 UTC
We shouldn't update iOS deployment target, as SDL currently supports deploying to older systems when building with Xcode 7 and 8. FYI, as a test I accepted the changes for macOS and built successfully with 0 warnings. NOTE: before committing such an Xcode modified project it is a good idea to edit the project and remove the TargetAttributes section that will contain your DEVELOPMENT_TEAM id. I've seen also the drop of support for ios 7. But, it would be great to keep them for a little while since it's only a few ifdef. Even better would be to fix the compilation for IOS 6. (I think there is some small issue with audio framework). At least to put ifdef and let people update the framework to link with the correct framework. I still provide the libraries with XCODE_ATTRIBUTE_IPHONEOS_DEPLOYMENT_TARGET "6.0" because some old device (at least iPod touch 4) are stuck to IOS 6. Keep in mind the iOS SDK used to build is separate from the minimum runtime version (deployment target). SDL supports building for iOS using Xcode 5 (iOS 7 SDK) through Xcode 9 (iOS 11 SDK), or Xcode 6 through 9 with my reverted commit. It "supports" deploying down to iOS 6 at runtime when built with Xcode 8 and earlier I believe, although it hasn't been tested in some time. It's also worth mentioning that, in order to put your app on the iOS App Store, you are required by Apple to build with a modern version of Xcode and a modern SDK (but the deployment target - i.e. minimum runtime version - can still be set much lower). I believe Xcode 8 with the iOS 10 SDK is the current minimum Xcode version you can use when building for the App Store. (In reply to Alex Szpakowski from comment #4) > It "supports" deploying down to iOS 6 at runtime when built > with Xcode 8 and earlier I believe, although it hasn't been tested in some > time. I think it's been something like 3 years since I've had an iOS 6 device I could test with. Ok. Thanks for clarifying ! I am fine with using latest Xcode tools and SDKs, as long as I can deploy to iOS 6.0. My current version of Xcode is 8.0. And I now discover it does not support anymore to deploy on iOS 6.0 (neither 7.1). A workaround is to bring back the "DeviceSupport" files from an older xcode. In short, those files are in: Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/DeviceSupport The, one needs to edit with xcode and add more entries to "Root/DefaultProperties/DEPLOYMENT_TARGET_SUGGESTED_VALUES" of the file: Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/SDKSettings.plist (source: https://stackoverflow.com/questions/44493831/could-not-locate-device-support-files ) With this, it compiles and deploy successfully on ios 6.0, building with xcode 8. (actually my ipod has ios 6.1, and I deploy for 6.0). I have only seen those issue on my ipod 4 / ios 6.1 : - by default, I open joysticks (Calling SDL_JoystickOpen upon SDL_JOYDEVICEADDED). it gets flooded by events SDL_JOYAXISMOTION from the joystick accelerometer. the ipod4 cpu cannot deplete the event queue fast enough and it get stuck in the usual "while(SDL_PollEvent() == 1){...}" loop. - audio is not working anymore on my app, whereas it works on the simulator (running ios 10). (tried with wav file, no error reported, and using Mix_PlayChannel of SDL_mixer) ok, great, last few commits are fixing both the audio and the accelerometer issue ! Thanks Sam! Changed accepted, thanks! https://hg.libsdl.org/SDL/rev/a9cd402fef64 I tested them on iOS and Mac OS X with Xcode 8.3.3 and Xcode 9.0 |