inkling/Subliminal — pull request #259 by wearhere (2014-08-29 02:22:45+00:00)
Title: Add support for Xcode 6 and iOS 8.

THIS IS A WORK IN PROGRESS.

It currently gets Subliminal running on Xcode 6, using iOS 8 Simulators. There is still a bunch of work to be done. Xcode 6 bugs are tracked [here](https://github.com/inkling/Subliminal/wiki/Known-Issues:--Xcode-6) and things to do are tracked below. Anyone is welcome to contribute to this effort.

## Getting Started

To run tests against iOS 8 from the command line, you will need to select the Xcode 6 toolchain. To permanently switch to the Xcode 6 toolchain (until you switch back):

```sh
sudo xcode-select --switch path/to/Xcode6.app/Contents/Developer/
```

To temporarily switch (until you close the current shell):

```sh
export DEVELOPER_DIR=path/to/Xcode6.app/Contents/Developer/
```

## Making Changes

File an issue to track what you're doing. Link this issue from its description, and add a to-do item below.

Make changes on a branch of this branch, then submit a PR to this branch.

Execute some code only in iOS 8 like this:

```objc
if (kCFCoreFoundationVersionNumber > kCFCoreFoundationVersionNumber_iOS_7_1) { ... }
```

Don't break compatibility with Xcode 5.1--we still need it to test iOS 5.1 and 6.1. This means that if you need to use `kCFCoreFoundationVersionNumber_iOS_7_1`, for instance, put this at the top of the file under the `#import` statements:

```objc
// So that Subliminal may continue to be built using Xcode 5/the iOS 7.1 SDK.
#ifndef kCFCoreFoundationVersionNumber_iOS_7_1
#define kCFCoreFoundationVersionNumber_iOS_7_1 847.24
#endif
```

## To-do:

- [ ] Fix [test failures](https://github.com/inkling/Subliminal/wiki/Xcode-6-Test-Failures).
- [ ] Verify that Subliminal works using iOS 7.1 (blocked by http://openradar.appspot.com/17969605)
- [ ] Check that [pre-authorization](https://github.com/inkling/Subliminal/wiki/Continuous-Integration#faq) still works or isn't necessary
- [ ] in Mavericks
- [ ] in Yosemite

Please make an issue for something if it requires discussion--only put comments on this issue if they concern the entire effort.