Successfully reported this slideshow.

Mastering the Project File

0

Share

Loading in …3
×
1 of 66
1 of 66

Mastering the Project File

0

Share

Download to read offline

Do you frequently hear yourself say "Don't touch the project file!", "Who overrode my changes?" or "Where did my file go?" If so, this talk is for you. We constantly put the project file on a pedestal of things-you-do-not-mess-with, but is this much caution really warranted? We'll cover tips, tricks, and solutions to promote harmony between you and your project file.

Do you frequently hear yourself say "Don't touch the project file!", "Who overrode my changes?" or "Where did my file go?" If so, this talk is for you. We constantly put the project file on a pedestal of things-you-do-not-mess-with, but is this much caution really warranted? We'll cover tips, tricks, and solutions to promote harmony between you and your project file.

More Related Content

Related Books

Free with a 14 day trial from Scribd

See all

Mastering the Project File

  1. 1. Mastering the Project File Michele Titolo Sr. Mobile Engineer / Prolific Interactive @micheletitolo Saturday, April 20, 13
  2. 2. Hello! Saturday, April 20, 13
  3. 3. Saturday, April 20, 13
  4. 4. Saturday, April 20, 13
  5. 5. Saturday, April 20, 13
  6. 6. <<<<<<< HEAD ! ! ! ! A487DC9215FE5DCD0037E8A3 /* AppDelegate.h */, ! ! ! ! A487DC9315FE5DCD0037E8A3 /* AppDelegate.m */, ! ! ! ! D9CA01C11720AD7D00CBD2B2 /* View Controllers */, ======= ! ! ! ! D9CA01B71720AC3000CBD2B2 /* Base */, ! ! ! ! D9CA01BB1720AC3C00CBD2B2 /* Controllers */, >>>>>>> star_circle_ratings Saturday, April 20, 13
  7. 7. Falling back to patching base and 3-way merge... Auto-merging MyApppp.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 Saturday, April 20, 13
  8. 8. It’s not that special Saturday, April 20, 13
  9. 9. Saturday, April 20, 13
  10. 10. .xcodeproj Saturday, April 20, 13
  11. 11. It’s a folder Saturday, April 20, 13
  12. 12. Saturday, April 20, 13
  13. 13. Saturday, April 20, 13
  14. 14. project.xcworkspace Saturday, April 20, 13
  15. 15. another “special” folder Saturday, April 20, 13
  16. 16. Saturday, April 20, 13
  17. 17. contents.xcworkspacedata Saturday, April 20, 13
  18. 18. references .xcodeproj Saturday, April 20, 13
  19. 19. xcuserdata Saturday, April 20, 13
  20. 20. Not just in .xcodeproj Saturday, April 20, 13
  21. 21. project.pbxproj Saturday, April 20, 13
  22. 22. it’s a plist Saturday, April 20, 13
  23. 23. a very special plist Saturday, April 20, 13
  24. 24. the heart of your project Saturday, April 20, 13
  25. 25. let’s look inside Saturday, April 20, 13
  26. 26. // !$*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... Saturday, April 20, 13
  27. 27. Saturday, April 20, 13
  28. 28. Let’s break it down Saturday, April 20, 13
  29. 29. ‘objects’ and ‘root_object’ Saturday, April 20, 13
  30. 30. ‘objects’ Saturday, April 20, 13
  31. 31. objects = { D94D3E72170B80FB00EA401C = {...}; D94D3E74170B80FB00EA401C = {...}; D94D3E76170B80FB00EA401C = {...}; 532ABB3011D5647300D29D20 = {...}; 532ABB3111D5647300D29D20 = {...}; 532ABB3211D5647300D29D20 = {...}; 532ABB3311D5647300D29D20 = {...}; }; Saturday, April 20, 13
  32. 32. Every object has a UUID Saturday, April 20, 13
  33. 33. objects = { D94D3E72170B80FB00EA401C = {...}; D94D3E74170B80FB00EA401C = {...}; D94D3E76170B80FB00EA401C = {...}; 532ABB3011D5647300D29D20 = {...}; 532ABB3111D5647300D29D20 = {...}; 532ABB3211D5647300D29D20 = {...}; 532ABB3311D5647300D29D20 = {...}; }; Saturday, April 20, 13
  34. 34. ‘root_object’ Saturday, April 20, 13
  35. 35. isa = PBXProject; Saturday, April 20, 13
  36. 36. mainGroup = A487DC7415FE5DCD0037E8A3; Saturday, April 20, 13
  37. 37. targets = ( ! 1D6058900D05DD3D006BFB54 /* MyApp */, ! D94C698916E6E808002BDD31 /* MyApp Test */, ! D9E1D32A16E6FCC100C0524D /* MyApp Pro */, ); Saturday, April 20, 13
  38. 38. projectReferences = ( ! { ! ! ProductGroup = D94C698116E6E7DE002BDD31 /* Products */; ! ! ProjectRef = D94C698016E6E7DE002BDD31 /* KIF.xcodeproj */; ! }, ); Saturday, April 20, 13
  39. 39. buildConfigurationList = C01FCF4E08A954540054247B Saturday, April 20, 13
  40. 40. PBXAggregateTarget PBXBuildRule PBXContainerItemProxy PBXCopyFilesBuildPhase PBXFileReference PBXFrameworksBuildPhase PBXGroup PBXHeadersBuildPhase PBXLegacyTarget PBXNativeTarget PBXProject PBXReferenceProxy PBXRezBuildPhase PBXShellScriptBuildPhase PBXSourcesBuildPhase PBXTargetDependency PBXVariantGroup XCBuildConfiguration XCConfigurationList XCVersionGroup Saturday, April 20, 13
  41. 41. Saturday, April 20, 13
  42. 42. Saturday, April 20, 13
  43. 43. Saturday, April 20, 13
  44. 44. XCBuildConfiguration Saturday, April 20, 13
  45. 45. Debug and Release Saturday, April 20, 13
  46. 46. Saturday, April 20, 13
  47. 47. Compiler flags Saturday, April 20, 13
  48. 48. buildSettings = { ! ALWAYS_SEARCH_USER_PATHS = NO; ! "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; ! COPY_PHASE_STRIP = NO; ! DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; ! GCC_DYNAMIC_NO_PIC = NO; ! GCC_OPTIMIZATION_LEVEL = 0; ! GCC_PRECOMPILE_PREFIX_HEADER = YES; ! GCC_PREFIX_HEADER = Prefix.pch; ! GCC_WARN_ABOUT_RETURN_TYPE = YES; ! GCC_WARN_UNUSED_VALUE = NO; ! GCC_WARN_UNUSED_VARIABLE = YES; ! INFOPLIST_FILE = Info.plist; ! ONLY_ACTIVE_ARCH = NO; ! PRODUCT_NAME = MyApp; ! SDKROOT = iphoneos; }; Saturday, April 20, 13
  49. 49. Project or Target Saturday, April 20, 13
  50. 50. PBXNativeTarget Saturday, April 20, 13
  51. 51. buildConfigurationList Saturday, April 20, 13
  52. 52. buildPhases Saturday, April 20, 13
  53. 53. buildPhases Saturday, April 20, 13
  54. 54. PBXResourcesBuildPhase == Copy Bundle Resources Saturday, April 20, 13
  55. 55. PBXSourcesBuildPhase == Compile Sources Saturday, April 20, 13
  56. 56. PBXFrameworksBuildPhase == Link Binary With Libraries Saturday, April 20, 13
  57. 57. PBXShellScriptBuildPhase == Run Script Saturday, April 20, 13
  58. 58. The Big Picture Saturday, April 20, 13
  59. 59. Saturday, April 20, 13
  60. 60. It’s just a plist Saturday, April 20, 13
  61. 61. How does this make our lives suck less? Saturday, April 20, 13
  62. 62. project.pbxproj -text Saturday, April 20, 13
  63. 63. Make it readable Saturday, April 20, 13
  64. 64. Make it JSON Saturday, April 20, 13
  65. 65. Xcode don’t care Saturday, April 20, 13
  66. 66. The End Michele Titolo @micheletitolo Saturday, April 20, 13

×