vendor 0.0.4 → 0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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
+ }