Mastering the Project File
Upcoming SlideShare
Loading in...5
×
 

Like this? Share it with your network

Share

Mastering the Project File

on

  • 881 views

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

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.

Statistics

Views

Total Views
881
Views on SlideShare
803
Embed Views
78

Actions

Likes
0
Downloads
10
Comments
0

1 Embed 78

https://twitter.com 78

Accessibility

Categories

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 Presentation Transcript

  • 1. Mastering theProject FileMichele TitoloSr. Mobile Engineer / Prolific Interactive@micheletitoloSaturday, April 20, 13
  • 2. Hello!Saturday, April 20, 13
  • 3. Saturday, April 20, 13
  • 4. Saturday, April 20, 13
  • 5. Saturday, April 20, 13
  • 6. <<<<<<< HEAD! ! ! ! A487DC9215FE5DCD0037E8A3 /* AppDelegate.h */,! ! ! ! A487DC9315FE5DCD0037E8A3 /* AppDelegate.m */,! ! ! ! D9CA01C11720AD7D00CBD2B2 /* View Controllers */,=======! ! ! ! D9CA01B71720AC3000CBD2B2 /* Base */,! ! ! ! D9CA01BB1720AC3C00CBD2B2 /* Controllers */,>>>>>>> star_circle_ratingsSaturday, April 20, 13
  • 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. It’s not that specialSaturday, April 20, 13
  • 9. Saturday, April 20, 13
  • 10. .xcodeprojSaturday, April 20, 13
  • 11. It’s a folderSaturday, April 20, 13
  • 12. Saturday, April 20, 13
  • 13. Saturday, April 20, 13
  • 14. project.xcworkspaceSaturday, April 20, 13
  • 15. another “special” folderSaturday, April 20, 13
  • 16. Saturday, April 20, 13
  • 17. contents.xcworkspacedataSaturday, April 20, 13
  • 18. references .xcodeprojSaturday, April 20, 13
  • 19. xcuserdataSaturday, April 20, 13
  • 20. Not just in .xcodeprojSaturday, April 20, 13
  • 21. project.pbxprojSaturday, April 20, 13
  • 22. it’s a plistSaturday, April 20, 13
  • 23. a very special plistSaturday, April 20, 13
  • 24. the heart of your projectSaturday, April 20, 13
  • 25. let’s look insideSaturday, April 20, 13
  • 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. Saturday, April 20, 13
  • 28. Let’s break it downSaturday, April 20, 13
  • 29. ‘objects’ and ‘root_object’Saturday, April 20, 13
  • 30. ‘objects’Saturday, April 20, 13
  • 31. objects = {D94D3E72170B80FB00EA401C = {...};D94D3E74170B80FB00EA401C = {...};D94D3E76170B80FB00EA401C = {...};532ABB3011D5647300D29D20 = {...};532ABB3111D5647300D29D20 = {...};532ABB3211D5647300D29D20 = {...};532ABB3311D5647300D29D20 = {...};};Saturday, April 20, 13
  • 32. Every object has a UUIDSaturday, April 20, 13
  • 33. objects = {D94D3E72170B80FB00EA401C = {...};D94D3E74170B80FB00EA401C = {...};D94D3E76170B80FB00EA401C = {...};532ABB3011D5647300D29D20 = {...};532ABB3111D5647300D29D20 = {...};532ABB3211D5647300D29D20 = {...};532ABB3311D5647300D29D20 = {...};};Saturday, April 20, 13
  • 34. ‘root_object’Saturday, April 20, 13
  • 35. isa = PBXProject;Saturday, April 20, 13
  • 36. mainGroup = A487DC7415FE5DCD0037E8A3;Saturday, April 20, 13
  • 37. targets = (! 1D6058900D05DD3D006BFB54 /* MyApp */,! D94C698916E6E808002BDD31 /* MyApp Test */,! D9E1D32A16E6FCC100C0524D /* MyApp Pro */,);Saturday, April 20, 13
  • 38. projectReferences = (! {! ! ProductGroup = D94C698116E6E7DE002BDD31 /* Products */;! ! ProjectRef = D94C698016E6E7DE002BDD31 /* KIF.xcodeproj */;! },);Saturday, April 20, 13
  • 39. buildConfigurationList = C01FCF4E08A954540054247BSaturday, April 20, 13
  • 40. PBXAggregateTargetPBXBuildRulePBXContainerItemProxyPBXCopyFilesBuildPhasePBXFileReferencePBXFrameworksBuildPhasePBXGroupPBXHeadersBuildPhasePBXLegacyTargetPBXNativeTargetPBXProjectPBXReferenceProxyPBXRezBuildPhasePBXShellScriptBuildPhasePBXSourcesBuildPhasePBXTargetDependencyPBXVariantGroupXCBuildConfigurationXCConfigurationListXCVersionGroupSaturday, April 20, 13
  • 41. Saturday, April 20, 13
  • 42. Saturday, April 20, 13
  • 43. Saturday, April 20, 13
  • 44. XCBuildConfigurationSaturday, April 20, 13
  • 45. Debug and ReleaseSaturday, April 20, 13
  • 46. Saturday, April 20, 13
  • 47. Compiler flagsSaturday, April 20, 13
  • 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. Project or TargetSaturday, April 20, 13
  • 50. PBXNativeTargetSaturday, April 20, 13
  • 51. buildConfigurationListSaturday, April 20, 13
  • 52. buildPhasesSaturday, April 20, 13
  • 53. buildPhasesSaturday, April 20, 13
  • 54. PBXResourcesBuildPhase==Copy Bundle ResourcesSaturday, April 20, 13
  • 55. PBXSourcesBuildPhase==Compile SourcesSaturday, April 20, 13
  • 56. PBXFrameworksBuildPhase==Link Binary With LibrariesSaturday, April 20, 13
  • 57. PBXShellScriptBuildPhase==Run ScriptSaturday, April 20, 13
  • 58. The Big PictureSaturday, April 20, 13
  • 59. Saturday, April 20, 13
  • 60. It’s just a plistSaturday, April 20, 13
  • 61. How does this make ourlives suck less?Saturday, April 20, 13
  • 62. project.pbxproj -textSaturday, April 20, 13
  • 63. Make it readableSaturday, April 20, 13
  • 64. Make it JSONSaturday, April 20, 13
  • 65. Xcode don’t careSaturday, April 20, 13
  • 66. The EndMichele Titolo@micheletitoloSaturday, April 20, 13