XCODE PROJECT INFRASTRUCTURE The lecture that will make you cry! - - PowerPoint PPT Presentation
XCODE PROJECT INFRASTRUCTURE The lecture that will make you cry! - - PowerPoint PPT Presentation
XCODE PROJECT INFRASTRUCTURE The lecture that will make you cry! AGENDA Projects / Workspaces Targets Schemes Build Settings Code Signing Entitlements.plist Info.plist PROJECTS / WORKSPACES WORKSPACES / PROJECTS Workspace Project1.
SLIDE 1
SLIDE 2
XCODE PROJECT INFRASTRUCTURE
The lecture that will make you cry!
SLIDE 3
AGENDA
Projects / Workspaces Targets Schemes Build Settings Code Signing Entitlements.plist Info.plist
SLIDE 4
PROJECTS / WORKSPACES
SLIDE 5
WORKSPACES / PROJECTS
Workspace Project1. xcodeproj Project2. xcodeproj
App Target Test Target Framework Target Documentation Target
SLIDE 6
PROJECTS
Collection of source code and resource files, structured into groups Collection of targets Provides project wide build settings
SLIDE 7
TARGETS
SLIDE 8
TARGETS
SLIDE 9
TARGETS
Targets define how an individual product is built Products can be executables, frameworks, test suites, etc. Targets can provide specific build settings
SLIDE 10
SCHEMES
SLIDE 11
SCHEMES
SLIDE 12
SCHEMES
“An Xcode scheme defines a collection of targets to build, a configuration to use when building, and a collection of tests to execute.”
- Xcode Concepts Documentation
SLIDE 13
BUILD SETTINGS
SLIDE 14
BUILD SETTINGS
SLIDE 15
BUILD SETTINGS
Project provides build settings that apply to all targets Target can override build settings Build settings parameterize how product is built, e.g. which SDK version is used, which provisioning profile, etc.
SLIDE 16
CODE SIGNING
SLIDE 17
SIGNING
App Provisioning Profile Certificate Private Key
Code Signing
hash Signature App
Signed App
Public Key
SLIDE 18
VERIFICATION
App hash Signature Public Key Decrypted hash
Decrypt
= Valid App
SLIDE 19
CODE SIGNING
Ensures identity of developer of an application Ensures integrity of application content (has not been manipulated after submission to App Store)
SLIDE 20
CODE SIGNING
Developer signs with developer profile when submitting to App Store Apple resigns application with their own certificate before distributing to users Apple’s certificate doesn’t expire!
SLIDE 21
CODE SIGNING
Certificate: Public Key + Identifying information Provisioning Profile: Combination of entitlements, certificate and list of viable devices
SLIDE 22
CERTIFICATE
SLIDE 23
ENTITLEMENTS.PLIST
SLIDE 24
ENTITLEMENTS.PLIST / CAPABILITIES
SLIDE 25
ENTITLEMENTS / CAPABILITIES
Defines which privileges an app has (e.g. access to iCloud) App’s privileges need to match the ones in corresponding provisioning profile
SLIDE 26
CODE SIGNING SUMMARY
Entitlements define what app is allowed to do Entitlements need to be specified in Provisioning Profile Provisioning Profiles specifies with which Certificates an app can be signed Code signing ensures that app developer can be identified and that app content isn’t modified after signing
SLIDE 27
INFO.PLIST
SLIDE 28
INFO.PLIST
Defines target specific settings that aren’t related to build process: Product version, Product name, Initial Storyboard File, etc.
SLIDE 29
ADDITIONAL RESOURCES
SLIDE 30