danger-localizationlinter 0.0.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (136) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +20 -0
  3. data/.travis.yml +12 -0
  4. data/Gemfile +6 -0
  5. data/Gemfile.lock +167 -0
  6. data/Guardfile +21 -0
  7. data/LICENSE.txt +22 -0
  8. data/README.md +62 -0
  9. data/Rakefile +25 -0
  10. data/danger-localizationlinter.gemspec +60 -0
  11. data/ext/localizationlinter/helper/validate_wording_cli.rb +21 -0
  12. data/ext/localizationlinter/localizationlinter.rb +331 -0
  13. data/ext/localizationlinter/swiftgen_localizables_check.stencil +36 -0
  14. data/lib/danger_localizationlinter.rb +3 -0
  15. data/lib/danger_plugin.rb +3 -0
  16. data/lib/localizationlinter/gem_version.rb +5 -0
  17. data/lib/localizationlinter/plugin.rb +96 -0
  18. data/spec/Test/Podfile +6 -0
  19. data/spec/Test/Podfile.lock +16 -0
  20. data/spec/Test/Pods/SwiftGen/CHANGELOG.md +1357 -0
  21. data/spec/Test/Pods/SwiftGen/LICENCE +21 -0
  22. data/spec/Test/Pods/SwiftGen/README.md +892 -0
  23. data/spec/Test/Pods/SwiftGen/bin/swiftgen +0 -0
  24. data/spec/Test/Pods/SwiftGen/lib/Commander.framework/Commander +0 -0
  25. data/spec/Test/Pods/SwiftGen/lib/Commander.framework/Resources/Info.plist +48 -0
  26. data/spec/Test/Pods/SwiftGen/lib/Commander.framework/Versions/A/Commander +0 -0
  27. data/spec/Test/Pods/SwiftGen/lib/Commander.framework/Versions/A/Resources/Info.plist +48 -0
  28. data/spec/Test/Pods/SwiftGen/lib/Commander.framework/Versions/A/_CodeSignature/CodeResources +132 -0
  29. data/spec/Test/Pods/SwiftGen/lib/Commander.framework/Versions/Current/Commander +0 -0
  30. data/spec/Test/Pods/SwiftGen/lib/Commander.framework/Versions/Current/Resources/Info.plist +48 -0
  31. data/spec/Test/Pods/SwiftGen/lib/Commander.framework/Versions/Current/_CodeSignature/CodeResources +132 -0
  32. data/spec/Test/Pods/SwiftGen/lib/Kanna.framework/Kanna +0 -0
  33. data/spec/Test/Pods/SwiftGen/lib/Kanna.framework/Resources/Info.plist +48 -0
  34. data/spec/Test/Pods/SwiftGen/lib/Kanna.framework/Versions/A/Kanna +0 -0
  35. data/spec/Test/Pods/SwiftGen/lib/Kanna.framework/Versions/A/Resources/Info.plist +48 -0
  36. data/spec/Test/Pods/SwiftGen/lib/Kanna.framework/Versions/A/_CodeSignature/CodeResources +132 -0
  37. data/spec/Test/Pods/SwiftGen/lib/Kanna.framework/Versions/Current/Kanna +0 -0
  38. data/spec/Test/Pods/SwiftGen/lib/Kanna.framework/Versions/Current/Resources/Info.plist +48 -0
  39. data/spec/Test/Pods/SwiftGen/lib/Kanna.framework/Versions/Current/_CodeSignature/CodeResources +132 -0
  40. data/spec/Test/Pods/SwiftGen/lib/PathKit.framework/PathKit +0 -0
  41. data/spec/Test/Pods/SwiftGen/lib/PathKit.framework/Resources/Info.plist +48 -0
  42. data/spec/Test/Pods/SwiftGen/lib/PathKit.framework/Versions/A/PathKit +0 -0
  43. data/spec/Test/Pods/SwiftGen/lib/PathKit.framework/Versions/A/Resources/Info.plist +48 -0
  44. data/spec/Test/Pods/SwiftGen/lib/PathKit.framework/Versions/A/_CodeSignature/CodeResources +132 -0
  45. data/spec/Test/Pods/SwiftGen/lib/PathKit.framework/Versions/Current/PathKit +0 -0
  46. data/spec/Test/Pods/SwiftGen/lib/PathKit.framework/Versions/Current/Resources/Info.plist +48 -0
  47. data/spec/Test/Pods/SwiftGen/lib/PathKit.framework/Versions/Current/_CodeSignature/CodeResources +132 -0
  48. data/spec/Test/Pods/SwiftGen/lib/Stencil.framework/Resources/Info.plist +48 -0
  49. data/spec/Test/Pods/SwiftGen/lib/Stencil.framework/Stencil +0 -0
  50. data/spec/Test/Pods/SwiftGen/lib/Stencil.framework/Versions/A/Resources/Info.plist +48 -0
  51. data/spec/Test/Pods/SwiftGen/lib/Stencil.framework/Versions/A/Stencil +0 -0
  52. data/spec/Test/Pods/SwiftGen/lib/Stencil.framework/Versions/A/_CodeSignature/CodeResources +132 -0
  53. data/spec/Test/Pods/SwiftGen/lib/Stencil.framework/Versions/Current/Resources/Info.plist +48 -0
  54. data/spec/Test/Pods/SwiftGen/lib/Stencil.framework/Versions/Current/Stencil +0 -0
  55. data/spec/Test/Pods/SwiftGen/lib/Stencil.framework/Versions/Current/_CodeSignature/CodeResources +132 -0
  56. data/spec/Test/Pods/SwiftGen/lib/StencilSwiftKit.framework/Resources/Info.plist +48 -0
  57. data/spec/Test/Pods/SwiftGen/lib/StencilSwiftKit.framework/StencilSwiftKit +0 -0
  58. data/spec/Test/Pods/SwiftGen/lib/StencilSwiftKit.framework/Versions/A/Resources/Info.plist +48 -0
  59. data/spec/Test/Pods/SwiftGen/lib/StencilSwiftKit.framework/Versions/A/StencilSwiftKit +0 -0
  60. data/spec/Test/Pods/SwiftGen/lib/StencilSwiftKit.framework/Versions/A/_CodeSignature/CodeResources +132 -0
  61. data/spec/Test/Pods/SwiftGen/lib/StencilSwiftKit.framework/Versions/Current/Resources/Info.plist +48 -0
  62. data/spec/Test/Pods/SwiftGen/lib/StencilSwiftKit.framework/Versions/Current/StencilSwiftKit +0 -0
  63. data/spec/Test/Pods/SwiftGen/lib/StencilSwiftKit.framework/Versions/Current/_CodeSignature/CodeResources +132 -0
  64. data/spec/Test/Pods/SwiftGen/lib/SwiftGenKit.framework/Resources/Info.plist +48 -0
  65. data/spec/Test/Pods/SwiftGen/lib/SwiftGenKit.framework/SwiftGenKit +0 -0
  66. data/spec/Test/Pods/SwiftGen/lib/SwiftGenKit.framework/Versions/A/Resources/Info.plist +48 -0
  67. data/spec/Test/Pods/SwiftGen/lib/SwiftGenKit.framework/Versions/A/SwiftGenKit +0 -0
  68. data/spec/Test/Pods/SwiftGen/lib/SwiftGenKit.framework/Versions/A/_CodeSignature/CodeResources +132 -0
  69. data/spec/Test/Pods/SwiftGen/lib/SwiftGenKit.framework/Versions/Current/Resources/Info.plist +48 -0
  70. data/spec/Test/Pods/SwiftGen/lib/SwiftGenKit.framework/Versions/Current/SwiftGenKit +0 -0
  71. data/spec/Test/Pods/SwiftGen/lib/SwiftGenKit.framework/Versions/Current/_CodeSignature/CodeResources +132 -0
  72. data/spec/Test/Pods/SwiftGen/lib/Yams.framework/Resources/Info.plist +48 -0
  73. data/spec/Test/Pods/SwiftGen/lib/Yams.framework/Versions/A/Resources/Info.plist +48 -0
  74. data/spec/Test/Pods/SwiftGen/lib/Yams.framework/Versions/A/Yams +0 -0
  75. data/spec/Test/Pods/SwiftGen/lib/Yams.framework/Versions/A/_CodeSignature/CodeResources +132 -0
  76. data/spec/Test/Pods/SwiftGen/lib/Yams.framework/Versions/Current/Resources/Info.plist +48 -0
  77. data/spec/Test/Pods/SwiftGen/lib/Yams.framework/Versions/Current/Yams +0 -0
  78. data/spec/Test/Pods/SwiftGen/lib/Yams.framework/Versions/Current/_CodeSignature/CodeResources +132 -0
  79. data/spec/Test/Pods/SwiftGen/lib/Yams.framework/Yams +0 -0
  80. data/spec/Test/Pods/SwiftGen/templates/colors/literals-swift4.stencil +43 -0
  81. data/spec/Test/Pods/SwiftGen/templates/colors/literals-swift5.stencil +43 -0
  82. data/spec/Test/Pods/SwiftGen/templates/colors/swift4.stencil +84 -0
  83. data/spec/Test/Pods/SwiftGen/templates/colors/swift5.stencil +84 -0
  84. data/spec/Test/Pods/SwiftGen/templates/coredata/swift4.stencil +211 -0
  85. data/spec/Test/Pods/SwiftGen/templates/coredata/swift5.stencil +211 -0
  86. data/spec/Test/Pods/SwiftGen/templates/fonts/swift4.stencil +110 -0
  87. data/spec/Test/Pods/SwiftGen/templates/fonts/swift5.stencil +113 -0
  88. data/spec/Test/Pods/SwiftGen/templates/ib/scenes-swift4.stencil +157 -0
  89. data/spec/Test/Pods/SwiftGen/templates/ib/scenes-swift5.stencil +159 -0
  90. data/spec/Test/Pods/SwiftGen/templates/ib/segues-swift4.stencil +60 -0
  91. data/spec/Test/Pods/SwiftGen/templates/ib/segues-swift5.stencil +60 -0
  92. data/spec/Test/Pods/SwiftGen/templates/json/inline-swift4.stencil +82 -0
  93. data/spec/Test/Pods/SwiftGen/templates/json/inline-swift5.stencil +82 -0
  94. data/spec/Test/Pods/SwiftGen/templates/json/runtime-swift4.stencil +112 -0
  95. data/spec/Test/Pods/SwiftGen/templates/json/runtime-swift5.stencil +112 -0
  96. data/spec/Test/Pods/SwiftGen/templates/plist/inline-swift4.stencil +82 -0
  97. data/spec/Test/Pods/SwiftGen/templates/plist/inline-swift5.stencil +82 -0
  98. data/spec/Test/Pods/SwiftGen/templates/plist/runtime-swift4.stencil +117 -0
  99. data/spec/Test/Pods/SwiftGen/templates/plist/runtime-swift5.stencil +117 -0
  100. data/spec/Test/Pods/SwiftGen/templates/strings/flat-swift4.stencil +97 -0
  101. data/spec/Test/Pods/SwiftGen/templates/strings/flat-swift5.stencil +97 -0
  102. data/spec/Test/Pods/SwiftGen/templates/strings/objc-h.stencil +66 -0
  103. data/spec/Test/Pods/SwiftGen/templates/strings/objc-m.stencil +90 -0
  104. data/spec/Test/Pods/SwiftGen/templates/strings/structured-swift4.stencil +102 -0
  105. data/spec/Test/Pods/SwiftGen/templates/strings/structured-swift5.stencil +102 -0
  106. data/spec/Test/Pods/SwiftGen/templates/xcassets/swift4.stencil +266 -0
  107. data/spec/Test/Pods/SwiftGen/templates/xcassets/swift5.stencil +274 -0
  108. data/spec/Test/Pods/SwiftGen/templates/yaml/inline-swift4.stencil +92 -0
  109. data/spec/Test/Pods/SwiftGen/templates/yaml/inline-swift5.stencil +92 -0
  110. data/spec/Test/Test.xcodeproj/project.pbxproj +406 -0
  111. data/spec/Test/Test.xcodeproj/project.xcworkspace/contents.xcworkspacedata +7 -0
  112. data/spec/Test/Test.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist +8 -0
  113. data/spec/Test/Test.xcworkspace/contents.xcworkspacedata +10 -0
  114. data/spec/Test/Test.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist +8 -0
  115. data/spec/Test/Test/AppDelegate.swift +36 -0
  116. data/spec/Test/Test/Assets.xcassets/AccentColor.colorset/Contents.json +11 -0
  117. data/spec/Test/Test/Assets.xcassets/AppIcon.appiconset/Contents.json +98 -0
  118. data/spec/Test/Test/Assets.xcassets/Contents.json +6 -0
  119. data/spec/Test/Test/ContentView.swift +21 -0
  120. data/spec/Test/Test/Info.plist +62 -0
  121. data/spec/Test/Test/SceneDelegate.swift +63 -0
  122. data/spec/Test/Test/all_target_main_language.yml +1 -0
  123. data/spec/Test/Test/en.lproj/LaunchScreen.storyboard +25 -0
  124. data/spec/Test/Test/en.lproj/localizable.strings +3 -0
  125. data/spec/Test/Test/fr.lproj/LaunchScreen.storyboard +25 -0
  126. data/spec/Test/Test/fr.lproj/localizable.strings +3 -0
  127. data/spec/localizationofficer_spec.rb +116 -0
  128. data/spec/spec_helper.rb +67 -0
  129. data/spec/support/fixtures/all_target_main_language.yml +1 -0
  130. data/spec/support/fixtures/resources/TEST/en.lproj/Localizable.strings +8 -0
  131. data/spec/support/fixtures/resources/TEST/en.lproj/Localizable.stringsdict +30 -0
  132. data/spec/support/fixtures/resources/TEST_KO/en.lproj/Localizable.strings +11 -0
  133. data/spec/support/fixtures/resources/TEST_KO/en.lproj/Localizable.stringsdict +30 -0
  134. data/spec/support/fixtures/resources/TEST_KO/fr.lproj/Localizable.strings +11 -0
  135. data/spec/support/fixtures/resources/TEST_KO/fr.lproj/Localizable.stringsdict +30 -0
  136. metadata +491 -0
