Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
Xcode Project Configuration
Search
Thomas Keuleers
March 31, 2015
Programming
93
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Xcode Project Configuration
Slides for my @CocoaHeadsBE talk from 31/03/2015
Thomas Keuleers
March 31, 2015
Other Decks in Programming
See All in Programming
Railsバージョンを4倍にした話
optim
0
360
全ての永続トークンを、生まれる前に消し去りたい!
sylph01
2
890
Vue Fes Japan の “作る側”に関わってみて
naokihaba
0
160
残高管理から台帳サービスへの進化
artoy
1
200
Domain-Driven Transformation
hschwentner
2
2.3k
The Rails Doctrine Decade
koic
2
590
TechTown - Creating Composable Callables in Contemporary C++
rollbear
0
130
APNsからLive Activityを開始する話
yumnumm
0
170
AI時代のコードレビューは人に向けるな、仕組みに向けろ
texmeijin
5
3.7k
IBM Bob Dojo #1 仕様駆動開発入門
oniak3ibm
PRO
0
390
Herb in Rails 8.2: Your ERB views, now HTML-aware @ Rails World 2026, Austin, Texas
marcoroth
0
220
自サークルのIdPからログアウトできるようになるまで
taiseiue
1
140
Featured
See All Featured
Measuring & Analyzing Core Web Vitals
bluesmoon
9
1k
The State of eCommerce SEO: How to Win in Today's Products SERPs - #SEOweek
aleyda
2
12k
Visualization
eitanlees
153
17k
Designing for humans not robots
tammielis
254
26k
Unsuck your backbone
ammeep
672
58k
XXLCSS - How to scale CSS and keep your sanity
sugarenia
250
1.3M
A better future with KSS
kneath
240
18k
Building an army of robots
kneath
307
47k
Utilizing Notion as your number one productivity tool
mfonobong
4
620
From Legacy to Launchpad: Building Startup-Ready Communities
dugsong
0
360
Designing Experiences People Love
moore
143
24k
Balancing Empowerment & Direction
lara
6
1.3k
Transcript
Project Configuration 1
2 @thomaskeuleers iOS Developer at iCapps
Table of contents • Targets • .xcconfig • Configurations •
Demo • .plist 3
Why bother configuration? • Saves you time and prevents stupid
mistakes • Keep it simple, only chose for a more advanced configuration when you really need to. • The bigger the project, the more important it gets 4
–https://developer.apple.com “specifies a product to build and contains the instructions
for building the product from a set of files in a project or workspace ” Xcode Target 5
Xcode Target 6
Xcode Target • Outputs 1 product • Separates physically different
build products Example: Tests, extension, … 7
Real world case: Step 1 8 Make a new app
that has: • Application Target • Tests • Extension • Watchkit app
Xcode Target 9
Xcode Target 10
Setup completed 11
But then the app scales 12
… some parameters should be added 13
Additions Support testing environments Each environment has a separate build
product: • Icon • Bundle identifier • Server url • … 14
We can handle this 15
Xcode Target 16
Xcode Target 17
Xcode Target - Bundle ID 18
Xcode Target - App Icon 19
Xcode Target - Server URL #if TARGET_TEST let serverURL =
"https://test.companywebsite.be/api" #elseif TARGET_ACCEPT let serverURL = "https://accept.companywebsite.be/api" #else let serverURL = "https://companywebsite.be/api" #endif Step 1 Step 2 20
21
it’s also pretty messy… 22
Xcode Target duplication Benefit(s) Downsides Room for error Not scalable
Quick setup Quick setup but made up time will catch up 23
File add 24
Are multiple targets bad? 25
When to use targets 26
Sharing code 27 Session 223 WWDC 2014
Cocoapods 28
Back to our real world case 29
Extensions are announced 30
Extension can only be embedded in 1 target… 31
Result 10 Targets for 2 build products (app + watch)
with some deviations 32
Time for a change 33
Introducing .xcconfig 34
.xcconfig • Plain text key-value file • Declaring build parameters
in one spot • Shared configuration for your target(s) 35
Adding one 36
Disclaimer This is just one way of using .xcconfig Demo
37 Transforming a project to use .xcconfig
.xcconfig completed 38
A little extra 39
AdHoc Distribution 40
Xcode Configurations 41
Xcode Configuration 42 • 2 standard ones • differ mostly
in debug info and build optimisation • sufficient for product development needs • Most developers never need to change these Debug & Release
Xcode Configurations 43
So what do we change? Adhoc signing vs. Ordinary signing
44
Demo 45
.plist configuration 46
.plist configuration • Write mechanism yourself • Ok, but I
like the Apple way 47
Recap 48
Q & A 49
Thanks! 50