vendor 0.0.4 → 0.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (65) hide show
  1. data/CHANGELOG.md +22 -0
  2. data/Gemfile.lock +9 -1
  3. data/Guardfile +12 -0
  4. data/LICENSE +2 -0
  5. data/Readme.markdown +39 -23
  6. data/TODO.md +26 -0
  7. data/VERSION +1 -0
  8. data/lib/vendor.rb +6 -0
  9. data/lib/vendor/api.rb +61 -7
  10. data/lib/vendor/cli/app.rb +4 -4
  11. data/lib/vendor/cli/console.rb +7 -0
  12. data/lib/vendor/spec.rb +98 -0
  13. data/lib/vendor/templates/Vendorfile +3 -1
  14. data/lib/vendor/templates/vendorspec +15 -10
  15. data/lib/vendor/vendor_file.rb +5 -4
  16. data/lib/vendor/vendor_file/dependency_graph.rb +135 -0
  17. data/lib/vendor/vendor_file/dsl.rb +2 -0
  18. data/lib/vendor/vendor_file/library/base.rb +178 -29
  19. data/lib/vendor/vendor_file/library/git.rb +5 -1
  20. data/lib/vendor/vendor_file/library/local.rb +11 -1
  21. data/lib/vendor/vendor_file/library/remote.rb +134 -2
  22. data/lib/vendor/vendor_file/loader.rb +13 -11
  23. data/lib/vendor/vendor_spec/builder.rb +4 -7
  24. data/lib/vendor/version.rb +172 -1
  25. data/lib/vendor/xcode/project.rb +213 -4
  26. data/lib/vendor/xcode/proxy.rb +1 -0
  27. data/lib/vendor/xcode/proxy/pbx_frameworks_build_phase.rb +6 -0
  28. data/lib/vendor/xcode/proxy/pbx_reference_proxy.rb +7 -0
  29. data/lib/vendor/xcode/proxy/pbx_resources_build_phase.rb +8 -0
  30. data/lib/vendor/xcode/proxy/pbx_shell_script_build_phase.rb +8 -0
  31. data/lib/vendor/xcode/proxy/pbx_sources_build_phase.rb +6 -0
  32. data/spec/lib/vendor/api_spec.rb +54 -0
  33. data/spec/lib/vendor/spec_spec.rb +121 -0
  34. data/spec/lib/vendor/vendor_file/dependency_graph_spec.rb +129 -0
  35. data/spec/lib/vendor/vendor_file/library/base_spec.rb +174 -14
  36. data/spec/lib/vendor/vendor_file/library/remote_spec.rb +154 -4
  37. data/spec/lib/vendor/vendor_file/loader_spec.rb +4 -2
  38. data/spec/lib/vendor/vendor_spec/builder_spec.rb +2 -2
  39. data/spec/lib/vendor/version_spec.rb +168 -0
  40. data/spec/lib/vendor/xcode/project_spec.rb +175 -4
  41. data/spec/lib/vendor_spec.rb +15 -0
  42. data/spec/spec_helper.rb +3 -2
  43. data/spec/support/api_stubs.rb +57 -0
  44. data/spec/support/resources/cache/base/{DKBenchmark-Manifest → DKBenchmark-0.1-Manifest}/data/DKBenchmark.h +0 -0
  45. data/spec/support/resources/cache/base/{DKBenchmark-Manifest → DKBenchmark-0.1-Manifest}/data/DKBenchmark.m +0 -0
  46. data/spec/support/resources/cache/base/DKBenchmark-0.1-Manifest/vendor.json +1 -0
  47. data/spec/support/resources/cache/base/{DKBenchmark-Vendorspec → DKBenchmark-0.1-Nothing}/DKBenchmark.h +0 -0
  48. data/spec/support/resources/cache/base/{DKBenchmark-Vendorspec → DKBenchmark-0.1-Nothing}/DKBenchmark.m +0 -0
  49. data/spec/support/resources/cache/base/DKBenchmark-0.1-Nothing/DKBenchmark.vendorspec +16 -0
  50. data/spec/support/resources/cache/base/DKBenchmark-0.1-Vendorspec/DKBenchmark.h +18 -0
  51. data/spec/support/resources/cache/base/DKBenchmark-0.1-Vendorspec/DKBenchmark.m +73 -0
  52. data/spec/support/resources/cache/base/DKBenchmark-0.1-Vendorspec/DKBenchmark.vendorspec +24 -0
  53. data/spec/support/resources/projects/MultipleTargets/MultipleTargets.xcodeproj/project.pbxproj +624 -0
  54. data/spec/support/resources/projects/RestKitProject/RestKitProject.xcodeproj/project.pbxproj +479 -0
  55. data/spec/support/resources/projects/UtilityApplication/UtilityApplication.xcodeproj/project.pbxproj +16 -7
  56. data/spec/support/resources/vendors/DKBenchmark/DKBenchmark.vendorspec +24 -8
  57. data/spec/support/resources/vendors/DKBenchmarkUnsafe/DKBenchmark.vendorspec +17 -8
  58. data/vendor.gemspec +4 -2
  59. metadata +93 -39
  60. data/lib/vendor/vendor_spec/dsl.rb +0 -39
  61. data/lib/vendor/vendor_spec/loader.rb +0 -23
  62. data/spec/lib/vendor/vendor_spec/dsl_spec.rb +0 -67
  63. data/spec/lib/vendor/vendor_spec/loader_spec.rb +0 -41
  64. data/spec/support/resources/cache/base/DKBenchmark-Manifest/vendor.json +0 -1
  65. data/spec/support/resources/cache/base/DKBenchmark-Vendorspec/DKBenchmark.vendorspec +0 -11
@@ -0,0 +1,15 @@
1
+ require 'spec_helper'
2
+
3
+ describe Vendor do
4
+
5
+ context "#version" do
6
+
7
+ it "should return the version of vendor" do
8
+ Vendor.version.should == File.read(File.join(Vendor.root, "..", "VERSION")).chomp
9
+ Vendor.version.should_not be_nil
10
+ Vendor.version.should_not be_empty
11
+ end
12
+
13
+ end
14
+
15
+ end
@@ -4,16 +4,17 @@ require 'rspec'
4
4
  require './lib/vendor'
5
5
  require './lib/vendor/cli'
6
6
 
7
- Dir["spec/support/**/*.rb"].each { |f| require "./#{f}" }
8
-
9
7
  RESOURCE_PATH = File.join(File.dirname(__FILE__), "support", "resources")
10
8
  PROJECT_RESOURCE_PATH = File.join(RESOURCE_PATH, "projects")
11
9
  SOURCE_RESOURCE_PATH = File.join(RESOURCE_PATH, "source")
12
10
  VENDOR_RESOURCE_PATH = File.join(RESOURCE_PATH, "vendors")
13
11
  CACHED_VENDOR_RESOURCE_PATH = File.join(RESOURCE_PATH, "cache")
12
+ PACKAGED_VENDOR_PATH = File.join(RESOURCE_PATH, "packages")
14
13
 
