Slide 1

Slide 1 text

Project organization for a modern Xcode app Curtis Herbert @parrots

Slide 2

Slide 2 text

Simple beginnings

Slide 3

Slide 3 text

Xcode 3 Build configurations, targets

Slide 4

Slide 4 text

Xcode 4+ New: schemes and workspaces

Slide 5

Slide 5 text

Target Apple: “Instructions for building one product”! Translation: A product/app/ executable. • Which source files? • Build steps (link libraries, compile, copy resources, etc) • Build settings like provisioning profile, preprocessor macros • Executable information like name, ID, icons, etc

Slide 6

Slide 6 text

No content

Slide 7

Slide 7 text

Build configuration Method to customize a target’s build settings #ifdef DEBUG For example: • Provisioning profile • App icon • App name • Bundle ID • Preprocessor macros

Slide 8

Slide 8 text

No content

Slide 9

Slide 9 text

No content

Slide 10

Slide 10 text

When do you want another target? Two distinct apps with (some) shared code.! ! Test harness, for example. Isolate test code from normal builds.

Slide 11

Slide 11 text

Scheme Apple: “Instructions for building targets and performing actions”! Translation: what to do when you build, run, archive, etc • Which target(s) to build? • Which build configuration? • Diagnostic flags like zombie objects, command-line arguments

Slide 12

Slide 12 text

No content

Slide 13

Slide 13 text

One target The power of build configurations

Slide 14

Slide 14 text

Demo

Slide 15

Slide 15 text

Further reading WWDC 2011 - 313: Mastering schemes in Xcode 4 ! “Unique icons for debug, beta, and App Store builds in Xcode 5” - http://blog.consumedbycode.com