findxcprojorphan 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (42) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +6 -0
  3. data/.ruby-gemset +1 -0
  4. data/.ruby-version +1 -0
  5. data/Gemfile +4 -0
  6. data/Gemfile.lock +79 -0
  7. data/README.md +39 -0
  8. data/Rakefile +61 -0
  9. data/bin/findxcprojorphan +40 -0
  10. data/features/findxcprojorphan.feature +29 -0
  11. data/features/fixtures/NoOrphans/NoOrphans.xcodeproj/project.pbxproj +307 -0
  12. data/features/fixtures/NoOrphans/NoOrphans.xcodeproj/project.xcworkspace/contents.xcworkspacedata +7 -0
  13. data/features/fixtures/NoOrphans/NoOrphans/AppDelegate.h +9 -0
  14. data/features/fixtures/NoOrphans/NoOrphans/AppDelegate.m +37 -0
  15. data/features/fixtures/NoOrphans/NoOrphans/Assets.xcassets/AppIcon.appiconset/Contents.json +68 -0
  16. data/features/fixtures/NoOrphans/NoOrphans/Base.lproj/LaunchScreen.storyboard +27 -0
  17. data/features/fixtures/NoOrphans/NoOrphans/Base.lproj/Main.storyboard +25 -0
  18. data/features/fixtures/NoOrphans/NoOrphans/Info.plist +47 -0
  19. data/features/fixtures/NoOrphans/NoOrphans/ViewController.h +7 -0
  20. data/features/fixtures/NoOrphans/NoOrphans/ViewController.m +19 -0
  21. data/features/fixtures/NoOrphans/NoOrphans/main.m +8 -0
  22. data/features/fixtures/Orphans/Orphans.xcodeproj/project.pbxproj +314 -0
  23. data/features/fixtures/Orphans/Orphans.xcodeproj/project.xcworkspace/contents.xcworkspacedata +7 -0
  24. data/features/fixtures/Orphans/Orphans/AppDelegate.h +9 -0
  25. data/features/fixtures/Orphans/Orphans/AppDelegate.m +37 -0
  26. data/features/fixtures/Orphans/Orphans/Assets.xcassets/AppIcon.appiconset/Contents.json +68 -0
  27. data/features/fixtures/Orphans/Orphans/Base.lproj/LaunchScreen.storyboard +27 -0
  28. data/features/fixtures/Orphans/Orphans/Base.lproj/Main.storyboard +25 -0
  29. data/features/fixtures/Orphans/Orphans/Info.plist +47 -0
  30. data/features/fixtures/Orphans/Orphans/ObjCFile.h +5 -0
  31. data/features/fixtures/Orphans/Orphans/ObjCFile.m +5 -0
  32. data/features/fixtures/Orphans/Orphans/Orphans-Bridging-Header.h +4 -0
  33. data/features/fixtures/Orphans/Orphans/SwiftFile.swift +1 -0
  34. data/features/fixtures/Orphans/Orphans/ViewController.h +7 -0
  35. data/features/fixtures/Orphans/Orphans/ViewController.m +19 -0
  36. data/features/fixtures/Orphans/Orphans/main.m +8 -0
  37. data/features/step_definitions/findxcprojorphan_steps.rb +12 -0
  38. data/features/support/env.rb +16 -0
  39. data/findxcprojorphan.gemspec +26 -0
  40. data/lib/findxcprojorphan.rb +5 -0
  41. data/lib/findxcprojorphan/version.rb +3 -0
  42. metadata +198 -0
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: a98d442d741125b581274fa6e6dd31b6125738c5
4
+ data.tar.gz: afef7e670f4ff20c09a14a915c8d5a6689c194b0
5
+ SHA512:
6
+ metadata.gz: 1fc14bc106710a10df4fbd94fa81b6032fed2e4ec8c9a8cfeace5e1b6b0fd1d75bd85b2aea70827ea0dd7b07c02a2fad3c638609eebd895720215a9a902c1462
7
+ data.tar.gz: c03c777c46998c4846bd2e010d9d72d5ec830ab8b9a6ed93266399611264f4a6fec7a4c03df178f5e7a6695cd6225dd23d8466e2bc8afde66ca56d69f245fa64
@@ -0,0 +1,6 @@
1
+ .DS_Store
2
+ results.html
3
+ pkg
4
+ html
5
+ xcuserdata
6
+ .idea
@@ -0,0 +1 @@
1
+ findxcprojorphan
@@ -0,0 +1 @@
1
+ ruby-2.3.0
data/Gemfile ADDED
@@ -0,0 +1,4 @@
1
+ source 'https://rubygems.org'
2
+
3
+ # Specify your gem's dependencies in findxcprojorphan.gemspec
4
+ gemspec
@@ -0,0 +1,79 @@
1
+ PATH
2
+ remote: .
3
+ specs:
4
+ findxcprojorphan (1.0.0)
5
+ methadone (~> 1.9.2)
6
+ xcodeproj (~> 0.28)
7
+
8
+ GEM
9
+ remote: https://rubygems.org/
10
+ specs:
11
+ activesupport (4.2.5)
12
+ i18n (~> 0.7)
13
+ json (~> 1.7, >= 1.7.7)
14
+ minitest (~> 5.1)
15
+ thread_safe (~> 0.3, >= 0.3.4)
16
+ tzinfo (~> 1.1)
17
+ aruba (0.10.2)
18
+ childprocess (~> 0.5.6)
19
+ contracts (~> 0.9)
20
+ cucumber (>= 1.3.19)
21
+ ffi (~> 1.9.10)
22
+ rspec-expectations (>= 2.99)
23
+ thor (~> 0.19)
24
+ builder (3.2.2)
25
+ childprocess (0.5.9)
26
+ ffi (~> 1.0, >= 1.0.11)
27
+ claide (0.9.1)
28
+ colored (1.2)
29
+ contracts (0.12.0)
30
+ cucumber (2.2.0)
31
+ builder (>= 2.1.2)
32
+ cucumber-core (~> 1.3.0)
33
+ cucumber-wire (~> 0.0.1)
34
+ diff-lcs (>= 1.1.3)
35
+ event-bus (~> 0.1.0)
36
+ gherkin3 (~> 3.1.0)
37
+ multi_json (>= 1.7.5, < 2.0)
38
+ multi_test (>= 0.1.2)
39
+ cucumber-core (1.3.1)
40
+ gherkin3 (~> 3.1.0)
41
+ cucumber-wire (0.0.1)
42
+ diff-lcs (1.2.5)
43
+ event-bus (0.1.0)
44
+ ffi (1.9.10)
45
+ gherkin3 (3.1.2)
46
+ i18n (0.7.0)
47
+ json (1.8.3)
48
+ methadone (1.9.2)
49
+ bundler
50
+ minitest (5.8.3)
51
+ multi_json (1.11.2)
52
+ multi_test (0.1.2)
53
+ rake (10.5.0)
54
+ rdoc (4.2.1)
55
+ rspec-expectations (3.4.0)
56
+ diff-lcs (>= 1.2.0, < 2.0)
57
+ rspec-support (~> 3.4.0)
58
+ rspec-support (3.4.1)
59
+ thor (0.19.1)
60
+ thread_safe (0.3.5)
61
+ tzinfo (1.2.2)
62
+ thread_safe (~> 0.1)
63
+ xcodeproj (0.28.2)
64
+ activesupport (>= 3)
65
+ claide (~> 0.9.1)
66
+ colored (~> 1.2)
67
+
68
+ PLATFORMS
69
+ ruby
70
+
71
+ DEPENDENCIES
72
+ aruba (~> 0.10)
73
+ bundler (~> 1.6)
74
+ findxcprojorphan!
75
+ rake (~> 10.5)
76
+ rdoc (~> 4.2)
77
+
78
+ BUNDLED WITH
79
+ 1.11.2
@@ -0,0 +1,39 @@
1
+ # Findxcprojorphan
2
+
3
+ This tool will list any source files that exist on the filesystem but aren't referenced by an Xcode project. This
4
+ lets you quickly find files that should be deleted or have been erroneously excluded from your project.
5
+
6
+ ## Installation
7
+
8
+ Add this line to your application's Gemfile:
9
+
10
+ gem 'findxcprojorphan'
11
+
12
+ And then execute:
13
+
14
+ $ bundle
15
+
16
+ Or install it yourself as:
17
+
18
+ $ gem install findxcprojorphan
19
+
20
+ ## Usage
21
+
22
+ Suppose you have a project called RadProject.xcodeproj and source files inside RadProjectSrc. After installing the gem,
23
+ simply run:
24
+
25
+ $ bundle exec findxcprojorphan RadProject.xcodeproj "RadProjectSrc/**/*.{m,swift}"
26
+
27
+ Note the quotes around the glob argument.
28
+
29
+ Viewing help is easy and fun:
30
+
31
+ $ bundle exec findxcprojorphan --help
32
+
33
+ ## Contributing
34
+
35
+ 1. Fork it ( https://github.com/[my-github-username]/findxcprojorphan/fork )
36
+ 2. Create your feature branch (`git checkout -b my-new-feature`)
37
+ 3. Commit your changes (`git commit -am 'Add some feature'`)
38
+ 4. Push to the branch (`git push origin my-new-feature`)
39
+ 5. Create a new Pull Request
@@ -0,0 +1,61 @@
1
+ def dump_load_path
2
+ puts $LOAD_PATH.join("\n")
3
+ found = nil
4
+ $LOAD_PATH.each do |path|
5
+ if File.exists?(File.join(path,"rspec"))
6
+ puts "Found rspec in #{path}"
7
+ if File.exists?(File.join(path,"rspec","core"))
8
+ puts "Found core"
9
+ if File.exists?(File.join(path,"rspec","core","rake_task"))
10
+ puts "Found rake_task"
11
+ found = path
12
+ else
13
+ puts "!! no rake_task"
14
+ end
15
+ else
16
+ puts "!!! no core"
17
+ end
18
+ end
19
+ end
20
+ if found.nil?
21
+ puts "Didn't find rspec/core/rake_task anywhere"
22
+ else
23
+ puts "Found in #{path}"
24
+ end
25
+ end
26
+ require 'bundler'
27
+ require 'rake/clean'
28
+
29
+ require 'rake/testtask'
30
+
31
+ require 'cucumber'
32
+ require 'cucumber/rake/task'
33
+ gem 'rdoc' # we need the installed RDoc gem, not the system one
34
+ require 'rdoc/task'
35
+
36
+ include Rake::DSL
37
+
38
+ Bundler::GemHelper.install_tasks
39
+
40
+
41
+ Rake::TestTask.new do |t|
42
+ t.pattern = 'test/tc_*.rb'
43
+ end
44
+
45
+
46
+ CUKE_RESULTS = 'results.html'
47
+ CLEAN << CUKE_RESULTS
48
+ Cucumber::Rake::Task.new(:features) do |t|
49
+ t.cucumber_opts = "features --format html -o #{CUKE_RESULTS} --format pretty --no-source -x"
50
+ t.fork = false
51
+ end
52
+
53
+ Rake::RDocTask.new do |rd|
54
+
55
+ rd.main = "README.rdoc"
56
+
57
+ rd.rdoc_files.include("README.rdoc","lib/**/*.rb","bin/**/*")
58
+ end
59
+
60
+ task :default => [:test,:features]
61
+
@@ -0,0 +1,40 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require 'optparse'
4
+ require 'methadone'
5
+ require 'xcodeproj'
6
+ require 'findxcprojorphan.rb'
7
+
8
+ class App
9
+ include Methadone::Main
10
+ include Methadone::CLILogging
11
+
12
+ main do |xcproj_path, files_glob|
13
+ proj = Xcodeproj::Project.new(xcproj_path)
14
+ proj.initialize_from_file
15
+ referenced_files = proj.targets.find_all { |target| target.class == Xcodeproj::Project::Object::PBXNativeTarget }.flat_map { |target| target.source_build_phase.files.map(&:file_ref).map(&:real_path).map(&:to_s) }.sort
16
+
17
+ files_on_disk = Dir.glob(files_glob).map { |path| File.absolute_path(path) }.sort
18
+
19
+ unused_files = files_on_disk - referenced_files
20
+
21
+ if unused_files.empty?
22
+ info "No Orphaned Files!"
23
+ else
24
+ info "These files aren't referenced anywhere in the project:"
25
+ unused_files.map { |unused_file| "\t#{unused_file}" }.each { |line| info line }
26
+ exit 1
27
+ end
28
+ end
29
+
30
+ description "Find files matching [files_glob] that aren't referenced in [xcproj_path]"
31
+
32
+ arg :xcproj_path, 'Path to xcproj to search for orphans'
33
+ arg :files_glob, 'Only files matching this glob will be considered orphans'
34
+
35
+ version Findxcprojorphan::VERSION
36
+
37
+ use_log_level_option :toggle_debug_on_signal => 'USR1'
38
+
39
+ go!
40
+ end
@@ -0,0 +1,29 @@
1
+ Feature: Find files orphaned from xcproj
2
+
3
+ Scenario: Help
4
+ When I get help for "findxcprojorphan"
5
+ Then the exit status should be 0
6
+ And the banner should be present
7
+ And the banner should document that this app takes options
8
+ And the following options should be documented:
9
+ | --version |
10
+ And the banner should document that this app's arguments are:
11
+ | xcproj_path | which is required |
12
+ | files_glob | which is required |
13
+
14
+ Scenario: No orphaned files
15
+ When I successfully process "NoOrphans/NoOrphans.xcodeproj" with "NoOrphans/**/*.m"
16
+ Then the output should contain all of these lines:
17
+ | No Orphaned Files! |
18
+
19
+ Scenario: No orphaned files for that glob
20
+ When I successfully process "Orphans/Orphans.xcodeproj" with "Orphans/**/*.foo"
21
+ Then the output should contain all of these lines:
22
+ | No Orphaned Files! |
23
+
24
+ Scenario: Orphaned files
25
+ When I unsuccessfully process "Orphans/Orphans.xcodeproj" with "Orphans/**/*.{m,swift}"
26
+ Then the output should contain all of these lines:
27
+ | These files aren't referenced anywhere in the project: |
28
+ | Orphans/ObjCFile.m |
29
+ | Orphans/SwiftFile.swift |
@@ -0,0 +1,307 @@
1
+ // !$*UTF8*$!
2
+ {
3
+ archiveVersion = 1;
4
+ classes = {
5
+ };
6
+ objectVersion = 46;
7
+ objects = {
8
+
9
+ /* Begin PBXBuildFile section */
10
+ 8B720FE01C46B7DF000089F8 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 8B720FDF1C46B7DF000089F8 /* main.m */; };
11
+ 8B720FE31C46B7DF000089F8 /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 8B720FE21C46B7DF000089F8 /* AppDelegate.m */; };
12
+ 8B720FE61C46B7DF000089F8 /* ViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 8B720FE51C46B7DF000089F8 /* ViewController.m */; };
13
+ 8B720FE91C46B7DF000089F8 /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 8B720FE71C46B7DF000089F8 /* Main.storyboard */; };
14
+ 8B720FEB1C46B7DF000089F8 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 8B720FEA1C46B7DF000089F8 /* Assets.xcassets */; };
15
+ 8B720FEE1C46B7DF000089F8 /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 8B720FEC1C46B7DF000089F8 /* LaunchScreen.storyboard */; };
16
+ /* End PBXBuildFile section */
17
+
18
+ /* Begin PBXFileReference section */
19
+ 8B720FDB1C46B7DF000089F8 /* NoOrphans.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = NoOrphans.app; sourceTree = BUILT_PRODUCTS_DIR; };
20
+ 8B720FDF1C46B7DF000089F8 /* main.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = "<group>"; };
21
+ 8B720FE11C46B7DF000089F8 /* AppDelegate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AppDelegate.h; sourceTree = "<group>"; };
22
+ 8B720FE21C46B7DF000089F8 /* AppDelegate.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = AppDelegate.m; sourceTree = "<group>"; };
23
+ 8B720FE41C46B7DF000089F8 /* ViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ViewController.h; sourceTree = "<group>"; };
24
+ 8B720FE51C46B7DF000089F8 /* ViewController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = ViewController.m; sourceTree = "<group>"; };
25
+ 8B720FE81C46B7DF000089F8 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = "<group>"; };
26
+ 8B720FEA1C46B7DF000089F8 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = "<group>"; };
27
+ 8B720FED1C46B7DF000089F8 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = "<group>"; };
28
+ 8B720FEF1C46B7DF000089F8 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
29
+ /* End PBXFileReference section */
30
+
31
+ /* Begin PBXFrameworksBuildPhase section */
32
+ 8B720FD81C46B7DF000089F8 /* Frameworks */ = {
33
+ isa = PBXFrameworksBuildPhase;
34
+ buildActionMask = 2147483647;
35
+ files = (
36
+ );
37
+ runOnlyForDeploymentPostprocessing = 0;
38
+ };
39
+ /* End PBXFrameworksBuildPhase section */
40
+
41
+ /* Begin PBXGroup section */
42
+ 8B720FD21C46B7DF000089F8 = {
43
+ isa = PBXGroup;
44
+ children = (
45
+ 8B720FDD1C46B7DF000089F8 /* NoOrphans */,
46
+ 8B720FDC1C46B7DF000089F8 /* Products */,
47
+ );
48
+ sourceTree = "<group>";
49
+ };
50
+ 8B720FDC1C46B7DF000089F8 /* Products */ = {
51
+ isa = PBXGroup;
52
+ children = (
53
+ 8B720FDB1C46B7DF000089F8 /* NoOrphans.app */,
54
+ );
55
+ name = Products;
56
+ sourceTree = "<group>";
57
+ };
58
+ 8B720FDD1C46B7DF000089F8 /* NoOrphans */ = {
59
+ isa = PBXGroup;
60
+ children = (
61
+ 8B720FE11C46B7DF000089F8 /* AppDelegate.h */,
62
+ 8B720FE21C46B7DF000089F8 /* AppDelegate.m */,
63
+ 8B720FE41C46B7DF000089F8 /* ViewController.h */,
64
+ 8B720FE51C46B7DF000089F8 /* ViewController.m */,
65
+ 8B720FE71C46B7DF000089F8 /* Main.storyboard */,
66
+ 8B720FEA1C46B7DF000089F8 /* Assets.xcassets */,
67
+ 8B720FEC1C46B7DF000089F8 /* LaunchScreen.storyboard */,
68
+ 8B720FEF1C46B7DF000089F8 /* Info.plist */,
69
+ 8B720FDE1C46B7DF000089F8 /* Supporting Files */,
70
+ );
71
+ path = NoOrphans;
72
+ sourceTree = "<group>";
73
+ };
74
+ 8B720FDE1C46B7DF000089F8 /* Supporting Files */ = {
75
+ isa = PBXGroup;
76
+ children = (
77
+ 8B720FDF1C46B7DF000089F8 /* main.m */,
78
+ );
79
+ name = "Supporting Files";
80
+ sourceTree = "<group>";
81
+ };
82
+ /* End PBXGroup section */
83
+
84
+ /* Begin PBXNativeTarget section */
85
+ 8B720FDA1C46B7DF000089F8 /* NoOrphans */ = {
86
+ isa = PBXNativeTarget;
87
+ buildConfigurationList = 8B720FF21C46B7DF000089F8 /* Build configuration list for PBXNativeTarget "NoOrphans" */;
88
+ buildPhases = (
89
+ 8B720FD71C46B7DF000089F8 /* Sources */,
90
+ 8B720FD81C46B7DF000089F8 /* Frameworks */,
91
+ 8B720FD91C46B7DF000089F8 /* Resources */,
92
+ );
93
+ buildRules = (
94
+ );
95
+ dependencies = (
96
+ );
97
+ name = NoOrphans;
98
+ productName = NoOrphans;
99
+ productReference = 8B720FDB1C46B7DF000089F8 /* NoOrphans.app */;
100
+ productType = "com.apple.product-type.application";
101
+ };
102
+ /* End PBXNativeTarget section */
103
+
104
+ /* Begin PBXProject section */
105
+ 8B720FD31C46B7DF000089F8 /* Project object */ = {
106
+ isa = PBXProject;
107
+ attributes = {
108
+ LastUpgradeCheck = 0720;
109
+ ORGANIZATIONNAME = "Manuel Wudka-Robles";
110
+ TargetAttributes = {
111
+ 8B720FDA1C46B7DF000089F8 = {
112
+ CreatedOnToolsVersion = 7.2;
113
+ };
114
+ };
115
+ };
116
+ buildConfigurationList = 8B720FD61C46B7DF000089F8 /* Build configuration list for PBXProject "NoOrphans" */;
117
+ compatibilityVersion = "Xcode 3.2";
118
+ developmentRegion = English;
119
+ hasScannedForEncodings = 0;
120
+ knownRegions = (
121
+ en,
122
+ Base,
123
+ );
124
+ mainGroup = 8B720FD21C46B7DF000089F8;
125
+ productRefGroup = 8B720FDC1C46B7DF000089F8 /* Products */;
126
+ projectDirPath = "";
127
+ projectRoot = "";
128
+ targets = (
129
+ 8B720FDA1C46B7DF000089F8 /* NoOrphans */,
130
+ );
131
+ };
132
+ /* End PBXProject section */
133
+
134
+ /* Begin PBXResourcesBuildPhase section */
135
+ 8B720FD91C46B7DF000089F8 /* Resources */ = {
136
+ isa = PBXResourcesBuildPhase;
137
+ buildActionMask = 2147483647;
138
+ files = (
139
+ 8B720FEE1C46B7DF000089F8 /* LaunchScreen.storyboard in Resources */,
140
+ 8B720FEB1C46B7DF000089F8 /* Assets.xcassets in Resources */,
141
+ 8B720FE91C46B7DF000089F8 /* Main.storyboard in Resources */,
142
+ );
143
+ runOnlyForDeploymentPostprocessing = 0;
144
+ };
145
+ /* End PBXResourcesBuildPhase section */
146
+
147
+ /* Begin PBXSourcesBuildPhase section */
148
+ 8B720FD71C46B7DF000089F8 /* Sources */ = {
149
+ isa = PBXSourcesBuildPhase;
150
+ buildActionMask = 2147483647;
151
+ files = (
152
+ 8B720FE61C46B7DF000089F8 /* ViewController.m in Sources */,
153
+ 8B720FE31C46B7DF000089F8 /* AppDelegate.m in Sources */,
154
+ 8B720FE01C46B7DF000089F8 /* main.m in Sources */,
155
+ );
156
+ runOnlyForDeploymentPostprocessing = 0;
157
+ };
158
+ /* End PBXSourcesBuildPhase section */
159
+
160
+ /* Begin PBXVariantGroup section */
161
+ 8B720FE71C46B7DF000089F8 /* Main.storyboard */ = {
162
+ isa = PBXVariantGroup;
163
+ children = (
164
+ 8B720FE81C46B7DF000089F8 /* Base */,
165
+ );
166
+ name = Main.storyboard;
167
+ sourceTree = "<group>";
168
+ };
169
+ 8B720FEC1C46B7DF000089F8 /* LaunchScreen.storyboard */ = {
170
+ isa = PBXVariantGroup;
171
+ children = (
172
+ 8B720FED1C46B7DF000089F8 /* Base */,
173
+ );
174
+ name = LaunchScreen.storyboard;
175
+ sourceTree = "<group>";
176
+ };
177
+ /* End PBXVariantGroup section */
178
+
179
+ /* Begin XCBuildConfiguration section */
180
+ 8B720FF01C46B7DF000089F8 /* Debug */ = {
181
+ isa = XCBuildConfiguration;
182
+ buildSettings = {
183
+ ALWAYS_SEARCH_USER_PATHS = NO;
184
+ CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
185
+ CLANG_CXX_LIBRARY = "libc++";
186
+ CLANG_ENABLE_MODULES = YES;
187
+ CLANG_ENABLE_OBJC_ARC = YES;
188
+ CLANG_WARN_BOOL_CONVERSION = YES;
189
+ CLANG_WARN_CONSTANT_CONVERSION = YES;
190
+ CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
191
+ CLANG_WARN_EMPTY_BODY = YES;
192
+ CLANG_WARN_ENUM_CONVERSION = YES;
193
+ CLANG_WARN_INT_CONVERSION = YES;
194
+ CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
195
+ CLANG_WARN_UNREACHABLE_CODE = YES;
196
+ CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
197
+ "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
198
+ COPY_PHASE_STRIP = NO;
199
+ DEBUG_INFORMATION_FORMAT = dwarf;
200
+ ENABLE_STRICT_OBJC_MSGSEND = YES;
201
+ ENABLE_TESTABILITY = YES;
202
+ GCC_C_LANGUAGE_STANDARD = gnu99;
203
+ GCC_DYNAMIC_NO_PIC = NO;
204
+ GCC_NO_COMMON_BLOCKS = YES;
205
+ GCC_OPTIMIZATION_LEVEL = 0;
206
+ GCC_PREPROCESSOR_DEFINITIONS = (
207
+ "DEBUG=1",
208
+ "$(inherited)",
209
+ );
210
+ GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
211
+ GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
212
+ GCC_WARN_UNDECLARED_SELECTOR = YES;
213
+ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
214
+ GCC_WARN_UNUSED_FUNCTION = YES;
215
+ GCC_WARN_UNUSED_VARIABLE = YES;
216
+ IPHONEOS_DEPLOYMENT_TARGET = 9.2;
217
+ MTL_ENABLE_DEBUG_INFO = YES;
218
+ ONLY_ACTIVE_ARCH = YES;
219
+ SDKROOT = iphoneos;
220
+ TARGETED_DEVICE_FAMILY = "1,2";
221
+ };
222
+ name = Debug;
223
+ };
224
+ 8B720FF11C46B7DF000089F8 /* Release */ = {
225
+ isa = XCBuildConfiguration;
226
+ buildSettings = {
227
+ ALWAYS_SEARCH_USER_PATHS = NO;
228
+ CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
229
+ CLANG_CXX_LIBRARY = "libc++";
230
+ CLANG_ENABLE_MODULES = YES;
231
+ CLANG_ENABLE_OBJC_ARC = YES;
232
+ CLANG_WARN_BOOL_CONVERSION = YES;
233
+ CLANG_WARN_CONSTANT_CONVERSION = YES;
234
+ CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
235
+ CLANG_WARN_EMPTY_BODY = YES;
236
+ CLANG_WARN_ENUM_CONVERSION = YES;
237
+ CLANG_WARN_INT_CONVERSION = YES;
238
+ CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
239
+ CLANG_WARN_UNREACHABLE_CODE = YES;
240
+ CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
241
+ "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
242
+ COPY_PHASE_STRIP = NO;
243
+ DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
244
+ ENABLE_NS_ASSERTIONS = NO;
245
+ ENABLE_STRICT_OBJC_MSGSEND = YES;
246
+ GCC_C_LANGUAGE_STANDARD = gnu99;
247
+ GCC_NO_COMMON_BLOCKS = YES;
248
+ GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
249
+ GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
250
+ GCC_WARN_UNDECLARED_SELECTOR = YES;
251
+ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
252
+ GCC_WARN_UNUSED_FUNCTION = YES;
253
+ GCC_WARN_UNUSED_VARIABLE = YES;
254
+ IPHONEOS_DEPLOYMENT_TARGET = 9.2;
255
+ MTL_ENABLE_DEBUG_INFO = NO;
256
+ SDKROOT = iphoneos;
257
+ TARGETED_DEVICE_FAMILY = "1,2";
258
+ VALIDATE_PRODUCT = YES;
259
+ };
260
+ name = Release;
261
+ };
262
+ 8B720FF31C46B7DF000089F8 /* Debug */ = {
263
+ isa = XCBuildConfiguration;
264
+ buildSettings = {
265
+ ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
266
+ INFOPLIST_FILE = NoOrphans/Info.plist;
267
+ LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
268
+ PRODUCT_BUNDLE_IDENTIFIER = com.mwudka.NoOrphans;
269
+ PRODUCT_NAME = "$(TARGET_NAME)";
270
+ };
271
+ name = Debug;
272
+ };
273
+ 8B720FF41C46B7DF000089F8 /* Release */ = {
274
+ isa = XCBuildConfiguration;
275
+ buildSettings = {
276
+ ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
277
+ INFOPLIST_FILE = NoOrphans/Info.plist;
278
+ LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
279
+ PRODUCT_BUNDLE_IDENTIFIER = com.mwudka.NoOrphans;
280
+ PRODUCT_NAME = "$(TARGET_NAME)";
281
+ };
282
+ name = Release;
283
+ };
284
+ /* End XCBuildConfiguration section */
285
+
286
+ /* Begin XCConfigurationList section */
287
+ 8B720FD61C46B7DF000089F8 /* Build configuration list for PBXProject "NoOrphans" */ = {
288
+ isa = XCConfigurationList;
289
+ buildConfigurations = (
290
+ 8B720FF01C46B7DF000089F8 /* Debug */,
291
+ 8B720FF11C46B7DF000089F8 /* Release */,
292
+ );
293
+ defaultConfigurationIsVisible = 0;
294
+ defaultConfigurationName = Release;
295
+ };
296
+ 8B720FF21C46B7DF000089F8 /* Build configuration list for PBXNativeTarget "NoOrphans" */ = {
297
+ isa = XCConfigurationList;
298
+ buildConfigurations = (
299
+ 8B720FF31C46B7DF000089F8 /* Debug */,
300
+ 8B720FF41C46B7DF000089F8 /* Release */,
301
+ );
302
+ defaultConfigurationIsVisible = 0;
303
+ };
304
+ /* End XCConfigurationList section */
305
+ };
306
+ rootObject = 8B720FD31C46B7DF000089F8 /* Project object */;
307
+ }