Mastering the Project File (AltConf)

1,285 views
1,219 views

Published on

Published in: Software, Technology, Art & Photos
0 Comments
2 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
1,285
On SlideShare
0
From Embeds
0
Number of Embeds
4
Actions
Shares
0
Downloads
14
Comments
0
Likes
2
Embeds 0
No embeds

No notes for slide

Mastering the Project File (AltConf)

  1. 1. Mastering the Project File @micheletitolo Thursday, June 5, 14
  2. 2. Thursday, June 5, 14
  3. 3. Thursday, June 5, 14
  4. 4. Thursday, June 5, 14
  5. 5. Thursday, June 5, 14
  6. 6. <<<<<<< HEAD ! ! ! ! A487DC9215FE5DCD0037E8A3 /* AppDelegate.h */, ! ! ! ! A487DC9315FE5DCD0037E8A3 /* AppDelegate.m */, ! ! ! ! D9CA01C11720AD7D00CBD2B2 /* View Controllers */, ======= ! ! ! ! D9CA01B71720AC3000CBD2B2 /* Base */, ! ! ! ! D9CA01BB1720AC3C00CBD2B2 /* Controllers */, >>>>>>> new_ratings Thursday, June 5, 14
  7. 7. 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
  8. 8. It’s not that special Thursday, June 5, 14
  9. 9. Thursday, June 5, 14
  10. 10. .xcodeproj Thursday, June 5, 14
  11. 11. It’s a folder Thursday, June 5, 14
  12. 12. Thursday, June 5, 14
  13. 13. Two kinds of files Thursday, June 5, 14
  14. 14. Plist and XML Thursday, June 5, 14
  15. 15. All the settings Thursday, June 5, 14
  16. 16. Schemes, too Thursday, June 5, 14
  17. 17. Thursday, June 5, 14
  18. 18. project.xcworkspace Thursday, June 5, 14
  19. 19. another “special” folder Thursday, June 5, 14
  20. 20. Thursday, June 5, 14
  21. 21. contents.xcworkspacedata Thursday, June 5, 14
  22. 22. references .xcodeproj Thursday, June 5, 14
  23. 23. <?xml version="1.0" encoding="UTF-8"?> <Workspace version = "1.0"> <FileRef location = "self:MyApp.xcodeproj"> </FileRef> </Workspace> Thursday, June 5, 14
  24. 24. Not just in .xcodeproj Thursday, June 5, 14
  25. 25. project.pbxproj Thursday, June 5, 14
  26. 26. it’s a plist Thursday, June 5, 14
  27. 27. a very special plist Thursday, June 5, 14
  28. 28. the heart of your project Thursday, June 5, 14
  29. 29. let’s look inside Thursday, June 5, 14
  30. 30. // !$*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
  31. 31. Thursday, June 5, 14
  32. 32. Let’s break it down Thursday, June 5, 14
  33. 33. ‘objects’ and ‘root_object’ Thursday, June 5, 14
  34. 34. ‘objects’ Thursday, June 5, 14
  35. 35. objects = { D94D3E72170B80FB00EA401C = {...}; D94D3E74170B80FB00EA401C = {...}; D94D3E76170B80FB00EA401C = {...}; 532ABB3011D5647300D29D20 = {...}; 532ABB3111D5647300D29D20 = {...}; 532ABB3211D5647300D29D20 = {...}; 532ABB3311D5647300D29D20 = {...}; }; Thursday, June 5, 14
  36. 36. Every object has a UID Thursday, June 5, 14
  37. 37. objects = { 532ABB3011D5647300D29D20 = {...}; 532ABB3111D5647300D29D20 = {...}; 532ABB3211D5647300D29D20 = {...}; 532ABB3311D5647300D29D20 = {...}; }; 0 1 2 3 Thursday, June 5, 14
  38. 38. ‘root_object’ Thursday, June 5, 14
  39. 39. 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
  40. 40. 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
  41. 41. isa = PBXProject; Thursday, June 5, 14
  42. 42. mainGroup = A487DC7415FE5DCD0037E8A3; Thursday, June 5, 14
  43. 43. targets = ( ! 1D6058900D05DD3D006BFB54 /* MyApp */, ! D94C698916E6E808002BDD31 /* MyApp Test */, ! D9E1D32A16E6FCC100C0524D /* MyApp Pro */, ); Thursday, June 5, 14
  44. 44. projectReferences = ( ! { ! ! ProductGroup = D94C698116E6E7DE002BDD31 /* Products */; ! ! ProjectRef = D94C698016E6E7DE002BDD31 /* KIF.xcodeproj */; ! }, ); Thursday, June 5, 14
  45. 45. buildConfigurationList = C01FCF4E08A954540054247B Thursday, June 5, 14
  46. 46. Classes Thursday, June 5, 14
  47. 47. PBXAggregateTarget PBXBuildRule PBXContainerItemProxy PBXCopyFilesBuildPhase PBXFileReference PBXFrameworksBuildPhase PBXGroup PBXHeadersBuildPhase PBXLegacyTarget PBXNativeTarget PBXProject PBXReferenceProxy PBXResourcesBuildPhase PBXShellScriptBuildPhase PBXSourcesBuildPhase PBXTargetDependency PBXVariantGroup XCBuildConfiguration XCConfigurationList XCVersionGroup Thursday, June 5, 14
  48. 48. Thursday, June 5, 14
  49. 49. Thursday, June 5, 14
  50. 50. XCBuildConfiguration Thursday, June 5, 14
  51. 51. Thursday, June 5, 14
  52. 52. Debug and Release Thursday, June 5, 14
  53. 53. Compiler flags Thursday, June 5, 14
  54. 54. 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
  55. 55. Swift Thursday, June 5, 14
  56. 56. SWIFT_OBJC_BRIDGING_HEADER = "MyApp-Bridging-Header.h"; SWIFT_OPTIMIZATION_LEVEL = "-Onone"; Thursday, June 5, 14
  57. 57. Project or Target Thursday, June 5, 14
  58. 58. PBXNativeTarget Thursday, June 5, 14
  59. 59. 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
  60. 60. Build phase types Thursday, June 5, 14
  61. 61. PBXResourcesBuildPhase == Copy Bundle Resources Thursday, June 5, 14
  62. 62. PBXSourcesBuildPhase == Compile Sources Thursday, June 5, 14
  63. 63. PBXFrameworksBuildPhase == Link Binary With Libraries Thursday, June 5, 14
  64. 64. PBXShellScriptBuildPhase == Run Script Thursday, June 5, 14
  65. 65. 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
  66. 66. xcuserdata Thursday, June 5, 14
  67. 67. User-specific info Thursday, June 5, 14
  68. 68. .xcuserdatad Thursday, June 5, 14
  69. 69. Schemes & breakpoints Thursday, June 5, 14
  70. 70. xcschememanagement.plist Thursday, June 5, 14
  71. 71. MyApp.xcscheme Thursday, June 5, 14
  72. 72. <?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
  73. 73. Thursday, June 5, 14
  74. 74. .gitignore’d Thursday, June 5, 14
  75. 75. xcshareddata Thursday, June 5, 14
  76. 76. .xcschemes Thursday, June 5, 14
  77. 77. xml Thursday, June 5, 14
  78. 78. Don’t .gitignore Thursday, June 5, 14
  79. 79. The Big Picture Thursday, June 5, 14
  80. 80. Thursday, June 5, 14
  81. 81. .pbxproj: It’s just a plist Thursday, June 5, 14
  82. 82. .xcworkspace: It’s XML Thursday, June 5, 14
  83. 83. xcshareddata: Has plists Thursday, June 5, 14
  84. 84. xcuserdata: Has plists Thursday, June 5, 14
  85. 85. Thursday, June 5, 14
  86. 86. git Thursday, June 5, 14
  87. 87. Merge Conflicts Thursday, June 5, 14
  88. 88. project.pbxproj Thursday, June 5, 14
  89. 89. 1. Check the comments Thursday, June 5, 14
  90. 90. 2. Pick 1 UID Thursday, June 5, 14
  91. 91. 3. Rebase early and often Thursday, June 5, 14

×