@@ -0,0 +1,92 @@
1
+ // swiftlint:disable all
2
+ // Generated using SwiftGen — https://github.com/SwiftGen/SwiftGen
3
+
4
+ {% if files %}
5
+ {% set accessModifier %}{% if param.publicAccess %}public{% else %}internal{% endif %}{% endset %}
6
+ {% set documentPrefix %}{{param.documentName|default:"Document"}}{% endset %}
7
+ import Foundation
8
+
9
+ // swiftlint:disable superfluous_disable_command
10
+ // swiftlint:disable file_length
11
+
12
+ // MARK: - YAML Files
13
+ {% macro fileBlock file %}
14
+ {% if file.documents.count > 1 %}
15
+ {% for document in file.documents %}
16
+ {% set documentName %}{{documentPrefix}}{{forloop.counter}}{% endset %}
17
+ {{accessModifier}} enum {{documentName|swiftIdentifier:"pretty"|escapeReservedKeywords}} {
18
+ {% filter indent:2 %}{% call documentBlock file document %}{% endfilter %}
19
+ }
20
+ {% endfor %}
21
+ {% else %}
22
+ {% call documentBlock file file.documents.first %}
23
+ {% endif %}
24
+ {% endmacro %}
25
+ {% macro documentBlock file document %}
26
+ {% set rootType %}{% call typeBlock document.metadata %}{% endset %}
27
+ {% if document.metadata.type == "Array" %}
28
+ {{accessModifier}} static let items: {{rootType}} = {% call valueBlock document.data document.metadata %}
29
+ {% elif document.metadata.type == "Dictionary" %}
30
+ {% for key,value in document.metadata.properties %}
31
+ {{accessModifier}} {% call propertyBlock key value document.data %}
32
+ {% endfor %}
33
+ {% else %}
34
+ {{accessModifier}} static let value: {{rootType}} = {% call valueBlock document.data document.metadata %}
35
+ {% endif %}
36
+ {% endmacro %}
37
+ {% macro typeBlock metadata %}{% filter removeNewlines:"leading" %}
38
+ {% if metadata.type == "Array" %}
39
+ [{% call typeBlock metadata.element %}]
40
+ {% elif metadata.type == "Dictionary" %}
41
+ [String: Any]
42
+ {% elif metadata.type == "Optional" %}
43
+ Any?
44
+ {% else %}
45
+ {{metadata.type}}
46
+ {% endif %}
47
+ {% endfilter %}{% endmacro %}
48
+ {% macro propertyBlock key metadata data %}{% filter removeNewlines:"leading" %}
49
+ {% set propertyName %}{{key|swiftIdentifier:"pretty"|lowerFirstWord|escapeReservedKeywords}}{% endset %}
50
+ {% set propertyType %}{% call typeBlock metadata %}{% endset %}
51
+ static let {{propertyName}}: {{propertyType}} = {% call valueBlock data[key] metadata %}
52
+ {% endfilter %}{% endmacro %}
53
+ {% macro valueBlock value metadata %}{% filter removeNewlines:"leading" %}
54
+ {% if metadata.type == "String" %}
55
+ "{{ value }}"
56
+ {% elif metadata.type == "Optional" %}
57
+ nil
58
+ {% elif metadata.type == "Array" and value %}
59
+ [{% for value in value %}
60
+ {% call valueBlock value metadata.element.items[forloop.counter0]|default:metadata.element %}
61
+ {{ ", " if not forloop.last }}
62
+ {% endfor %}]
63
+ {% elif metadata.type == "Dictionary" %}
64
+ [{% for key,value in value %}
65
+ "{{key}}": {% call valueBlock value metadata.properties[key] %}
66
+ {{ ", " if not forloop.last }}
67
+ {% empty %}
68
+ :
69
+ {% endfor %}]
70
+ {% elif metadata.type == "Bool" %}
71
+ {% if value %}true{% else %}false{% endif %}
72
+ {% else %}
73
+ {{ value }}
74
+ {% endif %}
75
+ {% endfilter %}{% endmacro %}
76
+
77
+ // swiftlint:disable identifier_name line_length number_separator type_body_length
78
+ {{accessModifier}} enum {{param.enumName|default:"YAMLFiles"}} {
79
+ {% if files.count > 1 or param.forceFileNameEnum %}
80
+ {% for file in files %}
81
+ {{accessModifier}} enum {{file.name|swiftIdentifier:"pretty"|escapeReservedKeywords}} {
82
+ {% filter indent:2 %}{% call fileBlock file %}{% endfilter %}
83
+ }
84
+ {% endfor %}
85
+ {% else %}
86
+ {% call fileBlock files.first %}
87
+ {% endif %}
88
+ }
89
+ // swiftlint:enable identifier_name line_length number_separator type_body_length
90
+ {% else %}
91
+ // No files found
92
+ {% endif %}
@@ -0,0 +1,92 @@
1
+ // swiftlint:disable all
2
+ // Generated using SwiftGen — https://github.com/SwiftGen/SwiftGen
3
+
4
+ {% if files %}
5
+ {% set accessModifier %}{% if param.publicAccess %}public{% else %}internal{% endif %}{% endset %}
6
+ {% set documentPrefix %}{{param.documentName|default:"Document"}}{% endset %}
7
+ import Foundation
8
+
9
+ // swiftlint:disable superfluous_disable_command
10
+ // swiftlint:disable file_length
11
+
12
+ // MARK: - YAML Files
13
+ {% macro fileBlock file %}
14
+ {% if file.documents.count > 1 %}
15
+ {% for document in file.documents %}
16
+ {% set documentName %}{{documentPrefix}}{{forloop.counter}}{% endset %}
17
+ {{accessModifier}} enum {{documentName|swiftIdentifier:"pretty"|escapeReservedKeywords}} {
18
+ {% filter indent:2 %}{% call documentBlock file document %}{% endfilter %}
19
+ }
20
+ {% endfor %}
21
+ {% else %}
22
+ {% call documentBlock file file.documents.first %}
23
+ {% endif %}
24
+ {% endmacro %}
25
+ {% macro documentBlock file document %}
26
+ {% set rootType %}{% call typeBlock document.metadata %}{% endset %}
27
+ {% if document.metadata.type == "Array" %}
28
+ {{accessModifier}} static let items: {{rootType}} = {% call valueBlock document.data document.metadata %}
29
+ {% elif document.metadata.type == "Dictionary" %}
30
+ {% for key,value in document.metadata.properties %}
31
+ {{accessModifier}} {% call propertyBlock key value document.data %}
32
+ {% endfor %}
33
+ {% else %}
34
+ {{accessModifier}} static let value: {{rootType}} = {% call valueBlock document.data document.metadata %}
35
+ {% endif %}
36
+ {% endmacro %}
37
+ {% macro typeBlock metadata %}{% filter removeNewlines:"leading" %}
38
+ {% if metadata.type == "Array" %}
39
+ [{% call typeBlock metadata.element %}]
40
+ {% elif metadata.type == "Dictionary" %}
41
+ [String: Any]
42
+ {% elif metadata.type == "Optional" %}
43
+ Any?
44
+ {% else %}
45
+ {{metadata.type}}
46
+ {% endif %}
47
+ {% endfilter %}{% endmacro %}
48
+ {% macro propertyBlock key metadata data %}{% filter removeNewlines:"leading" %}
49
+ {% set propertyName %}{{key|swiftIdentifier:"pretty"|lowerFirstWord|escapeReservedKeywords}}{% endset %}
50
+ {% set propertyType %}{% call typeBlock metadata %}{% endset %}
51
+ static let {{propertyName}}: {{propertyType}} = {% call valueBlock data[key] metadata %}
52
+ {% endfilter %}{% endmacro %}
53
+ {% macro valueBlock value metadata %}{% filter removeNewlines:"leading" %}
54
+ {% if metadata.type == "String" %}
55
+ "{{ value }}"
56
+ {% elif metadata.type == "Optional" %}
57
+ nil
58
+ {% elif metadata.type == "Array" and value %}
59
+ [{% for value in value %}
60
+ {% call valueBlock value metadata.element.items[forloop.counter0]|default:metadata.element %}
61
+ {{ ", " if not forloop.last }}
62
+ {% endfor %}]
63
+ {% elif metadata.type == "Dictionary" %}
64
+ [{% for key,value in value %}
65
+ "{{key}}": {% call valueBlock value metadata.properties[key] %}
66
+ {{ ", " if not forloop.last }}
67
+ {% empty %}
68
+ :
69
+ {% endfor %}]
70
+ {% elif metadata.type == "Bool" %}
71
+ {% if value %}true{% else %}false{% endif %}
72
+ {% else %}
73
+ {{ value }}
74
+ {% endif %}
75
+ {% endfilter %}{% endmacro %}
76
+
77
+ // swiftlint:disable identifier_name line_length number_separator type_body_length
78
+ {{accessModifier}} enum {{param.enumName|default:"YAMLFiles"}} {
79
+ {% if files.count > 1 or param.forceFileNameEnum %}
80
+ {% for file in files %}
81
+ {{accessModifier}} enum {{file.name|swiftIdentifier:"pretty"|escapeReservedKeywords}} {
82
+ {% filter indent:2 %}{% call fileBlock file %}{% endfilter %}
83
+ }
84
+ {% endfor %}
85
+ {% else %}
86
+ {% call fileBlock files.first %}
87
+ {% endif %}
88
+ }
89
+ // swiftlint:enable identifier_name line_length number_separator type_body_length
90
+ {% else %}
91
+ // No files found
92
+ {% endif %}
@@ -0,0 +1,406 @@
1
+ // !$*UTF8*$!
2
+ {
3
+ archiveVersion = 1;
4
+ classes = {
5
+ };
6
+ objectVersion = 50;
7
+ objects = {
8
+
9
+ /* Begin PBXBuildFile section */
10
+ 19F16C0A26248ED300320CD8 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 19F16C0926248ED300320CD8 /* AppDelegate.swift */; };
11
+ 19F16C0C26248ED300320CD8 /* SceneDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 19F16C0B26248ED300320CD8 /* SceneDelegate.swift */; };
12
+ 19F16C0E26248ED300320CD8 /* ContentView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 19F16C0D26248ED300320CD8 /* ContentView.swift */; };
13
+ 19F16C1026248ED800320CD8 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 19F16C0F26248ED800320CD8 /* Assets.xcassets */; };
14
+ 19F16C1626248ED800320CD8 /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 19F16C1426248ED800320CD8 /* LaunchScreen.storyboard */; };
15
+ 872BD1F5262EBFF6000DD92F /* localizable.strings in Resources */ = {isa = PBXBuildFile; fileRef = 872BD1F7262EBFF6000DD92F /* localizable.strings */; };
16
+ F758E87208DF3790DD862ECF /* Pods_Test.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F22771268A2A88218DE29A79 /* Pods_Test.framework */; };
17
+ /* End PBXBuildFile section */
18
+
19
+ /* Begin PBXFileReference section */
20
+ 19F16C0626248ED300320CD8 /* Test.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Test.app; sourceTree = BUILT_PRODUCTS_DIR; };
21
+ 19F16C0926248ED300320CD8 /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = "<group>"; };
22
+ 19F16C0B26248ED300320CD8 /* SceneDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SceneDelegate.swift; sourceTree = "<group>"; };
23
+ 19F16C0D26248ED300320CD8 /* ContentView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ContentView.swift; sourceTree = "<group>"; };
24
+ 19F16C0F26248ED800320CD8 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = "<group>"; };
25
+ 19F16C1726248ED800320CD8 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
26
+ 5E65D4943489279AC0F84B66 /* Pods-Test.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Test.release.xcconfig"; path = "Target Support Files/Pods-Test/Pods-Test.release.xcconfig"; sourceTree = "<group>"; };
27
+ 64B87546166B5285BEEDE7A3 /* Pods-Test.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Test.debug.xcconfig"; path = "Target Support Files/Pods-Test/Pods-Test.debug.xcconfig"; sourceTree = "<group>"; };
28
+ 872BD1F6262EBFF6000DD92F /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/localizable.strings; sourceTree = "<group>"; };
29
+ 872BD1F9262EC02A000DD92F /* fr */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = fr; path = fr.lproj/localizable.strings; sourceTree = "<group>"; };
30
+ 87D907CB263C43EB001320B1 /* fr */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = fr; path = fr.lproj/LaunchScreen.storyboard; sourceTree = "<group>"; };
31
+ 87D907CC263C441F001320B1 /* en */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = en; path = en.lproj/LaunchScreen.storyboard; sourceTree = "<group>"; };
32
+ F22771268A2A88218DE29A79 /* Pods_Test.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Test.framework; sourceTree = BUILT_PRODUCTS_DIR; };
33
+ /* End PBXFileReference section */
34
+
35
+ /* Begin PBXFrameworksBuildPhase section */
36
+ 19F16C0326248ED300320CD8 /* Frameworks */ = {
37
+ isa = PBXFrameworksBuildPhase;
38
+ buildActionMask = 2147483647;
39
+ files = (
40
+ F758E87208DF3790DD862ECF /* Pods_Test.framework in Frameworks */,
41
+ );
42
+ runOnlyForDeploymentPostprocessing = 0;
43
+ };
44
+ /* End PBXFrameworksBuildPhase section */
45
+
46
+ /* Begin PBXGroup section */
47
+ 19F16BFD26248ED300320CD8 = {
48
+ isa = PBXGroup;
49
+ children = (
50
+ 19F16C0826248ED300320CD8 /* Test */,
51
+ 19F16C0726248ED300320CD8 /* Products */,
52
+ 61C74146D6CD6487F4CA85B2 /* Pods */,
53
+ 599CE7CDBA7210C466ABEBBE /* Frameworks */,
54
+ );
55
+ sourceTree = "<group>";
56
+ };
57
+ 19F16C0726248ED300320CD8 /* Products */ = {
58
+ isa = PBXGroup;
59
+ children = (
60
+ 19F16C0626248ED300320CD8 /* Test.app */,
61
+ );
62
+ name = Products;
63
+ sourceTree = "<group>";
64
+ };
65
+ 19F16C0826248ED300320CD8 /* Test */ = {
66
+ isa = PBXGroup;
67
+ children = (
68
+ 19F16C0926248ED300320CD8 /* AppDelegate.swift */,
69
+ 19F16C0B26248ED300320CD8 /* SceneDelegate.swift */,
70
+ 19F16C0D26248ED300320CD8 /* ContentView.swift */,
71
+ 19F16C0F26248ED800320CD8 /* Assets.xcassets */,
72
+ 19F16C1426248ED800320CD8 /* LaunchScreen.storyboard */,
73
+ 872BD1F7262EBFF6000DD92F /* localizable.strings */,
74
+ 19F16C1726248ED800320CD8 /* Info.plist */,
75
+ );
76
+ path = Test;
77
+ sourceTree = "<group>";
78
+ };
79
+ 599CE7CDBA7210C466ABEBBE /* Frameworks */ = {
80
+ isa = PBXGroup;
81
+ children = (
82
+ F22771268A2A88218DE29A79 /* Pods_Test.framework */,
83
+ );
84
+ name = Frameworks;
85
+ sourceTree = "<group>";
86
+ };
87
+ 61C74146D6CD6487F4CA85B2 /* Pods */ = {
88
+ isa = PBXGroup;
89
+ children = (
90
+ 64B87546166B5285BEEDE7A3 /* Pods-Test.debug.xcconfig */,
91
+ 5E65D4943489279AC0F84B66 /* Pods-Test.release.xcconfig */,
92
+ );
93
+ path = Pods;
94
+ sourceTree = "<group>";
95
+ };
96
+ /* End PBXGroup section */
97
+
98
+ /* Begin PBXNativeTarget section */
99
+ 19F16C0526248ED300320CD8 /* Test */ = {
100
+ isa = PBXNativeTarget;
101
+ buildConfigurationList = 19F16C1A26248ED800320CD8 /* Build configuration list for PBXNativeTarget "Test" */;
102
+ buildPhases = (
103
+ F7A021422BFD88BAFDC632B7 /* [CP] Check Pods Manifest.lock */,
104
+ 19F16C0226248ED300320CD8 /* Sources */,
105
+ 19F16C0326248ED300320CD8 /* Frameworks */,
106
+ 19F16C0426248ED300320CD8 /* Resources */,
107
+ );
108
+ buildRules = (
109
+ );
110
+ dependencies = (
111
+ );
112
+ name = Test;
113
+ productName = Test;
114
+ productReference = 19F16C0626248ED300320CD8 /* Test.app */;
115
+ productType = "com.apple.product-type.application";
116
+ };
117
+ /* End PBXNativeTarget section */
118
+
119
+ /* Begin PBXProject section */
120
+ 19F16BFE26248ED300320CD8 /* Project object */ = {
121
+ isa = PBXProject;
122
+ attributes = {
123
+ LastSwiftUpdateCheck = 1240;
124
+ LastUpgradeCheck = 1240;
125
+ TargetAttributes = {
126
+ 19F16C0526248ED300320CD8 = {
127
+ CreatedOnToolsVersion = 12.4;
128
+ };
129
+ };
130
+ };
131
+ buildConfigurationList = 19F16C0126248ED300320CD8 /* Build configuration list for PBXProject "Test" */;
132
+ compatibilityVersion = "Xcode 9.3";
133
+ developmentRegion = en;
134
+ hasScannedForEncodings = 0;
135
+ knownRegions = (
136
+ en,
137
+ fr,
138
+ );
139
+ mainGroup = 19F16BFD26248ED300320CD8;
140
+ productRefGroup = 19F16C0726248ED300320CD8 /* Products */;
141
+ projectDirPath = "";
142
+ projectRoot = "";
143
+ targets = (
144
+ 19F16C0526248ED300320CD8 /* Test */,
145
+ );
146
+ };
147
+ /* End PBXProject section */
148
+
149
+ /* Begin PBXResourcesBuildPhase section */
150
+ 19F16C0426248ED300320CD8 /* Resources */ = {
151
+ isa = PBXResourcesBuildPhase;
152
+ buildActionMask = 2147483647;
153
+ files = (
154
+ 19F16C1626248ED800320CD8 /* LaunchScreen.storyboard in Resources */,
155
+ 872BD1F5262EBFF6000DD92F /* localizable.strings in Resources */,
156
+ 19F16C1026248ED800320CD8 /* Assets.xcassets in Resources */,
157
+ );
158
+ runOnlyForDeploymentPostprocessing = 0;
159
+ };
160
+ /* End PBXResourcesBuildPhase section */
161
+
162
+ /* Begin PBXShellScriptBuildPhase section */
163
+ F7A021422BFD88BAFDC632B7 /* [CP] Check Pods Manifest.lock */ = {
164
+ isa = PBXShellScriptBuildPhase;
165
+ buildActionMask = 2147483647;
166
+ files = (
167
+ );
168
+ inputFileListPaths = (
169
+ );
170
+ inputPaths = (
171
+ "${PODS_PODFILE_DIR_PATH}/Podfile.lock",
172
+ "${PODS_ROOT}/Manifest.lock",
173
+ );
174
+ name = "[CP] Check Pods Manifest.lock";
175
+ outputFileListPaths = (
176
+ );
177
+ outputPaths = (
178
+ "$(DERIVED_FILE_DIR)/Pods-Test-checkManifestLockResult.txt",
179
+ );
180
+ runOnlyForDeploymentPostprocessing = 0;
181
+ shellPath = /bin/sh;
182
+ shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n";
183
+ showEnvVarsInLog = 0;
184
+ };
185
+ /* End PBXShellScriptBuildPhase section */
186
+
187
+ /* Begin PBXSourcesBuildPhase section */
188
+ 19F16C0226248ED300320CD8 /* Sources */ = {
189
+ isa = PBXSourcesBuildPhase;
190
+ buildActionMask = 2147483647;
191
+ files = (
192
+ 19F16C0A26248ED300320CD8 /* AppDelegate.swift in Sources */,
193
+ 19F16C0C26248ED300320CD8 /* SceneDelegate.swift in Sources */,
194
+ 19F16C0E26248ED300320CD8 /* ContentView.swift in Sources */,
195
+ );
196
+ runOnlyForDeploymentPostprocessing = 0;
197
+ };
198
+ /* End PBXSourcesBuildPhase section */
199
+
200
+ /* Begin PBXVariantGroup section */
201
+ 19F16C1426248ED800320CD8 /* LaunchScreen.storyboard */ = {
202
+ isa = PBXVariantGroup;
203
+ children = (
204
+ 87D907CB263C43EB001320B1 /* fr */,
205
+ 87D907CC263C441F001320B1 /* en */,
206
+ );
207
+ name = LaunchScreen.storyboard;
208
+ sourceTree = "<group>";
209
+ };
210
+ 872BD1F7262EBFF6000DD92F /* localizable.strings */ = {
211
+ isa = PBXVariantGroup;
212
+ children = (
213
+ 872BD1F6262EBFF6000DD92F /* en */,
214
+ 872BD1F9262EC02A000DD92F /* fr */,
215
+ );
216
+ name = localizable.strings;
217
+ sourceTree = "<group>";
218
+ };
219
+ /* End PBXVariantGroup section */
220
+
221
+ /* Begin XCBuildConfiguration section */
222
+ 19F16C1826248ED800320CD8 /* Debug */ = {
223
+ isa = XCBuildConfiguration;
224
+ buildSettings = {
225
+ ALWAYS_SEARCH_USER_PATHS = NO;
226
+ CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES;
227
+ CLANG_ANALYZER_NONNULL = YES;
228
+ CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
229
+ CLANG_CXX_LANGUAGE_STANDARD = "gnu++14";
230
+ CLANG_CXX_LIBRARY = "libc++";
231
+ CLANG_ENABLE_MODULES = YES;
232
+ CLANG_ENABLE_OBJC_ARC = YES;
233
+ CLANG_ENABLE_OBJC_WEAK = YES;
234
+ CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
235
+ CLANG_WARN_BOOL_CONVERSION = YES;
236
+ CLANG_WARN_COMMA = YES;
237
+ CLANG_WARN_CONSTANT_CONVERSION = YES;
238
+ CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
239
+ CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
240
+ CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
241
+ CLANG_WARN_EMPTY_BODY = YES;
242
+ CLANG_WARN_ENUM_CONVERSION = YES;
243
+ CLANG_WARN_INFINITE_RECURSION = YES;
244
+ CLANG_WARN_INT_CONVERSION = YES;
245
+ CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
246
+ CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
247
+ CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
248
+ CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
249
+ CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES;
250
+ CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
251
+ CLANG_WARN_STRICT_PROTOTYPES = YES;
252
+ CLANG_WARN_SUSPICIOUS_MOVE = YES;
253
+ CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE;
254
+ CLANG_WARN_UNREACHABLE_CODE = YES;
255
+ CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
256
+ COPY_PHASE_STRIP = NO;
257
+ DEBUG_INFORMATION_FORMAT = dwarf;
258
+ ENABLE_STRICT_OBJC_MSGSEND = YES;
259
+ ENABLE_TESTABILITY = YES;
260
+ GCC_C_LANGUAGE_STANDARD = gnu11;
261
+ GCC_DYNAMIC_NO_PIC = NO;
262
+ GCC_NO_COMMON_BLOCKS = YES;
263
+ GCC_OPTIMIZATION_LEVEL = 0;
264
+ GCC_PREPROCESSOR_DEFINITIONS = (
265
+ "DEBUG=1",
266
+ "$(inherited)",
267
+ );
268
+ GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
269
+ GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
270
+ GCC_WARN_UNDECLARED_SELECTOR = YES;
271
+ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
272
+ GCC_WARN_UNUSED_FUNCTION = YES;
273
+ GCC_WARN_UNUSED_VARIABLE = YES;
274
+ IPHONEOS_DEPLOYMENT_TARGET = 14.4;
275
+ MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE;
276
+ MTL_FAST_MATH = YES;
277
+ ONLY_ACTIVE_ARCH = YES;
278
+ SDKROOT = iphoneos;
279
+ SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG;
280
+ SWIFT_OPTIMIZATION_LEVEL = "-Onone";
281
+ };
282
+ name = Debug;
283
+ };
284
+ 19F16C1926248ED800320CD8 /* Release */ = {
285
+ isa = XCBuildConfiguration;
286
+ buildSettings = {
287
+ ALWAYS_SEARCH_USER_PATHS = NO;
288
+ CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES;
289
+ CLANG_ANALYZER_NONNULL = YES;
290
+ CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
291
+ CLANG_CXX_LANGUAGE_STANDARD = "gnu++14";
292
+ CLANG_CXX_LIBRARY = "libc++";
293
+ CLANG_ENABLE_MODULES = YES;
294
+ CLANG_ENABLE_OBJC_ARC = YES;
295
+ CLANG_ENABLE_OBJC_WEAK = YES;
296
+ CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
297
+ CLANG_WARN_BOOL_CONVERSION = YES;
298
+ CLANG_WARN_COMMA = YES;
299
+ CLANG_WARN_CONSTANT_CONVERSION = YES;
300
+ CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
301
+ CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
302
+ CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
303
+ CLANG_WARN_EMPTY_BODY = YES;
304
+ CLANG_WARN_ENUM_CONVERSION = YES;
305
+ CLANG_WARN_INFINITE_RECURSION = YES;
306
+ CLANG_WARN_INT_CONVERSION = YES;
307
+ CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
308
+ CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
309
+ CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
310
+ CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
311
+ CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES;
312
+ CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
313
+ CLANG_WARN_STRICT_PROTOTYPES = YES;
314
+ CLANG_WARN_SUSPICIOUS_MOVE = YES;
315
+ CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE;
316
+ CLANG_WARN_UNREACHABLE_CODE = YES;
317
+ CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
318
+ COPY_PHASE_STRIP = NO;
319
+ DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
320
+ ENABLE_NS_ASSERTIONS = NO;
321
+ ENABLE_STRICT_OBJC_MSGSEND = YES;
322
+ GCC_C_LANGUAGE_STANDARD = gnu11;
323
+ GCC_NO_COMMON_BLOCKS = YES;
324
+ GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
325
+ GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
326
+ GCC_WARN_UNDECLARED_SELECTOR = YES;
327
+ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
328
+ GCC_WARN_UNUSED_FUNCTION = YES;
329
+ GCC_WARN_UNUSED_VARIABLE = YES;
330
+ IPHONEOS_DEPLOYMENT_TARGET = 14.4;
331
+ MTL_ENABLE_DEBUG_INFO = NO;
332
+ MTL_FAST_MATH = YES;
333
+ SDKROOT = iphoneos;
334
+ SWIFT_COMPILATION_MODE = wholemodule;
335
+ SWIFT_OPTIMIZATION_LEVEL = "-O";
336
+ VALIDATE_PRODUCT = YES;
337
+ };
338
+ name = Release;
339
+ };
340
+ 19F16C1B26248ED800320CD8 /* Debug */ = {
341
+ isa = XCBuildConfiguration;
342
+ baseConfigurationReference = 64B87546166B5285BEEDE7A3 /* Pods-Test.debug.xcconfig */;
343
+ buildSettings = {
344
+ ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
345
+ ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor;
346
+ CODE_SIGN_STYLE = Automatic;
347
+ DEVELOPMENT_ASSET_PATHS = "\"Test/Preview Content\"";
348
+ ENABLE_PREVIEWS = YES;
349
+ INFOPLIST_FILE = Test/Info.plist;
350
+ LD_RUNPATH_SEARCH_PATHS = (
351
+ "$(inherited)",
352
+ "@executable_path/Frameworks",
353
+ );
354
+ PRODUCT_BUNDLE_IDENTIFIER = fabernovel.Test;
355
+ PRODUCT_NAME = "$(TARGET_NAME)";
356
+ SWIFT_VERSION = 5.0;
357
+ TARGETED_DEVICE_FAMILY = "1,2";
358
+ };
359
+ name = Debug;
360
+ };
361
+ 19F16C1C26248ED800320CD8 /* Release */ = {
362
+ isa = XCBuildConfiguration;
363
+ baseConfigurationReference = 5E65D4943489279AC0F84B66 /* Pods-Test.release.xcconfig */;
364
+ buildSettings = {
365
+ ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
366
+ ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor;
367
+ CODE_SIGN_STYLE = Automatic;
368
+ DEVELOPMENT_ASSET_PATHS = "\"Test/Preview Content\"";
369
+ ENABLE_PREVIEWS = YES;
370
+ INFOPLIST_FILE = Test/Info.plist;
371
+ LD_RUNPATH_SEARCH_PATHS = (
372
+ "$(inherited)",
373
+ "@executable_path/Frameworks",
374
+ );
375
+ PRODUCT_BUNDLE_IDENTIFIER = fabernovel.Test;
376
+ PRODUCT_NAME = "$(TARGET_NAME)";
377
+ SWIFT_VERSION = 5.0;
378
+ TARGETED_DEVICE_FAMILY = "1,2";
379
+ };
380
+ name = Release;
381
+ };
382
+ /* End XCBuildConfiguration section */
383
+
384
+ /* Begin XCConfigurationList section */
385
+ 19F16C0126248ED300320CD8 /* Build configuration list for PBXProject "Test" */ = {
386
+ isa = XCConfigurationList;
387
+ buildConfigurations = (
388
+ 19F16C1826248ED800320CD8 /* Debug */,
389
+ 19F16C1926248ED800320CD8 /* Release */,
390
+ );
391
+ defaultConfigurationIsVisible = 0;
392
+ defaultConfigurationName = Release;
393
+ };
394
+ 19F16C1A26248ED800320CD8 /* Build configuration list for PBXNativeTarget "Test" */ = {
395
+ isa = XCConfigurationList;
396
+ buildConfigurations = (
397
+ 19F16C1B26248ED800320CD8 /* Debug */,
398
+ 19F16C1C26248ED800320CD8 /* Release */,
399
+ );
400
+ defaultConfigurationIsVisible = 0;
401
+ defaultConfigurationName = Release;
402
+ };
403
+ /* End XCConfigurationList section */
404
+ };
405
+ rootObject = 19F16BFE26248ED300320CD8 /* Project object */;
406
+ }