Mastering the Project File

1,209 views

Published on

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.

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
1,209
On SlideShare
0
From Embeds
0
Number of Embeds
49
Actions
Shares
0
Downloads
12
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Mastering the Project File

  1. 1. Mastering theProject FileMichele TitoloSr. Mobile Engineer / Prolific Interactive@micheletitoloSaturday, 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_ratingsSaturday, April 20, 13
  7. 7. Falling back to patching base and 3-way merge...Auto-merging MyApppp.xcodeproj/project.pbxprojCONFLICT (content): Merge conflict in MyApp.xcodeproj/project.pbxprojFailed to merge in the changes.Patch failed at 0037 launch screen images updateSaturday, April 20, 13
  8. 8. It’s not that specialSaturday, April 20, 13
  9. 9. Saturday, April 20, 13
  10. 10. .xcodeprojSaturday, April 20, 13
  11. 11. It’s a folderSaturday, April 20, 13
  12. 12. Saturday, April 20, 13
  13. 13. Saturday, April 20, 13
  14. 14. project.xcworkspaceSaturday, April 20, 13
  15. 15. another “special” folderSaturday, April 20, 13
  16. 16. Saturday, April 20, 13
  17. 17. contents.xcworkspacedataSaturday, April 20, 13
  18. 18. references .xcodeprojSaturday, April 20, 13
  19. 19. xcuserdataSaturday, April 20, 13
  20. 20. Not just in .xcodeprojSaturday, April 20, 13
  21. 21. project.pbxprojSaturday, April 20, 13
  22. 22. it’s a plistSaturday, April 20, 13
  23. 23. a very special plistSaturday, April 20, 13
  24. 24. the heart of your projectSaturday, April 20, 13
  25. 25. let’s look insideSaturday, 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 downSaturday, 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 UUIDSaturday, 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 = C01FCF4E08A954540054247BSaturday, April 20, 13
  40. 40. PBXAggregateTargetPBXBuildRulePBXContainerItemProxyPBXCopyFilesBuildPhasePBXFileReferencePBXFrameworksBuildPhasePBXGroupPBXHeadersBuildPhasePBXLegacyTargetPBXNativeTargetPBXProjectPBXReferenceProxyPBXRezBuildPhasePBXShellScriptBuildPhasePBXSourcesBuildPhasePBXTargetDependencyPBXVariantGroupXCBuildConfigurationXCConfigurationListXCVersionGroupSaturday, April 20, 13
  41. 41. Saturday, April 20, 13
  42. 42. Saturday, April 20, 13
  43. 43. Saturday, April 20, 13
  44. 44. XCBuildConfigurationSaturday, April 20, 13
  45. 45. Debug and ReleaseSaturday, April 20, 13
  46. 46. Saturday, April 20, 13
  47. 47. Compiler flagsSaturday, 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 TargetSaturday, April 20, 13
  50. 50. PBXNativeTargetSaturday, April 20, 13
  51. 51. buildConfigurationListSaturday, April 20, 13
  52. 52. buildPhasesSaturday, April 20, 13
  53. 53. buildPhasesSaturday, April 20, 13
  54. 54. PBXResourcesBuildPhase==Copy Bundle ResourcesSaturday, April 20, 13
  55. 55. PBXSourcesBuildPhase==Compile SourcesSaturday, April 20, 13
  56. 56. PBXFrameworksBuildPhase==Link Binary With LibrariesSaturday, April 20, 13
  57. 57. PBXShellScriptBuildPhase==Run ScriptSaturday, April 20, 13
  58. 58. The Big PictureSaturday, April 20, 13
  59. 59. Saturday, April 20, 13
  60. 60. It’s just a plistSaturday, April 20, 13
  61. 61. How does this make ourlives suck less?Saturday, April 20, 13
  62. 62. project.pbxproj -textSaturday, April 20, 13
  63. 63. Make it readableSaturday, April 20, 13
  64. 64. Make it JSONSaturday, April 20, 13
  65. 65. Xcode don’t careSaturday, April 20, 13
  66. 66. The EndMichele Titolo@micheletitoloSaturday, April 20, 13

×