XCODE PROJECT INFRASTRUCTURE The lecture that will make you cry! - - PowerPoint PPT Presentation

xcode project infrastructure
SMART_READER_LITE
LIVE PREVIEW

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 1
slide-2
SLIDE 2

XCODE PROJECT INFRASTRUCTURE

The lecture that will make you cry!

slide-3
SLIDE 3

AGENDA

Projects / Workspaces Targets Schemes Build Settings Code Signing Entitlements.plist Info.plist

slide-4
SLIDE 4

PROJECTS /
 WORKSPACES

slide-5
SLIDE 5

WORKSPACES / PROJECTS

Workspace Project1. xcodeproj Project2. xcodeproj

App Target Test Target Framework Target Documentation Target

slide-6
SLIDE 6

PROJECTS

Collection of source code and resource files, structured into groups Collection of targets Provides project wide build settings

slide-7
SLIDE 7

TARGETS

slide-8
SLIDE 8

TARGETS

slide-9
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
SLIDE 10

SCHEMES

slide-11
SLIDE 11

SCHEMES

slide-12
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
SLIDE 13

BUILD SETTINGS

slide-14
SLIDE 14

BUILD SETTINGS

slide-15
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
SLIDE 16

CODE SIGNING

slide-17
SLIDE 17

SIGNING

App Provisioning Profile Certificate Private Key

Code Signing

hash Signature App

Signed App

Public Key

slide-18
SLIDE 18

VERIFICATION

App hash Signature Public Key Decrypted hash

Decrypt

= Valid App

slide-19
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
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
SLIDE 21

CODE SIGNING

Certificate: Public Key + Identifying information Provisioning Profile: Combination of entitlements, certificate and list of viable devices

slide-22
SLIDE 22

CERTIFICATE

slide-23
SLIDE 23

ENTITLEMENTS.PLIST

slide-24
SLIDE 24

ENTITLEMENTS.PLIST / CAPABILITIES

slide-25
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
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
SLIDE 27

INFO.PLIST

slide-28
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
SLIDE 29

ADDITIONAL RESOURCES

slide-30
SLIDE 30

ADDITIONAL RESOURCES

Apple Documentation: Xcode Concepts Apple Documentation: About Information Property List Files Apple Documentation: Adding Capabilities Apple Documentation: Code Signing Guide Objc.io: Inside Code Signing