15
14
  TEMP_PROJECT_PATH = File.join(File.dirname(__FILE__), "..", "tmp")
16
15
 
16
+ Dir["spec/support/**/*.rb"].each { |f| require "./#{f}" }
17
+
17
18
  TempProject.cleanup
18
19
 
19
20
  Vendor::Config.directory = File.expand_path(File.join(__FILE__, "..", "..", "tmp", "config"))
@@ -1,6 +1,29 @@
1
1
  require 'fakeweb'
2
2
  require 'json'
3
3
 
4
+ VENDOR_JSON = {}
5
+
6
+ VENDOR_JSON[:DKBenchmark] = { :name => "DKBenchmark",
7
+ :description => "Easy benchmarking in Objective-C using blocks",
8
+ :release => "0.2",
9
+ :versions => [
10
+ [ "0.3.alpha1",
11
+ { :dependencies => [ ["AFNetworking","~> 0.9.2"], ["ASIHTTPRequest", nil] , ["JSONKit","0.5"] ] } ],
12
+ [ "0.2",
13
+ { :dependencies => [ ["JSONKit","0.5"] ] } ],
14
+ [ "0.1",
15
+ { :dependencies => [ ] } ]
16
+ ]
17
+ }
18
+
19
+ VENDOR_JSON[:DKBenchmarkCrazyName] = VENDOR_JSON[:DKBenchmark].merge(:name => "DKBenchmark!! With Some Crazy #Number Name!")
20
+
21
+ VENDOR_JSON[:LibWithError] = { :name => "LibWithError",
22
+ :description => "This is fine",
23
+ :release => "0.1",
24
+ :versions => [ [ "0.1", { :dependencies => [ ] } ] ]
25
+ }
26
+
4
27
  FakeWeb.register_uri :get, "http://keithpitt:password@vendorforge.org/users/keithpitt/api_key.json",
5
28
  :body => { :api_key => "secret" }.to_json
6
29
 
@@ -10,4 +33,38 @@ FakeWeb.register_uri :get, "http://keithpitt:wrong@vendorforge.org/users/keithpi
10
33
  FakeWeb.register_uri :get, "http://keithpitt:error@vendorforge.org/users/keithpitt/api_key.json",
11
34
  :status => 500
12
35
 
36
+ FakeWeb.register_uri :get, "http://vendorforge.org/vendors/DKBenchmark.json",
37
+ :body => VENDOR_JSON[:DKBenchmark].to_json
38
+
39
+ FakeWeb.register_uri :get, "http://vendorforge.org/vendors/DKBenchmark-With-Some-Crazy-Number-Name-.json",
40
+ :body => VENDOR_JSON[:DKBenchmarkCrazyName].to_json
41
+
42
+ FakeWeb.register_uri :get, "http://vendorforge.org/vendors/WithAnError.json",
43
+ :status => 500
44
+
45
+ FakeWeb.register_uri :get, "http://vendorforge.org/vendors/DoesNotExist.json",
46
+ :status => 404
47
+
48
+ FakeWeb.register_uri :get, "http://vendorforge.org/vendors/DKBenchmark/versions/0.1/download",
49
+ :body => File.read(File.join(PACKAGED_VENDOR_PATH, "DKBenchmark-0.1.vendor"))
50
+
51
+ FakeWeb.register_uri :get, "http://vendorforge.org/vendors/DKBenchmark/versions/0.2/download",
52
+ :body => File.read(File.join(PACKAGED_VENDOR_PATH, "DKBenchmark-0.1.vendor"))
53
+
54
+ FakeWeb.register_uri :get, "http://vendorforge.org/vendors/LibWithError.json",
55
+ :body => VENDOR_JSON[:LibWithError].to_json
56
+
57
+ FakeWeb.register_uri :get, "http://vendorforge.org/vendors/LibWithError/versions/0.1/download",
58
+ :status => 500
59
+
60
+ ###
61
+ # DEPENDENCY CALLS
62
+ ###
63
+
64
+ FakeWeb.register_uri :get, "http://vendorforge.org/vendors/DKRest.json",
65
+ :body => %{{"name":"DKRest","description":"Classes that make it easy to work with REST Services","release":"0.1","versions":[["0.1",{"dependencies":[["DKAPIRequest","0.1"],["DKCoreData","0.1"],["DKFile","0.1"],["DKPredicateBuilder","0.1"],["DKSupport","0.1"]]}]]}}
66
+
67
+ FakeWeb.register_uri :get, "http://vendorforge.org/vendors/DKCoreData.json",
68
+ :body => %{{"name":"DKCoreData","description":"A set of classes that make it easy to work with the Core Data framework on iOS and OSX","release":"0.1","versions":[["1.5.2",{"dependencies":[["DKFile","0.1"],["DKPredicateBuilder","0.1"],["DKSupport","0.1"]]}]]}}
69
+
13
70
  FakeWeb.allow_net_connect = false
