Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add support for Xcode 6 and iOS 8. #259

Open
wants to merge 11 commits into
base: master
Choose a base branch
from
Open

Add support for Xcode 6 and iOS 8. #259

wants to merge 11 commits into from

Conversation

wearhere
Copy link
Contributor

This is a work-in-progress. USE AT YOUR OWN RISK.

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 and things to do are tracked below. Anyone is welcome to contribute to this effort, even just to file bugs.

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):

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

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

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:

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:

// 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:

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

Jeff Wear added 11 commits August 28, 2014 16:42
With a different directory layout for simulator configurations
inside `~/Library/Developer/CoreSimulator/Devices` rather
than `~/Library/Application Support/iPhone Simulator`.
…cified.

`simulator-set`'s documentation describes the version argument
as optional.
In Xcode 6, the Simulator's device type and version are not stored separately
in the Simulator's preferences, but as a unified configuration (a "device")
identified by a UDID. To change the device type and version, we must thus determine
which UDID to set, which we do by examining the mapping provided by
`instruments -s devices`.

Similarly, the Simulator's content and settings are no longer stored
under version-specific directories, but under device-specific directories.
However, it's not safe to delete these directories directly--some devices
will not recreate them on launch. Fortunately, Apple has added a command-line
utility for managing devices.
This also corrects the name of an existing test case in the visibility
test documentation.
@wearhere wearhere added this to the v1.3.0 milestone Aug 29, 2014
@wearhere wearhere mentioned this pull request Aug 29, 2014
7 tasks
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant