Mastering the Project File (AltConf)
Upcoming SlideShare
Loading in...5
×
 

Mastering the Project File (AltConf)

on

  • 931 views

 

Statistics

Views

Total Views
931
Views on SlideShare
909
Embed Views
22

Actions

Likes
2
Downloads
6
Comments
0

2 Embeds 22

https://twitter.com 15
http://www.slideee.com 7

Accessibility

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

Mastering the Project File (AltConf) Mastering the Project File (AltConf) Presentation Transcript

  • Mastering the Project File @micheletitolo Thursday, June 5, 14
  • Thursday, June 5, 14
  • Thursday, June 5, 14
  • Thursday, June 5, 14
  • Thursday, June 5, 14
  • <<<<<<< HEAD ! ! ! ! A487DC9215FE5DCD0037E8A3 /* AppDelegate.h */, ! ! ! ! A487DC9315FE5DCD0037E8A3 /* AppDelegate.m */, ! ! ! ! D9CA01C11720AD7D00CBD2B2 /* View Controllers */, ======= ! ! ! ! D9CA01B71720AC3000CBD2B2 /* Base */, ! ! ! ! D9CA01BB1720AC3C00CBD2B2 /* Controllers */, >>>>>>> new_ratings Thursday, June 5, 14
  • Falling back to patching base and 3-way merge... Auto-merging MyApp.xcodeproj/project.pbxproj CONFLICT (content): Merge conflict in ! MyApp.xcodeproj/project.pbxproj Failed to merge in the changes. Patch failed at 0037 Launch screen images update The copy of the patch that failed is found in: ! /tmp/git/.git/rebase-apply/patch Thursday, June 5, 14
  • It’s not that special Thursday, June 5, 14
  • Thursday, June 5, 14
  • .xcodeproj Thursday, June 5, 14
  • It’s a folder Thursday, June 5, 14
  • Thursday, June 5, 14
  • Two kinds of files Thursday, June 5, 14
  • Plist and XML Thursday, June 5, 14
  • All the settings Thursday, June 5, 14
  • Schemes, too Thursday, June 5, 14
  • Thursday, June 5, 14
  • project.xcworkspace Thursday, June 5, 14
  • another “special” folder Thursday, June 5, 14
  • Thursday, June 5, 14
  • contents.xcworkspacedata Thursday, June 5, 14
  • references .xcodeproj Thursday, June 5, 14
  • <?xml version="1.0" encoding="UTF-8"?> <Workspace version = "1.0"> <FileRef location = "self:MyApp.xcodeproj"> </FileRef> </Workspace> Thursday, June 5, 14
  • Not just in .xcodeproj Thursday, June 5, 14
  • project.pbxproj Thursday, June 5, 14
  • it’s a plist Thursday, June 5, 14
  • a very special plist Thursday, June 5, 14
  • the heart of your project Thursday, June 5, 14
  • let’s look inside Thursday, June 5, 14
  • // !$*UTF8*$! { ! archiveVersion = 1; ! classes = { ! }; ! objectVersion = 46; ! objects = { /* Begin PBXBuildFile section */ ! ! 8A9D5590A3E24AC297598750 /* libPods.a in Frameworks */ = {isa = PBXBuildFile; fileRef... ! ! D94D3E72170B80FB00EA401C /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; f... ! ! D94D3E74170B80FB00EA401C /* Foundation.framework in Frameworks */ = {isa = PBXBuildFi... ! ! D94D3E76170B80FB00EA401C /* CoreGraphics.framework in Frameworks */ = {isa = PBXBuild... ! ! D94D3E7C170B80FB00EA401C /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; ... ! ! D94D3E7E170B80FB00EA401C /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = D94... ! ! D94D3E82170B80FB00EA401C /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRe... ! ! D94D3E84170B80FB00EA401C /* Default.png in Resources */ = {isa = PBXBuildFile; fileRe... ! ! D94D3E86170B80FB00EA401C /* Default@2x.png in Resources */ = {isa = PBXBuildFile; fil... ! ! D94D3E88170B80FB00EA401C /* Default-568h@2x.png in Resources */ = {isa = PBXBuildFile... Thursday, June 5, 14
  • Thursday, June 5, 14
  • Let’s break it down Thursday, June 5, 14
  • ‘objects’ and ‘root_object’ Thursday, June 5, 14
  • ‘objects’ Thursday, June 5, 14
  • objects = { D94D3E72170B80FB00EA401C = {...}; D94D3E74170B80FB00EA401C = {...}; D94D3E76170B80FB00EA401C = {...}; 532ABB3011D5647300D29D20 = {...}; 532ABB3111D5647300D29D20 = {...}; 532ABB3211D5647300D29D20 = {...}; 532ABB3311D5647300D29D20 = {...}; }; Thursday, June 5, 14
  • Every object has a UID Thursday, June 5, 14
  • objects = { 532ABB3011D5647300D29D20 = {...}; 532ABB3111D5647300D29D20 = {...}; 532ABB3211D5647300D29D20 = {...}; 532ABB3311D5647300D29D20 = {...}; }; 0 1 2 3 Thursday, June 5, 14
  • ‘root_object’ Thursday, June 5, 14
  • 04A4CCDA164D5E0400FB5950 /* Project object */ = { ! isa = PBXProject; ! attributes = { ! ! CLASSPREFIX = MRT; ! ! LastUpgradeCheck = 0450; ! ! ORGANIZATIONNAME = "Michele Titolo"; ! }; ! buildConfigurationList = 04A4CCDD164D5E0400FB5950; ! compatibilityVersion = "Xcode 3.2"; ! developmentRegion = English; ! hasScannedForEncodings = 0; ! knownRegions = ( ! ! en, ! ); ! mainGroup = 04A4CCD8164D5E0400FB5950; ! productRefGroup = 04A4CCE4164D5E0400FB5950 /* Products */; ! projectDirPath = ""; ! projectRoot = ""; ! targets = ( ! ! 04A4CCE2164D5E0400FB5950 /* MyApp */, ! ! D9D2509C173AB9AD0046F074 /* MyApp Test */, ! ! D9E6BA6A177CDB9C00C98B08 /* MyApp KIF */, ! ); }; Thursday, June 5, 14
  • 04A4CCDA164D5E0400FB5950 /* Project object */ = { ! isa = PBXProject; ! attributes = { ! ! CLASSPREFIX = MRT; ! ! LastUpgradeCheck = 0450; ! ! ORGANIZATIONNAME = "Michele Titolo"; ! }; ! buildConfigurationList = 04A4CCDD164D5E0400FB5950; ! compatibilityVersion = "Xcode 3.2"; ! developmentRegion = English; ! hasScannedForEncodings = 0; ! knownRegions = ( ! ! en, ! ); ! mainGroup = 04A4CCD8164D5E0400FB5950; ! productRefGroup = 04A4CCE4164D5E0400FB5950 /* Products */; ! projectDirPath = ""; ! projectRoot = ""; ! targets = ( ! ! 04A4CCE2164D5E0400FB5950 /* MyApp */, ! ! D9D2509C173AB9AD0046F074 /* MyApp Test */, ! ! D9E6BA6A177CDB9C00C98B08 /* MyApp KIF */, ! ); }; isa mainGroup targets buildConfigurationList Thursday, June 5, 14
  • isa = PBXProject; Thursday, June 5, 14
  • mainGroup = A487DC7415FE5DCD0037E8A3; Thursday, June 5, 14
  • targets = ( ! 1D6058900D05DD3D006BFB54 /* MyApp */, ! D94C698916E6E808002BDD31 /* MyApp Test */, ! D9E1D32A16E6FCC100C0524D /* MyApp Pro */, ); Thursday, June 5, 14
  • projectReferences = ( ! { ! ! ProductGroup = D94C698116E6E7DE002BDD31 /* Products */; ! ! ProjectRef = D94C698016E6E7DE002BDD31 /* KIF.xcodeproj */; ! }, ); Thursday, June 5, 14
  • buildConfigurationList = C01FCF4E08A954540054247B Thursday, June 5, 14
  • Classes Thursday, June 5, 14
  • PBXAggregateTarget PBXBuildRule PBXContainerItemProxy PBXCopyFilesBuildPhase PBXFileReference PBXFrameworksBuildPhase PBXGroup PBXHeadersBuildPhase PBXLegacyTarget PBXNativeTarget PBXProject PBXReferenceProxy PBXResourcesBuildPhase PBXShellScriptBuildPhase PBXSourcesBuildPhase PBXTargetDependency PBXVariantGroup XCBuildConfiguration XCConfigurationList XCVersionGroup Thursday, June 5, 14
  • Thursday, June 5, 14
  • Thursday, June 5, 14
  • XCBuildConfiguration Thursday, June 5, 14
  • Thursday, June 5, 14
  • Debug and Release Thursday, June 5, 14
  • Compiler flags Thursday, June 5, 14
  • 04A4CD07164D5E0400FB5950 /* Debug */ = { ! isa = XCBuildConfiguration; ! baseConfigurationReference = 4B98CBDFD81F4259923E97CE; ! buildSettings = { ! ! CODE_SIGN_IDENTITY = "iPhone Developer"; ! ! "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; ! ! GCC_PRECOMPILE_PREFIX_HEADER = YES; ! ! GCC_PREFIX_HEADER = "MyApp/MyApp-Prefix.pch"; ! ! GCC_VERSION = com.apple.compilers.llvm.clang.1_0; ! ! INFOPLIST_FILE = "MyApp/MyApp-Info.plist"; ! ! PRODUCT_NAME = "$(TARGET_NAME)"; ! ! PROVISIONING_PROFILE = ""; ! ! "PROVISIONING_PROFILE[sdk=iphoneos*]" = ""; ! ! WRAPPER_EXTENSION = app; ! }; ! name = Debug; }; PROVISIONING_PROFILE PRODUCT_NAME INFOPLIST_FILE GCC_VERSION CODE_SIGN_IDENTITY name Thursday, June 5, 14
  • Swift Thursday, June 5, 14
  • SWIFT_OBJC_BRIDGING_HEADER = "MyApp-Bridging-Header.h"; SWIFT_OPTIMIZATION_LEVEL = "-Onone"; Thursday, June 5, 14
  • Project or Target Thursday, June 5, 14
  • PBXNativeTarget Thursday, June 5, 14
  • 04A4CCE2164D5E0400FB5950 /* MyApp */ = { ! isa = PBXNativeTarget; ! buildConfigurationList = 04A4CD06164D5E0400FB5950 /* Build configuration list for PBXNativeTarget "MyApp" */; ! buildPhases = ( ! ! 29390B06A9D3479F9566AA27 /* Check Pods Manifest.lock */, ! ! 04A4CCDF164D5E0400FB5950 /* Sources */, ! ! 04A4CCE0164D5E0400FB5950 /* Frameworks */, ! ! 04A4CCE1164D5E0400FB5950 /* Resources */, ! ! F3BAB5EA93C24AE18A4EE832 /* Copy Pods Resources */, ! ); ! buildRules = (); ! dependencies = (); ! name = MyApp; ! productName = MyApp; ! productReference = 04A4CCE3164D5E0400FB5950 /* MyApp.app */; ! productType = "com.apple.product-type.application"; }; buildPhases name buildConfigurationList productName Thursday, June 5, 14
  • Build phase types Thursday, June 5, 14
  • PBXResourcesBuildPhase == Copy Bundle Resources Thursday, June 5, 14
  • PBXSourcesBuildPhase == Compile Sources Thursday, June 5, 14
  • PBXFrameworksBuildPhase == Link Binary With Libraries Thursday, June 5, 14
  • PBXShellScriptBuildPhase == Run Script Thursday, June 5, 14
  • F3BAB5EA93C24AE18A4EE832 /* Copy Pods Resources */ = { ! isa = PBXShellScriptBuildPhase; ! buildActionMask = 2147483647; ! files = (); ! inputPaths = (); ! name = "Copy Pods Resources"; ! outputPaths = (); ! runOnlyForDeploymentPostprocessing = 0; ! shellPath = /bin/sh; ! shellScript = ""${SRCROOT}/Pods/Pods-resources.sh"n"; }; shellScript Thursday, June 5, 14
  • xcuserdata Thursday, June 5, 14
  • User-specific info Thursday, June 5, 14
  • .xcuserdatad Thursday, June 5, 14
  • Schemes & breakpoints Thursday, June 5, 14
  • xcschememanagement.plist Thursday, June 5, 14
  • MyApp.xcscheme Thursday, June 5, 14
  • <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http:// www.apple.com/DTDs/PropertyList-1.0.dtd"> <plist version="1.0"> <dict> ! <key>SchemeUserState</key> ! <dict> ! ! <key>MyApp.xcscheme_^#shared#^_</key> ! ! <dict> ! ! ! <key>orderHint</key> ! ! ! <integer>1</integer> ! ! </dict> ! </dict> ! <key>SuppressBuildableAutocreation</key> ! <dict> ! ! <key>1D6058900D05DD3D006BFB54</key> ! ! <dict> ! ! ! <key>primary</key> ! ! ! <true/> ! ! </dict> ! </dict> </dict> </plist> MyApp.xcscheme_^#shared#^_ Thursday, June 5, 14
  • Thursday, June 5, 14
  • .gitignore’d Thursday, June 5, 14
  • xcshareddata Thursday, June 5, 14
  • .xcschemes Thursday, June 5, 14
  • xml Thursday, June 5, 14
  • Don’t .gitignore Thursday, June 5, 14
  • The Big Picture Thursday, June 5, 14
  • Thursday, June 5, 14
  • .pbxproj: It’s just a plist Thursday, June 5, 14
  • .xcworkspace: It’s XML Thursday, June 5, 14
  • xcshareddata: Has plists Thursday, June 5, 14
  • xcuserdata: Has plists Thursday, June 5, 14
  • Thursday, June 5, 14
  • git Thursday, June 5, 14
  • Merge Conflicts Thursday, June 5, 14
  • project.pbxproj Thursday, June 5, 14
  • 1. Check the comments Thursday, June 5, 14
  • 2. Pick 1 UID Thursday, June 5, 14
  • 3. Rebase early and often Thursday, June 5, 14