9. TARGETS
Targets define how an individual product is
built
Products can be executables, frameworks,
test suites, etc.
Targets can provide specific build settings
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
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.
19. CODE SIGNING
Ensures identity of developer of an
application
Ensures integrity of application content (has
not been manipulated after submission to
App Store)
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!
21. CODE SIGNING
Certificate: Public Key + Identifying
information
Provisioning Profile: Combination of
entitlements, certificate and list of viable
devices
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
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
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