xcode project infrastructure

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.


  1. XCODE PROJECT INFRASTRUCTURE The lecture that will make you cry!

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

  3. PROJECTS / 
 WORKSPACES

  4. WORKSPACES / PROJECTS Workspace Project1. xcodeproj App Target Test Target Project2. xcodeproj Framework Target Documentation Target

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

  6. TARGETS

  7. TARGETS

  8. TARGETS Targets define how an individual product is built Products can be executables, frameworks, test suites, etc. Targets can provide specific build settings

  9. SCHEMES

  10. SCHEMES

  11. 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

  12. BUILD SETTINGS

  13. BUILD SETTINGS

  14. 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.

  15. CODE SIGNING

  16. SIGNING Signed App Code Signing App hash Signature App Certificate Private Key Provisioning Profile Public Key

  17. VERIFICATION App hash = Valid App Decrypted Decrypt Signature hash Public Key

  18. CODE SIGNING Ensures identity of developer of an application Ensures integrity of application content (has not been manipulated after submission to App Store)

  19. 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!

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

  21. CERTIFICATE

  22. ENTITLEMENTS.PLIST

  23. ENTITLEMENTS.PLIST / CAPABILITIES

  24. 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

  25. 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

  26. INFO.PLIST

  27. INFO.PLIST Defines target specific settings that aren’t related to build process: Product version, Product name, Initial Storyboard File, etc.

  28. ADDITIONAL RESOURCES

  29. 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

Recommend


More recommend