mastering the project file (altconf)

Post on 27-Aug-2014

897 Views

Category:

Software

0 Downloads

Preview:

Click to see full reader

DESCRIPTION

 

TRANSCRIPT

Mastering theProject 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.pbxprojCONFLICT (content): Merge conflict in ! MyApp.xcodeproj/project.pbxprojFailed to merge in the changes.Patch failed at 0037 Launch screen images updateThe 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 = {...};};

0123

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

PBXAggregateTargetPBXBuildRulePBXContainerItemProxyPBXCopyFilesBuildPhasePBXFileReferencePBXFrameworksBuildPhasePBXGroupPBXHeadersBuildPhasePBXLegacyTargetPBXNativeTarget

PBXProjectPBXReferenceProxyPBXResourcesBuildPhasePBXShellScriptBuildPhasePBXSourcesBuildPhasePBXTargetDependencyPBXVariantGroupXCBuildConfigurationXCConfigurationListXCVersionGroup

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

top related