findxcprojorphan 1.0.0

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 (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
+ }