@@ -0,0 +1 @@
1
+ {"name":"DKBenchmark","version":"0.1","authors":"keithpitt","email":"me@keithpitt.com","homepage":"http://www.keithpitt.com","description":"Easy benchmarking in Objective-C using blocks","github":"https://github.com/keithpitt/DKBenchmark","frameworks":["CoreData.framework"],"build_settings": [ [ "CLANG_WARN_OBJCPP_ARC_ABI", "NO" ] ],"files":["DKBenchmark.h","DKBenchmark.m"], "dependencies":[ ["JSONKit", "0.3"], ["ASIHTTPRequest", "~> 4.3"], ["AFINetworking", "<= 2.5.b"] ]}
@@ -0,0 +1,16 @@
1
+ Vendor::Spec.new do |s|
2
+
3
+ s.name = "DKBenchmark"
4
+ s.version = "0.1"
5
+
6
+ s.authors = "keithpitt"
7
+ s.email = "me@keithpitt.com"
8
+ s.description = "Easy benchmarking in Objective-C using blocks"
9
+
10
+ s.homepage = "http://www.keithpitt.com"
11
+ s.source = "https://github.com/keithpitt/DKBenchmark"
12
+ s.docs = "https://github.com/keithpitt/DKBenchmark/wiki"
13
+
14
+ s.files = [ "DKBenchmark.h", "DKBenchmark.m" ]
15
+
16
+ end
@@ -0,0 +1,18 @@
1
+ //
2
+ // DKBenchmark.h
3
+ // DiscoKit
4
+ //
5
+ // Created by Keith Pitt on 30/06/11.
6
+ // Copyright 2011 Mostly Disco. All rights reserved.
7
+ //
8
+
9
+ #import <Foundation/Foundation.h>
10
+
11
+ typedef void (^DKBenchmarkBlock)(void);
12
+
13
+ @interface DKBenchmark : NSObject
14
+
15
+ + (void)benchmark:(NSString *)name block:(DKBenchmarkBlock)block;
16
+ + (void)benchmark:(NSString *)name iterations:(NSInteger)iterations block:(DKBenchmarkBlock)block;
17
+
18
+ @end
@@ -0,0 +1,73 @@
1
+ //
2
+ // DKBenchmark.m
3
+ // DiscoKit
4
+ //
5
+ // Created by Keith Pitt on 30/06/11.
6
+ // Copyright 2011 Mostly Disco. All rights reserved.
7
+ //
8
+
9
+ #import "DKBenchmark.h"
10
+
11
+ @implementation DKBenchmark
12
+
13
+ + (void)benchmark:(NSString *)name block:(DKBenchmarkBlock)block {
14
+
15
+ // If you don't specify an iterations loop, lets just default
16
+ // it to 100.
17
+ [self benchmark:name iterations:100 block:block];
18
+
19
+ }
20
+
21
+ + (void)benchmark:(NSString *)name iterations:(NSInteger)iterations block:(DKBenchmarkBlock)block {
22
+
23
+ // Store the results of the iteration in this array
24
+ NSMutableArray * results = [[NSMutableArray alloc] init];
25
+
26
+ // Define variables that we're going to use in the loop.
27
+ NSDate * date;
28
+ NSTimeInterval timePassed;
29
+
30
+ for (NSInteger i = 0; i < iterations; i++) {
31
+
32
+ // Grab the current date
33
+ date = [[NSDate alloc] init];
34
+
35
+ // Run the block
36
+ block();
37
+
38
+ // Calcualte the time that has passed, and convert to a
39
+ // signed integer by * -1
40
+ timePassed = [date timeIntervalSinceNow] * -1;
41
+
42
+ // Release the date
43
+ [date release], date = nil;
44
+
45
+ // Add the result
46
+ [results addObject:[NSNumber numberWithDouble:timePassed]];
47
+
48
+ }
49
+
50
+ // Start at 0
51
+ NSDecimalNumber * average = [NSDecimalNumber decimalNumberWithDecimal:
52
+ [[NSNumber numberWithInt:0] decimalValue]];
53
+
54
+ // Add all our results together
55
+ for (NSNumber * timePassed in results) {
56
+ average = [average decimalNumberByAdding:
57
+ [NSDecimalNumber decimalNumberWithDecimal:
58
+ [timePassed decimalValue]]];
59
+ }
60
+
61
+ // Divide them by the total
62
+ average = [average decimalNumberByDividingBy:
63
+ [NSDecimalNumber decimalNumberWithDecimal:
64
+ [[NSNumber numberWithInt:iterations] decimalValue]]];
65
+
66
+ // Show the results
67
+ NSLog(@"[DKBenchmark] \"%@\" took %@ seconds on average with (%i iterations)", name, average, iterations);
68
+
69
+ [results release];
70
+
71
+ }
72
+
73
+ @end
@@ -0,0 +1,24 @@
1
+ Vendor::Spec.new do |s|
2
+
3
+ s.name = "DKBenchmark"
4
+ s.version = "0.1"
5
+
6
+ s.authors = "keithpitt"
7
+ s.email = "me@keithpitt.com"
8
+ s.description = "Easy benchmarking in Objective-C using blocks"
9
+
10
+ s.homepage = "http://www.keithpitt.com"
11
+ s.source = "https://github.com/keithpitt/DKBenchmark"
12
+ s.docs = "https://github.com/keithpitt/DKBenchmark/wiki"
13
+
14
+ s.files = [ "DKBenchmark.h", "DKBenchmark.m" ]
15
+
16
+ s.dependency "JSONKit", "0.5"
17
+ s.dependency "ASIHTTPRequest", "~> 4.2"
18
+ s.dependency "AFINetworking", "<= 2.5.a"
19
+
20
+ s.framework "Foundation.framework"
21
+
22
+ s.build_setting :other_linker_flags, "-ObjC"
23
+
24
+ end
@@ -0,0 +1,624 @@
1
+ // !$*UTF8*$!
2
+ {
3
+ archiveVersion = 1;
4
+ classes = {
5
+ };
6
+ objectVersion = 46;
7
+ objects = {
8
+
9
+ /* Begin PBXBuildFile section */
10
+ 53F42B5E14667527006B8F7C /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 53F42B5D14667527006B8F7C /* UIKit.framework */; };
11
+ 53F42B6014667527006B8F7C /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 53F42B5F14667527006B8F7C /* Foundation.framework */; };
12
+ 53F42B6214667527006B8F7C /* CoreGraphics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 53F42B6114667527006B8F7C /* CoreGraphics.framework */; };
13
+ 53F42B6814667527006B8F7C /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = 53F42B6614667527006B8F7C /* InfoPlist.strings */; };
14
+ 53F42B6A14667527006B8F7C /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 53F42B6914667527006B8F7C /* main.m */; };
15
+ 53F42B6E14667527006B8F7C /* MTAppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 53F42B6D14667527006B8F7C /* MTAppDelegate.m */; };
16
+ 53F42B7114667527006B8F7C /* MTMasterViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 53F42B7014667527006B8F7C /* MTMasterViewController.m */; };
17
+ 53F42B7414667527006B8F7C /* MTDetailViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 53F42B7314667527006B8F7C /* MTDetailViewController.m */; };
18
+ 53F42B7714667527006B8F7C /* MTMasterViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 53F42B7514667527006B8F7C /* MTMasterViewController.xib */; };
19
+ 53F42B7A14667527006B8F7C /* MTDetailViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 53F42B7814667527006B8F7C /* MTDetailViewController.xib */; };
20
+ 53F42B8214667530006B8F7C /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 53F42B6914667527006B8F7C /* main.m */; };
21
+ 53F42B8314667530006B8F7C /* MTAppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 53F42B6D14667527006B8F7C /* MTAppDelegate.m */; };
22
+ 53F42B8414667530006B8F7C /* MTMasterViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 53F42B7014667527006B8F7C /* MTMasterViewController.m */; };
23
+ 53F42B8514667530006B8F7C /* MTDetailViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 53F42B7314667527006B8F7C /* MTDetailViewController.m */; };
24
+ 53F42B8714667530006B8F7C /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 53F42B5D14667527006B8F7C /* UIKit.framework */; };
25
+ 53F42B8814667530006B8F7C /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 53F42B5F14667527006B8F7C /* Foundation.framework */; };
26
+ 53F42B8914667530006B8F7C /* CoreGraphics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 53F42B6114667527006B8F7C /* CoreGraphics.framework */; };
27
+ 53F42B8B14667530006B8F7C /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = 53F42B6614667527006B8F7C /* InfoPlist.strings */; };
28
+ 53F42B9914667532006B8F7C /* MTMasterViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 53F42B9514667532006B8F7C /* MTMasterViewController.xib */; };
29
+ 53F42B9A14667532006B8F7C /* MTDetailViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 53F42B9714667532006B8F7C /* MTDetailViewController.xib */; };
30
+ 53F42B9D14667536006B8F7C /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 53F42B6914667527006B8F7C /* main.m */; };
31
+ 53F42B9E14667536006B8F7C /* MTAppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 53F42B6D14667527006B8F7C /* MTAppDelegate.m */; };
32
+ 53F42B9F14667536006B8F7C /* MTMasterViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 53F42B7014667527006B8F7C /* MTMasterViewController.m */; };
33
+ 53F42BA014667536006B8F7C /* MTDetailViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 53F42B7314667527006B8F7C /* MTDetailViewController.m */; };
34
+ 53F42BA214667536006B8F7C /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 53F42B5D14667527006B8F7C /* UIKit.framework */; };
35
+ 53F42BA314667536006B8F7C /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 53F42B5F14667527006B8F7C /* Foundation.framework */; };
36
+ 53F42BA414667536006B8F7C /* CoreGraphics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 53F42B6114667527006B8F7C /* CoreGraphics.framework */; };
37
+ 53F42BA614667536006B8F7C /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = 53F42B6614667527006B8F7C /* InfoPlist.strings */; };
38
+ 53F42BA714667536006B8F7C /* MTMasterViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 53F42B7514667527006B8F7C /* MTMasterViewController.xib */; };
39
+ 53F42BA814667536006B8F7C /* MTDetailViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 53F42B7814667527006B8F7C /* MTDetailViewController.xib */; };
40
+ 53F42BB11466753B006B8F7C /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 53F42B6914667527006B8F7C /* main.m */; };
41
+ 53F42BB21466753B006B8F7C /* MTAppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 53F42B6D14667527006B8F7C /* MTAppDelegate.m */; };
42
+ 53F42BB31466753B006B8F7C /* MTMasterViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 53F42B7014667527006B8F7C /* MTMasterViewController.m */; };
43
+ 53F42BB41466753B006B8F7C /* MTDetailViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 53F42B7314667527006B8F7C /* MTDetailViewController.m */; };
44
+ 53F42BB61466753B006B8F7C /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 53F42B5D14667527006B8F7C /* UIKit.framework */; };
45
+ 53F42BB71466753B006B8F7C /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 53F42B5F14667527006B8F7C /* Foundation.framework */; };
46
+ 53F42BB81466753B006B8F7C /* CoreGraphics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 53F42B6114667527006B8F7C /* CoreGraphics.framework */; };
47
+ 53F42BBA1466753B006B8F7C /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = 53F42B6614667527006B8F7C /* InfoPlist.strings */; };
48
+ 53F42BBB1466753B006B8F7C /* MTMasterViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 53F42B7514667527006B8F7C /* MTMasterViewController.xib */; };
49
+ 53F42BBC1466753B006B8F7C /* MTDetailViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 53F42B7814667527006B8F7C /* MTDetailViewController.xib */; };
50
+ /* End PBXBuildFile section */
51
+
52
+ /* Begin PBXFileReference section */
53
+ 53F42B5914667527006B8F7C /* MultipleTargets.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = MultipleTargets.app; sourceTree = BUILT_PRODUCTS_DIR; };
54
+ 53F42B5D14667527006B8F7C /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = System/Library/Frameworks/UIKit.framework; sourceTree = SDKROOT; };
55
+ 53F42B5F14667527006B8F7C /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; };
56
+ 53F42B6114667527006B8F7C /* CoreGraphics.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreGraphics.framework; path = System/Library/Frameworks/CoreGraphics.framework; sourceTree = SDKROOT; };
57
+ 53F42B6514667527006B8F7C /* MutipleTargets-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = "MutipleTargets-Info.plist"; sourceTree = "<group>"; };
58
+ 53F42B6714667527006B8F7C /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/InfoPlist.strings; sourceTree = "<group>"; };
59
+ 53F42B6914667527006B8F7C /* main.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = "<group>"; };
60
+ 53F42B6B14667527006B8F7C /* MutipleTargets-Prefix.pch */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "MutipleTargets-Prefix.pch"; sourceTree = "<group>"; };
61
+ 53F42B6C14667527006B8F7C /* MTAppDelegate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MTAppDelegate.h; sourceTree = "<group>"; };
62
+ 53F42B6D14667527006B8F7C /* MTAppDelegate.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = MTAppDelegate.m; sourceTree = "<group>"; };
63
+ 53F42B6F14667527006B8F7C /* MTMasterViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MTMasterViewController.h; sourceTree = "<group>"; };
64
+ 53F42B7014667527006B8F7C /* MTMasterViewController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = MTMasterViewController.m; sourceTree = "<group>"; };
65
+ 53F42B7214667527006B8F7C /* MTDetailViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MTDetailViewController.h; sourceTree = "<group>"; };
66
+ 53F42B7314667527006B8F7C /* MTDetailViewController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = MTDetailViewController.m; sourceTree = "<group>"; };
67
+ 53F42B7614667527006B8F7C /* en */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = en; path = en.lproj/MTMasterViewController.xib; sourceTree = "<group>"; };
68
+ 53F42B7914667527006B8F7C /* en */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = en; path = en.lproj/MTDetailViewController.xib; sourceTree = "<group>"; };
69
+ 53F42B9114667530006B8F7C /* MutipleTargets-iPad.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "MutipleTargets-iPad.app"; sourceTree = BUILT_PRODUCTS_DIR; };
70
+ 53F42B9414667531006B8F7C /* MutipleTargets copy-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; name = "MutipleTargets copy-Info.plist"; path = "/Users/keith/Desktop/MutipleTargets/MutipleTargets copy-Info.plist"; sourceTree = "<absolute>"; };
71
+ 53F42B9614667532006B8F7C /* en */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = en; path = "Resources-iPad/MutipleTargets/en.lproj/MTMasterViewController.xib"; sourceTree = "<group>"; };
72
+ 53F42B9814667532006B8F7C /* en */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = en; path = "Resources-iPad/MutipleTargets/en.lproj/MTDetailViewController.xib"; sourceTree = "<group>"; };
73
+ 53F42BAC14667536006B8F7C /* MutipleTargets copy.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "MutipleTargets copy.app"; sourceTree = BUILT_PRODUCTS_DIR; };
74
+ 53F42BAE14667536006B8F7C /* MutipleTargets copy2-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; name = "MutipleTargets copy2-Info.plist"; path = "/Users/keith/Desktop/MutipleTargets/MutipleTargets copy2-Info.plist"; sourceTree = "<absolute>"; };
75
+ 53F42BC01466753B006B8F7C /* Specs copy.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "Specs copy.app"; sourceTree = BUILT_PRODUCTS_DIR; };
76
+ 53F42BC21466753C006B8F7C /* Specs copy-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; name = "Specs copy-Info.plist"; path = "/Users/keith/Desktop/MutipleTargets/Specs copy-Info.plist"; sourceTree = "<absolute>"; };
77
+ /* End PBXFileReference section */
78
+
79
+ /* Begin PBXFrameworksBuildPhase section */
80
+ 53F42B5614667527006B8F7C /* Frameworks */ = {
81
+ isa = PBXFrameworksBuildPhase;
82
+ buildActionMask = 2147483647;
83
+ files = (
84
+ 53F42B5E14667527006B8F7C /* UIKit.framework in Frameworks */,
85
+ 53F42B6014667527006B8F7C /* Foundation.framework in Frameworks */,
86
+ 53F42B6214667527006B8F7C /* CoreGraphics.framework in Frameworks */,
87
+ );
88
+ runOnlyForDeploymentPostprocessing = 0;
89
+ };
90
+ 53F42B8614667530006B8F7C /* Frameworks */ = {
91
+ isa = PBXFrameworksBuildPhase;
92
+ buildActionMask = 2147483647;
93
+ files = (
94
+ 53F42B8714667530006B8F7C /* UIKit.framework in Frameworks */,
95
+ 53F42B8814667530006B8F7C /* Foundation.framework in Frameworks */,
96
+ 53F42B8914667530006B8F7C /* CoreGraphics.framework in Frameworks */,
97
+ );
98
+ runOnlyForDeploymentPostprocessing = 0;
99
+ };
100
+ 53F42BA114667536006B8F7C /* Frameworks */ = {
101
+ isa = PBXFrameworksBuildPhase;
102
+ buildActionMask = 2147483647;
103
+ files = (
104
+ 53F42BA214667536006B8F7C /* UIKit.framework in Frameworks */,
105
+ 53F42BA314667536006B8F7C /* Foundation.framework in Frameworks */,
106
+ 53F42BA414667536006B8F7C /* CoreGraphics.framework in Frameworks */,
107
+ );
108
+ runOnlyForDeploymentPostprocessing = 0;
109
+ };
110
+ 53F42BB51466753B006B8F7C /* Frameworks */ = {
111
+ isa = PBXFrameworksBuildPhase;
112
+ buildActionMask = 2147483647;
113
+ files = (
114
+ 53F42BB61466753B006B8F7C /* UIKit.framework in Frameworks */,
115
+ 53F42BB71466753B006B8F7C /* Foundation.framework in Frameworks */,
116
+ 53F42BB81466753B006B8F7C /* CoreGraphics.framework in Frameworks */,
117
+ );
118
+ runOnlyForDeploymentPostprocessing = 0;
119
+ };
120
+ /* End PBXFrameworksBuildPhase section */
121
+
122
+ /* Begin PBXGroup section */
123
+ 53F42B4E14667526006B8F7C = {
124
+ isa = PBXGroup;
125
+ children = (
126
+ 53F42B9314667530006B8F7C /* Resources-iPad */,
127
+ 53F42B6314667527006B8F7C /* MutipleTargets */,
128
+ 53F42B5C14667527006B8F7C /* Frameworks */,
129
+ 53F42B5A14667527006B8F7C /* Products */,
130
+ 53F42B9414667531006B8F7C /* MutipleTargets copy-Info.plist */,
131
+ 53F42BAE14667536006B8F7C /* MutipleTargets copy2-Info.plist */,
132
+ 53F42BC21466753C006B8F7C /* Specs copy-Info.plist */,
133
+ );
134
+ sourceTree = "<group>";
135
+ };
136
+ 53F42B5A14667527006B8F7C /* Products */ = {
137
+ isa = PBXGroup;
138
+ children = (
139
+ 53F42B5914667527006B8F7C /* MultipleTargets.app */,
140
+ 53F42B9114667530006B8F7C /* MutipleTargets-iPad.app */,
141
+ 53F42BAC14667536006B8F7C /* MutipleTargets copy.app */,
142
+ 53F42BC01466753B006B8F7C /* Specs copy.app */,
143
+ );
144
+ name = Products;
145
+ sourceTree = "<group>";
146
+ };
147
+ 53F42B5C14667527006B8F7C /* Frameworks */ = {
148
+ isa = PBXGroup;
149
+ children = (
150
+ 53F42B5D14667527006B8F7C /* UIKit.framework */,
151
+ 53F42B5F14667527006B8F7C /* Foundation.framework */,
152
+ 53F42B6114667527006B8F7C /* CoreGraphics.framework */,
153
+ );
154
+ name = Frameworks;
155
+ sourceTree = "<group>";
156
+ };
157
+ 53F42B6314667527006B8F7C /* MutipleTargets */ = {
158
+ isa = PBXGroup;
159
+ children = (
160
+ 53F42B6C14667527006B8F7C /* MTAppDelegate.h */,
161
+ 53F42B6D14667527006B8F7C /* MTAppDelegate.m */,
162
+ 53F42B6F14667527006B8F7C /* MTMasterViewController.h */,
163
+ 53F42B7014667527006B8F7C /* MTMasterViewController.m */,
164
+ 53F42B7214667527006B8F7C /* MTDetailViewController.h */,
165
+ 53F42B7314667527006B8F7C /* MTDetailViewController.m */,
166
+ 53F42B7514667527006B8F7C /* MTMasterViewController.xib */,
167
+ 53F42B7814667527006B8F7C /* MTDetailViewController.xib */,
168
+ 53F42B6414667527006B8F7C /* Supporting Files */,
169
+ );
170
+ path = MutipleTargets;
171
+ sourceTree = "<group>";
172
+ };
173
+ 53F42B6414667527006B8F7C /* Supporting Files */ = {
174
+ isa = PBXGroup;
175
+ children = (
176
+ 53F42B6514667527006B8F7C /* MutipleTargets-Info.plist */,
177
+ 53F42B6614667527006B8F7C /* InfoPlist.strings */,
178
+ 53F42B6914667527006B8F7C /* main.m */,
179
+ 53F42B6B14667527006B8F7C /* MutipleTargets-Prefix.pch */,
180
+ );
181
+ name = "Supporting Files";
182
+ sourceTree = "<group>";
183
+ };
184
+ 53F42B9314667530006B8F7C /* Resources-iPad */ = {
185
+ isa = PBXGroup;
186
+ children = (
187
+ 53F42B9514667532006B8F7C /* MTMasterViewController.xib */,
188
+ 53F42B9714667532006B8F7C /* MTDetailViewController.xib */,
189
+ );
190
+ name = "Resources-iPad";
191
+ sourceTree = "<group>";
192
+ };
193
+ /* End PBXGroup section */
194
+
195
+ /* Begin PBXNativeTarget section */
196
+ 53F42B5814667527006B8F7C /* MultipleTargets */ = {
197
+ isa = PBXNativeTarget;
198
+ buildConfigurationList = 53F42B7D14667527006B8F7C /* Build configuration list for PBXNativeTarget "MultipleTargets" */;
199
+ buildPhases = (
200
+ 53F42B5514667527006B8F7C /* Sources */,
201
+ 53F42B5614667527006B8F7C /* Frameworks */,
202
+ 53F42B5714667527006B8F7C /* Resources */,
203
+ );
204
+ buildRules = (
205
+ );
206
+ dependencies = (
207
+ );
208
+ name = MultipleTargets;
209
+ productName = MutipleTargets;
210
+ productReference = 53F42B5914667527006B8F7C /* MultipleTargets.app */;
211
+ productType = "com.apple.product-type.application";
212
+ };
213
+ 53F42B8014667530006B8F7C /* MultipleTargets-iPad */ = {
214
+ isa = PBXNativeTarget;
215
+ buildConfigurationList = 53F42B8E14667530006B8F7C /* Build configuration list for PBXNativeTarget "MultipleTargets-iPad" */;
216
+ buildPhases = (
217
+ 53F42B8114667530006B8F7C /* Sources */,
218
+ 53F42B8614667530006B8F7C /* Frameworks */,
219
+ 53F42B8A14667530006B8F7C /* Resources */,
220
+ );
221
+ buildRules = (
222
+ );
223
+ dependencies = (
224
+ );
225
+ name = "MultipleTargets-iPad";
226
+ productName = MutipleTargets;
227
+ productReference = 53F42B9114667530006B8F7C /* MutipleTargets-iPad.app */;
228
+ productType = "com.apple.product-type.application";
229
+ };
230
+ 53F42B9B14667536006B8F7C /* Specs */ = {
231
+ isa = PBXNativeTarget;
232
+ buildConfigurationList = 53F42BA914667536006B8F7C /* Build configuration list for PBXNativeTarget "Specs" */;
233
+ buildPhases = (
234
+ 53F42B9C14667536006B8F7C /* Sources */,
235
+ 53F42BA114667536006B8F7C /* Frameworks */,
236
+ 53F42BA514667536006B8F7C /* Resources */,
237
+ );
238
+ buildRules = (
239
+ );
240
+ dependencies = (
241
+ );
242
+ name = Specs;
243
+ productName = MutipleTargets;
244
+ productReference = 53F42BAC14667536006B8F7C /* MutipleTargets copy.app */;
245
+ productType = "com.apple.product-type.application";
246
+ };
247
+ 53F42BAF1466753B006B8F7C /* Integration */ = {
248
+ isa = PBXNativeTarget;
249
+ buildConfigurationList = 53F42BBD1466753B006B8F7C /* Build configuration list for PBXNativeTarget "Integration" */;
250
+ buildPhases = (
251
+ 53F42BB01466753B006B8F7C /* Sources */,
252
+ 53F42BB51466753B006B8F7C /* Frameworks */,
253
+ 53F42BB91466753B006B8F7C /* Resources */,
254
+ );
255
+ buildRules = (
256
+ );
257
+ dependencies = (
258
+ );
259
+ name = Integration;
260
+ productName = MutipleTargets;
261
+ productReference = 53F42BC01466753B006B8F7C /* Specs copy.app */;
262
+ productType = "com.apple.product-type.application";
263
+ };
264
+ /* End PBXNativeTarget section */
265
+
266
+ /* Begin PBXProject section */
267
+ 53F42B5014667526006B8F7C /* Project object */ = {
268
+ isa = PBXProject;
269
+ attributes = {
270
+ LastUpgradeCheck = 0420;
271
+ };
272
+ buildConfigurationList = 53F42B5314667526006B8F7C /* Build configuration list for PBXProject "MultipleTargets" */;
273
+ compatibilityVersion = "Xcode 3.2";
274
+ developmentRegion = English;
275
+ hasScannedForEncodings = 0;
276
+ knownRegions = (
277
+ en,
278
+ );
279
+ mainGroup = 53F42B4E14667526006B8F7C;
280
+ productRefGroup = 53F42B5A14667527006B8F7C /* Products */;
281
+ projectDirPath = "";
282
+ projectRoot = "";
283
+ targets = (
284
+ 53F42B5814667527006B8F7C /* MultipleTargets */,
285
+ 53F42B8014667530006B8F7C /* MultipleTargets-iPad */,
286
+ 53F42B9B14667536006B8F7C /* Specs */,
287
+ 53F42BAF1466753B006B8F7C /* Integration */,
288
+ );
289
+ };
290
+ /* End PBXProject section */
291
+
292
+ /* Begin PBXResourcesBuildPhase section */
293
+ 53F42B5714667527006B8F7C /* Resources */ = {
294
+ isa = PBXResourcesBuildPhase;
295
+ buildActionMask = 2147483647;
296
+ files = (
297
+ 53F42B6814667527006B8F7C /* InfoPlist.strings in Resources */,
298
+ 53F42B7714667527006B8F7C /* MTMasterViewController.xib in Resources */,
299
+ 53F42B7A14667527006B8F7C /* MTDetailViewController.xib in Resources */,
300
+ );
301
+ runOnlyForDeploymentPostprocessing = 0;
302
+ };
303
+ 53F42B8A14667530006B8F7C /* Resources */ = {
304
+ isa = PBXResourcesBuildPhase;
305
+ buildActionMask = 2147483647;
306
+ files = (
307
+ 53F42B8B14667530006B8F7C /* InfoPlist.strings in Resources */,
308
+ 53F42B9914667532006B8F7C /* MTMasterViewController.xib in Resources */,
309
+ 53F42B9A14667532006B8F7C /* MTDetailViewController.xib in Resources */,
310
+ );
311
+ runOnlyForDeploymentPostprocessing = 0;
312
+ };
313
+ 53F42BA514667536006B8F7C /* Resources */ = {
314
+ isa = PBXResourcesBuildPhase;
315
+ buildActionMask = 2147483647;
316
+ files = (
317
+ 53F42BA614667536006B8F7C /* InfoPlist.strings in Resources */,
318
+ 53F42BA714667536006B8F7C /* MTMasterViewController.xib in Resources */,
319
+ 53F42BA814667536006B8F7C /* MTDetailViewController.xib in Resources */,
320
+ );
321
+ runOnlyForDeploymentPostprocessing = 0;
322
+ };
323
+ 53F42BB91466753B006B8F7C /* Resources */ = {
324
+ isa = PBXResourcesBuildPhase;
325
+ buildActionMask = 2147483647;
326
+ files = (
327
+ 53F42BBA1466753B006B8F7C /* InfoPlist.strings in Resources */,
328
+ 53F42BBB1466753B006B8F7C /* MTMasterViewController.xib in Resources */,
329
+ 53F42BBC1466753B006B8F7C /* MTDetailViewController.xib in Resources */,
330
+ );
331
+ runOnlyForDeploymentPostprocessing = 0;
332
+ };
333
+ /* End PBXResourcesBuildPhase section */
334
+
335
+ /* Begin PBXSourcesBuildPhase section */
336
+ 53F42B5514667527006B8F7C /* Sources */ = {
337
+ isa = PBXSourcesBuildPhase;
338
+ buildActionMask = 2147483647;
339
+ files = (
340
+ 53F42B6A14667527006B8F7C /* main.m in Sources */,
341
+ 53F42B6E14667527006B8F7C /* MTAppDelegate.m in Sources */,
342
+ 53F42B7114667527006B8F7C /* MTMasterViewController.m in Sources */,
343
+ 53F42B7414667527006B8F7C /* MTDetailViewController.m in Sources */,
344
+ );
345
+ runOnlyForDeploymentPostprocessing = 0;
346
+ };
347
+ 53F42B8114667530006B8F7C /* Sources */ = {
348
+ isa = PBXSourcesBuildPhase;
349
+ buildActionMask = 2147483647;
350
+ files = (
351
+ 53F42B8214667530006B8F7C /* main.m in Sources */,
352
+ 53F42B8314667530006B8F7C /* MTAppDelegate.m in Sources */,
353
+ 53F42B8414667530006B8F7C /* MTMasterViewController.m in Sources */,
354
+ 53F42B8514667530006B8F7C /* MTDetailViewController.m in Sources */,
355
+ );
356
+ runOnlyForDeploymentPostprocessing = 0;
357
+ };
358
+ 53F42B9C14667536006B8F7C /* Sources */ = {
359
+ isa = PBXSourcesBuildPhase;
360
+ buildActionMask = 2147483647;
361
+ files = (
362
+ 53F42B9D14667536006B8F7C /* main.m in Sources */,
363
+ 53F42B9E14667536006B8F7C /* MTAppDelegate.m in Sources */,
364
+ 53F42B9F14667536006B8F7C /* MTMasterViewController.m in Sources */,
365
+ 53F42BA014667536006B8F7C /* MTDetailViewController.m in Sources */,
366
+ );
367
+ runOnlyForDeploymentPostprocessing = 0;
368
+ };
369
+ 53F42BB01466753B006B8F7C /* Sources */ = {
370
+ isa = PBXSourcesBuildPhase;
371
+ buildActionMask = 2147483647;
372
+ files = (
373
+ 53F42BB11466753B006B8F7C /* main.m in Sources */,
374
+ 53F42BB21466753B006B8F7C /* MTAppDelegate.m in Sources */,
375
+ 53F42BB31466753B006B8F7C /* MTMasterViewController.m in Sources */,
376
+ 53F42BB41466753B006B8F7C /* MTDetailViewController.m in Sources */,
377
+ );
378
+ runOnlyForDeploymentPostprocessing = 0;
379
+ };
380
+ /* End PBXSourcesBuildPhase section */
381
+
382
+ /* Begin PBXVariantGroup section */
383
+ 53F42B6614667527006B8F7C /* InfoPlist.strings */ = {
384
+ isa = PBXVariantGroup;
385
+ children = (
386
+ 53F42B6714667527006B8F7C /* en */,
387
+ );
388
+ name = InfoPlist.strings;
389
+ sourceTree = "<group>";
390
+ };
391
+ 53F42B7514667527006B8F7C /* MTMasterViewController.xib */ = {
392
+ isa = PBXVariantGroup;
393
+ children = (
394
+ 53F42B7614667527006B8F7C /* en */,
395
+ );
396
+ name = MTMasterViewController.xib;
397
+ sourceTree = "<group>";
398
+ };
399
+ 53F42B7814667527006B8F7C /* MTDetailViewController.xib */ = {
400
+ isa = PBXVariantGroup;
401
+ children = (
402
+ 53F42B7914667527006B8F7C /* en */,
403
+ );
404
+ name = MTDetailViewController.xib;
405
+ sourceTree = "<group>";
406
+ };
407
+ 53F42B9514667532006B8F7C /* MTMasterViewController.xib */ = {
408
+ isa = PBXVariantGroup;
409
+ children = (
410
+ 53F42B9614667532006B8F7C /* en */,
411
+ );
412
+ name = MTMasterViewController.xib;
413
+ sourceTree = "<group>";
414
+ };
415
+ 53F42B9714667532006B8F7C /* MTDetailViewController.xib */ = {
416
+ isa = PBXVariantGroup;
417
+ children = (
418
+ 53F42B9814667532006B8F7C /* en */,
419
+ );
420
+ name = MTDetailViewController.xib;
421
+ sourceTree = "<group>";
422
+ };
423
+ /* End PBXVariantGroup section */
424
+
425
+ /* Begin XCBuildConfiguration section */
426
+ 53F42B7B14667527006B8F7C /* Debug */ = {
427
+ isa = XCBuildConfiguration;
428
+ buildSettings = {
429
+ ALWAYS_SEARCH_USER_PATHS = NO;
430
+ ARCHS = "$(ARCHS_STANDARD_32_BIT)";
431
+ CLANG_ENABLE_OBJC_ARC = YES;
432
+ "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
433
+ COPY_PHASE_STRIP = NO;
434
+ GCC_C_LANGUAGE_STANDARD = gnu99;
435
+ GCC_DYNAMIC_NO_PIC = NO;
436
+ GCC_OPTIMIZATION_LEVEL = 0;
437
+ GCC_PREPROCESSOR_DEFINITIONS = (
438
+ "DEBUG=1",
439
+ "$(inherited)",
440
+ );
441
+ GCC_SYMBOLS_PRIVATE_EXTERN = NO;
442
+ GCC_VERSION = com.apple.compilers.llvm.clang.1_0;
443
+ GCC_WARN_ABOUT_MISSING_PROTOTYPES = YES;
444
+ GCC_WARN_ABOUT_RETURN_TYPE = YES;
445
+ GCC_WARN_UNUSED_VARIABLE = YES;
446
+ IPHONEOS_DEPLOYMENT_TARGET = 5.0;
447
+ SDKROOT = iphoneos;
448
+ };
449
+ name = Debug;
450
+ };
451
+ 53F42B7C14667527006B8F7C /* Release */ = {
452
+ isa = XCBuildConfiguration;
453
+ buildSettings = {
454
+ ALWAYS_SEARCH_USER_PATHS = NO;
455
+ ARCHS = "$(ARCHS_STANDARD_32_BIT)";
456
+ CLANG_ENABLE_OBJC_ARC = YES;
457
+ "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
458
+ COPY_PHASE_STRIP = YES;
459
+ GCC_C_LANGUAGE_STANDARD = gnu99;
460
+ GCC_VERSION = com.apple.compilers.llvm.clang.1_0;
461
+ GCC_WARN_ABOUT_MISSING_PROTOTYPES = YES;
462
+ GCC_WARN_ABOUT_RETURN_TYPE = YES;
463
+ GCC_WARN_UNUSED_VARIABLE = YES;
464
+ IPHONEOS_DEPLOYMENT_TARGET = 5.0;
465
+ OTHER_CFLAGS = "-DNS_BLOCK_ASSERTIONS=1";
466
+ SDKROOT = iphoneos;
467
+ VALIDATE_PRODUCT = YES;
468
+ };
469
+ name = Release;
470
+ };
471
+ 53F42B7E14667527006B8F7C /* Debug */ = {
472
+ isa = XCBuildConfiguration;
473
+ buildSettings = {
474
+ CLANG_WARN_OBJCPP_ARC_ABI = YES;
475
+ GCC_PRECOMPILE_PREFIX_HEADER = YES;
476
+ GCC_PREFIX_HEADER = "MutipleTargets/MutipleTargets-Prefix.pch";
477
+ INFOPLIST_FILE = "MutipleTargets/MutipleTargets-Info.plist";
478
+ OTHER_LDFLAGS = (
479
+ "+ldcc",
480
+ "-ObjC",
481
+ );
482
+ PRODUCT_NAME = "$(TARGET_NAME)";
483
+ WRAPPER_EXTENSION = app;
484
+ };
485
+ name = Debug;
486
+ };
487
+ 53F42B7F14667527006B8F7C /* Release */ = {
488
+ isa = XCBuildConfiguration;
489
+ buildSettings = {
490
+ CLANG_WARN_OBJCPP_ARC_ABI = YES;
491
+ GCC_PRECOMPILE_PREFIX_HEADER = YES;
492
+ GCC_PREFIX_HEADER = "MutipleTargets/MutipleTargets-Prefix.pch";
493
+ INFOPLIST_FILE = "MutipleTargets/MutipleTargets-Info.plist";
494
+ OTHER_LDFLAGS = (
495
+ "+ldcc",
496
+ "-ObjC",
497
+ );
498
+ PRODUCT_NAME = "$(TARGET_NAME)";
499
+ WRAPPER_EXTENSION = app;
500
+ };
501
+ name = Release;
502
+ };
503
+ 53F42B8F14667530006B8F7C /* Debug */ = {
504
+ isa = XCBuildConfiguration;
505
+ buildSettings = {
506
+ GCC_PRECOMPILE_PREFIX_HEADER = YES;
507
+ GCC_PREFIX_HEADER = "MutipleTargets/MutipleTargets-Prefix.pch";
508
+ INFOPLIST_FILE = "MutipleTargets copy-Info.plist";
509
+ IPHONEOS_DEPLOYMENT_TARGET = 5.0;
510
+ PRODUCT_NAME = "MutipleTargets-iPad";
511
+ TARGETED_DEVICE_FAMILY = 2;
512
+ WRAPPER_EXTENSION = app;
513
+ };
514
+ name = Debug;
515
+ };
516
+ 53F42B9014667530006B8F7C /* Release */ = {
517
+ isa = XCBuildConfiguration;
518
+ buildSettings = {
519
+ GCC_PRECOMPILE_PREFIX_HEADER = YES;
520
+ GCC_PREFIX_HEADER = "MutipleTargets/MutipleTargets-Prefix.pch";
521
+ INFOPLIST_FILE = "MutipleTargets copy-Info.plist";
522
+ IPHONEOS_DEPLOYMENT_TARGET = 5.0;
523
+ PRODUCT_NAME = "MutipleTargets-iPad";
524
+ TARGETED_DEVICE_FAMILY = 2;
525
+ WRAPPER_EXTENSION = app;
526
+ };
527
+ name = Release;
528
+ };
529
+ 53F42BAA14667536006B8F7C /* Debug */ = {
530
+ isa = XCBuildConfiguration;
531
+ buildSettings = {
532
+ GCC_PRECOMPILE_PREFIX_HEADER = YES;
533
+ GCC_PREFIX_HEADER = "MutipleTargets/MutipleTargets-Prefix.pch";
534
+ INFOPLIST_FILE = "MutipleTargets copy2-Info.plist";
535
+ PRODUCT_NAME = "MutipleTargets copy";
536
+ WRAPPER_EXTENSION = app;
537
+ };
538
+ name = Debug;
539
+ };
540
+ 53F42BAB14667536006B8F7C /* Release */ = {
541
+ isa = XCBuildConfiguration;
542
+ buildSettings = {
543
+ GCC_PRECOMPILE_PREFIX_HEADER = YES;
544
+ GCC_PREFIX_HEADER = "MutipleTargets/MutipleTargets-Prefix.pch";
545
+ INFOPLIST_FILE = "MutipleTargets copy2-Info.plist";
546
+ PRODUCT_NAME = "MutipleTargets copy";
547
+ WRAPPER_EXTENSION = app;
548
+ };
549
+ name = Release;
550
+ };
551
+ 53F42BBE1466753B006B8F7C /* Debug */ = {
552
+ isa = XCBuildConfiguration;
553
+ buildSettings = {
554
+ GCC_PRECOMPILE_PREFIX_HEADER = YES;
555
+ GCC_PREFIX_HEADER = "MutipleTargets/MutipleTargets-Prefix.pch";
556
+ INFOPLIST_FILE = "Specs copy-Info.plist";
557
+ PRODUCT_NAME = "Specs copy";
558
+ WRAPPER_EXTENSION = app;
559
+ };
560
+ name = Debug;
561
+ };
562
+ 53F42BBF1466753B006B8F7C /* Release */ = {
563
+ isa = XCBuildConfiguration;
564
+ buildSettings = {
565
+ GCC_PRECOMPILE_PREFIX_HEADER = YES;
566
+ GCC_PREFIX_HEADER = "MutipleTargets/MutipleTargets-Prefix.pch";
567
+ INFOPLIST_FILE = "Specs copy-Info.plist";
568
+ PRODUCT_NAME = "Specs copy";
569
+ WRAPPER_EXTENSION = app;
570
+ };
571
+ name = Release;
572
+ };
573
+ /* End XCBuildConfiguration section */
574
+
575
+ /* Begin XCConfigurationList section */
576
+ 53F42B5314667526006B8F7C /* Build configuration list for PBXProject "MultipleTargets" */ = {
577
+ isa = XCConfigurationList;
578
+ buildConfigurations = (
579
+ 53F42B7B14667527006B8F7C /* Debug */,
580
+ 53F42B7C14667527006B8F7C /* Release */,
581
+ );
582
+ defaultConfigurationIsVisible = 0;
583
+ defaultConfigurationName = Release;
584
+ };
585
+ 53F42B7D14667527006B8F7C /* Build configuration list for PBXNativeTarget "MultipleTargets" */ = {
586
+ isa = XCConfigurationList;
587
+ buildConfigurations = (
588
+ 53F42B7E14667527006B8F7C /* Debug */,
589
+ 53F42B7F14667527006B8F7C /* Release */,
590
+ );
591
+ defaultConfigurationIsVisible = 0;
592
+ defaultConfigurationName = Release;
593
+ };
594
+ 53F42B8E14667530006B8F7C /* Build configuration list for PBXNativeTarget "MultipleTargets-iPad" */ = {
595
+ isa = XCConfigurationList;
596
+ buildConfigurations = (
597
+ 53F42B8F14667530006B8F7C /* Debug */,
598
+ 53F42B9014667530006B8F7C /* Release */,
599
+ );
600
+ defaultConfigurationIsVisible = 0;
601
+ defaultConfigurationName = Release;
602
+ };
603
+ 53F42BA914667536006B8F7C /* Build configuration list for PBXNativeTarget "Specs" */ = {
604
+ isa = XCConfigurationList;
605
+ buildConfigurations = (
606
+ 53F42BAA14667536006B8F7C /* Debug */,
607
+ 53F42BAB14667536006B8F7C /* Release */,
608
+ );
609
+ defaultConfigurationIsVisible = 0;
610
+ defaultConfigurationName = Release;
611
+ };
612
+ 53F42BBD1466753B006B8F7C /* Build configuration list for PBXNativeTarget "Integration" */ = {
613
+ isa = XCConfigurationList;
614
+ buildConfigurations = (
615
+ 53F42BBE1466753B006B8F7C /* Debug */,
616
+ 53F42BBF1466753B006B8F7C /* Release */,
617
+ );
618
+ defaultConfigurationIsVisible = 0;
619
+ defaultConfigurationName = Release;
620
+ };
621
+ /* End XCConfigurationList section */
622
+ };
623
+ rootObject = 53F42B5014667526006B8F7C /* Project object */;
624
+ }