xcres 0.4.4 → 0.5.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 (109) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile.lock +12 -9
  3. data/README.md +43 -5
  4. data/lib/xcres/analyzer/strings_analyzer.rb +1 -1
  5. data/lib/xcres/builder/resources_builder.rb +77 -12
  6. data/lib/xcres/command/build_command.rb +6 -1
  7. data/lib/xcres/command/install_command.rb +23 -16
  8. data/lib/xcres/command/project_command.rb +1 -0
  9. data/lib/xcres/version.rb +1 -1
  10. data/spec/fixtures/Example/Example/en.lproj/Localizable.strings +1 -0
  11. data/spec/integration.rb +8 -0
  12. data/spec/integration/build-keyword-clash/after/R.h +1 -3
  13. data/spec/integration/build-keyword-clash/after/R.m +0 -2
  14. data/spec/integration/build-swift/after/Example/Example.xcodeproj.yaml +168 -0
  15. data/spec/integration/build-swift/after/Example/Example/AppDelegate.h +15 -0
  16. data/spec/integration/build-swift/after/Example/Example/AppDelegate.m +49 -0
  17. data/spec/integration/build-swift/after/Example/Example/Example-Info.plist +38 -0
  18. data/spec/integration/build-swift/after/Example/Example/Example-Prefix.pch +16 -0
  19. data/spec/integration/build-swift/after/Example/Example/Icons.bundle/tab_bar/tabbar_list.png +0 -0
  20. data/spec/integration/build-swift/after/Example/Example/Icons.bundle/tab_bar/tabbar_list@2x.png +0 -0
  21. data/spec/integration/build-swift/after/Example/Example/Icons.bundle/tab_bar/tabbar_map.png +0 -0
  22. data/spec/integration/build-swift/after/Example/Example/Icons.bundle/tab_bar/tabbar_map@2x.png +0 -0
  23. data/spec/integration/build-swift/after/Example/Example/Images.xcassets/AppIcon.appiconset/Contents.json +28 -0
  24. data/spec/integration/build-swift/after/Example/Example/Images.xcassets/Cats/GrumpyCat.imageset/Contents.json +23 -0
  25. data/spec/integration/build-swift/after/Example/Example/Images.xcassets/Cats/GrumpyCat.imageset/GrumpyCat.jpg +0 -0
  26. data/spec/integration/build-swift/after/Example/Example/Images.xcassets/Cats/GrumpyCat.imageset/GrumpyCat@2x.jpg +0 -0
  27. data/spec/integration/build-swift/after/Example/Example/Images.xcassets/Cats/GrumpyCat.imageset/GrumpyCat@3x.jpg +0 -0
  28. data/spec/integration/build-swift/after/Example/Example/Images.xcassets/Doge.imageset/Contents.json +22 -0
  29. data/spec/integration/build-swift/after/Example/Example/Images.xcassets/Doge.imageset/doge.png +0 -0
  30. data/spec/integration/build-swift/after/Example/Example/Images.xcassets/Doge.imageset/doge@2x.png +0 -0
  31. data/spec/integration/build-swift/after/Example/Example/Images.xcassets/LaunchImage.launchimage/Contents.json +23 -0
  32. data/spec/integration/build-swift/after/Example/Example/Images/doge.jpeg +0 -0
  33. data/spec/integration/build-swift/after/Example/Example/Images/nyanCat.png +0 -0
  34. data/spec/integration/build-swift/after/Example/Example/de.lproj/Localizable.strings +12 -0
  35. data/spec/integration/build-swift/after/Example/Example/en.lproj/InfoPlist.strings +2 -0
  36. data/spec/integration/build-swift/after/Example/Example/en.lproj/Localizable.strings +15 -0
  37. data/spec/integration/build-swift/after/Example/Example/main.m +18 -0
  38. data/spec/integration/build-swift/after/R.swift +47 -0
  39. data/spec/integration/build-swift/after/execution_output.txt +19 -0
  40. data/spec/integration/build-swift/before/Example/Example.xcodeproj/project.pbxproj +453 -0
  41. data/spec/integration/build-swift/before/Example/Example.xcodeproj/project.xcworkspace/contents.xcworkspacedata +7 -0
  42. data/spec/integration/build-swift/before/Example/Example/AppDelegate.h +15 -0
  43. data/spec/integration/build-swift/before/Example/Example/AppDelegate.m +49 -0
  44. data/spec/integration/build-swift/before/Example/Example/Example-Info.plist +38 -0
  45. data/spec/integration/build-swift/before/Example/Example/Example-Prefix.pch +16 -0
  46. data/spec/integration/build-swift/before/Example/Example/Icons.bundle/tab_bar/tabbar_list.png +0 -0
  47. data/spec/integration/build-swift/before/Example/Example/Icons.bundle/tab_bar/tabbar_list@2x.png +0 -0
  48. data/spec/integration/build-swift/before/Example/Example/Icons.bundle/tab_bar/tabbar_map.png +0 -0
  49. data/spec/integration/build-swift/before/Example/Example/Icons.bundle/tab_bar/tabbar_map@2x.png +0 -0
  50. data/spec/integration/build-swift/before/Example/Example/Images.xcassets/AppIcon.appiconset/Contents.json +28 -0
  51. data/spec/integration/build-swift/before/Example/Example/Images.xcassets/Cats/GrumpyCat.imageset/Contents.json +23 -0
  52. data/spec/integration/build-swift/before/Example/Example/Images.xcassets/Cats/GrumpyCat.imageset/GrumpyCat.jpg +0 -0
  53. data/spec/integration/build-swift/before/Example/Example/Images.xcassets/Cats/GrumpyCat.imageset/GrumpyCat@2x.jpg +0 -0
  54. data/spec/integration/build-swift/before/Example/Example/Images.xcassets/Cats/GrumpyCat.imageset/GrumpyCat@3x.jpg +0 -0
  55. data/spec/integration/build-swift/before/Example/Example/Images.xcassets/Doge.imageset/Contents.json +22 -0
  56. data/spec/integration/build-swift/before/Example/Example/Images.xcassets/Doge.imageset/doge.png +0 -0
  57. data/spec/integration/build-swift/before/Example/Example/Images.xcassets/Doge.imageset/doge@2x.png +0 -0
  58. data/spec/integration/build-swift/before/Example/Example/Images.xcassets/LaunchImage.launchimage/Contents.json +23 -0
  59. data/spec/integration/build-swift/before/Example/Example/Images/doge.jpeg +0 -0
  60. data/spec/integration/build-swift/before/Example/Example/Images/nyanCat.png +0 -0
  61. data/spec/integration/build-swift/before/Example/Example/de.lproj/Localizable.strings +12 -0
  62. data/spec/integration/build-swift/before/Example/Example/en.lproj/InfoPlist.strings +2 -0
  63. data/spec/integration/build-swift/before/Example/Example/en.lproj/Localizable.strings +15 -0
  64. data/spec/integration/build-swift/before/Example/Example/main.m +18 -0
  65. data/spec/integration/build-var-infoplist/after/R.h +1 -1
  66. data/spec/integration/build/after/R.h +1 -1
  67. data/spec/integration/install-again/after/Example/Example.xcodeproj.yaml +1 -1
  68. data/spec/integration/install-again/after/Example/Example/Resources/R.h +1 -3
  69. data/spec/integration/install-again/after/Example/Example/Resources/R.m +0 -2
  70. data/spec/integration/install-again/after/execution_output.txt +0 -1
  71. data/spec/integration/install-again/before/Example/Example/Resources/R.h +1 -1
  72. data/spec/integration/install-again/before/Example/Example/Resources/R.m +0 -2
  73. data/spec/integration/install-moved-supporting-files/after/Example/Example.xcodeproj.yaml +1 -1
  74. data/spec/integration/install-moved-supporting-files/after/Example/Supporting_Files/Resources/R.h +1 -3
  75. data/spec/integration/install-moved-supporting-files/after/Example/Supporting_Files/Resources/R.m +0 -2
  76. data/spec/integration/install-no-supporting-files/after/Example/Example.xcodeproj.yaml +1 -1
  77. data/spec/integration/install-no-supporting-files/after/Example/Resources/R.h +1 -3
  78. data/spec/integration/install-no-supporting-files/after/Example/Resources/R.m +0 -2
  79. data/spec/integration/install-swift/after/Example/Example.xcodeproj.yaml +171 -0
  80. data/spec/integration/install-swift/after/Example/Example.xcodeproj/project.pbxproj +898 -0
  81. data/spec/integration/install-swift/after/Example/Example.xcodeproj/project.xcworkspace/contents.xcworkspacedata +7 -0
  82. data/spec/integration/install-swift/after/Example/Example/AppDelegate.h +15 -0
  83. data/spec/integration/install-swift/after/Example/Example/AppDelegate.m +49 -0
  84. data/spec/integration/install-swift/after/Example/Example/Example-Info.plist +38 -0
  85. data/spec/integration/install-swift/after/Example/Example/Example-Prefix.pch +16 -0
  86. data/spec/integration/install-swift/after/Example/Example/Images.xcassets/AppIcon.appiconset/Contents.json +23 -0
  87. data/spec/integration/install-swift/after/Example/Example/Images.xcassets/LaunchImage.launchimage/Contents.json +23 -0
  88. data/spec/integration/install-swift/after/Example/Example/Resources/R.swift +23 -0
  89. data/spec/integration/install-swift/after/Example/Example/en.lproj/InfoPlist.strings +2 -0
  90. data/spec/integration/install-swift/after/Example/Example/main.m +18 -0
  91. data/spec/integration/install-swift/after/execution_output.txt +22 -0
  92. data/spec/integration/install-swift/before/Example/Example.xcodeproj/project.pbxproj +421 -0
  93. data/spec/integration/install-swift/before/Example/Example.xcodeproj/project.xcworkspace/contents.xcworkspacedata +7 -0
  94. data/spec/integration/install-swift/before/Example/Example/AppDelegate.h +15 -0
  95. data/spec/integration/install-swift/before/Example/Example/AppDelegate.m +49 -0
  96. data/spec/integration/install-swift/before/Example/Example/Example-Info.plist +38 -0
  97. data/spec/integration/install-swift/before/Example/Example/Example-Prefix.pch +16 -0
  98. data/spec/integration/install-swift/before/Example/Example/Images.xcassets/AppIcon.appiconset/Contents.json +23 -0
  99. data/spec/integration/install-swift/before/Example/Example/Images.xcassets/LaunchImage.launchimage/Contents.json +23 -0
  100. data/spec/integration/install-swift/before/Example/Example/en.lproj/InfoPlist.strings +2 -0
  101. data/spec/integration/install-swift/before/Example/Example/main.m +18 -0
  102. data/spec/integration/install/after/Example/Example.xcodeproj.yaml +1 -1
  103. data/spec/integration/install/after/Example/Example/Resources/R.h +1 -3
  104. data/spec/integration/install/after/Example/Example/Resources/R.m +0 -2
  105. data/spec/integration/version/after/execution_output.txt +1 -1
  106. data/spec/unit/analyzer/strings_analyzer_spec.rb +1 -0
  107. data/spec/unit/builder/resources_builder_spec.rb +43 -4
  108. data/xcres.gemspec +0 -1
  109. metadata +151 -17
@@ -0,0 +1,15 @@
1
+ /*
2
+ File.strings
3
+ Example
4
+
5
+ Created by Marius Rackwitz on 01.05.14.
6
+ Copyright (c) 2014 XCRes. All rights reserved.
7
+ */
8
+
9
+ // Foo Comment
10
+ "foo" = "Foo String";
11
+ "bar" = "Bar String";
12
+
13
+ // An Example Comment
14
+ "example" = "Lorem Ipsum";
15
+ "en_exclusive" = "Only in english";
@@ -0,0 +1,18 @@
1
+ //
2
+ // main.m
3
+ // Example
4
+ //
5
+ // Created by Marius Rackwitz on 01.05.14.
6
+ // Copyright (c) 2014 XCRes. All rights reserved.
7
+ //
8
+
9
+ #import <UIKit/UIKit.h>
10
+
11
+ #import "AppDelegate.h"
12
+
13
+ int main(int argc, char * argv[])
14
+ {
15
+ @autoreleasepool {
16
+ return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]));
17
+ }
18
+ }
@@ -0,0 +1,47 @@
1
+ // generated by xcres
2
+ //
3
+ // DO NOT EDIT. This file is machine-generated and constantly overwritten.
4
+ // See https://github.com/mrackwitz/xcres for more info.
5
+ //
6
+
7
+ public class R {
8
+ public enum Icons: String {
9
+ /// tab_bar/tabbar_list.png
10
+ case tabBarList = "tab_bar/tabbar_list.png"
11
+ /// tab_bar/tabbar_map.png
12
+ case tabBarMap = "tab_bar/tabbar_map.png"
13
+ }
14
+ public enum Images: String {
15
+ /// doge.jpeg
16
+ case doge = "doge.jpeg"
17
+ }
18
+ public enum ImagesAssets: String {
19
+ /// AppIcon
20
+ case app = "AppIcon"
21
+ /// GrumpyCat
22
+ case catsGrumpy = "GrumpyCat"
23
+ /// Doge
24
+ case doge = "Doge"
25
+ /// LaunchImage
26
+ case launch = "LaunchImage"
27
+ }
28
+ public enum Strings: String {
29
+ /// Bar String
30
+ case bar = "bar"
31
+ /// Only in english
32
+ case enExclusive = "en_exclusive"
33
+ /// Lorem Ipsum
34
+ case example = "example"
35
+ /// Foo String
36
+ case foo = "foo"
37
+ }
38
+ }
39
+
40
+ public extension R.Strings {
41
+ public var localizedValue: String {
42
+ return NSLocalizedString(self.rawValue,
43
+ bundle: NSBundle(forClass: R.self),
44
+ comment: "")
45
+ }
46
+ }
47
+
@@ -0,0 +1,19 @@
1
+ xcres --verbose --no-ansi build --swift Example . 2>&1
2
+ Ⓥ Verbose mode is enabled.
3
+ ⚠ Argument XCODEPROJ is a directory. Try to locate the Xcode project in this directory.
4
+ ✓ Use Example/Example.xcodeproj as XCODEPROJ.
5
+ Ⓥ Found #1 resource bundles in project.
6
+ Ⓥ Found bundle Icons.bundle with #4 image files of #5 total files.
7
+ Ⓥ Add section for Icons with 2 elements
8
+ Ⓥ Found #1 image files in project.
9
+ Ⓥ Found #1 asset catalogs in project.
10
+ Ⓥ Found asset catalog Images.xcassets with #4 image files.
11
+ Ⓥ Add section for ImagesAssets with 4 elements
12
+ Ⓥ Strings files in project: ["en.lproj/InfoPlist.strings", "en.lproj/Localizable.strings", "de.lproj/Localizable.strings"]
13
+ Ⓥ Native development languages: ["en"]
14
+ Ⓥ Used languages for .strings files: ["en", "de"]
15
+ Ⓥ Preferred languages: ["en"]
16
+ Ⓥ Strings files after language selection: ["en.lproj/InfoPlist.strings", "en.lproj/Localizable.strings"]
17
+ Ⓥ Non-ignored .strings files: ["Example/Example/en.lproj/Localizable.strings"]
18
+ Ⓥ Found 4 keys in file Example/Example/en.lproj/Localizable.strings
19
+ ✓ Successfully updated: ROOT/tmp/integration/build-swift/R.swift
@@ -0,0 +1,453 @@
1
+ // !$*UTF8*$!
2
+ {
3
+ archiveVersion = 1;
4
+ classes = {
5
+ };
6
+ objectVersion = 46;
7
+ objects = {
8
+
9
+ /* Begin PBXBuildFile section */
10
+ 71239DA81912BFF70058657F /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 71239DA71912BFF70058657F /* Foundation.framework */; };
11
+ 71239DAA1912BFF70058657F /* CoreGraphics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 71239DA91912BFF70058657F /* CoreGraphics.framework */; };
12
+ 71239DAC1912BFF70058657F /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 71239DAB1912BFF70058657F /* UIKit.framework */; };
13
+ 71239DB21912BFF80058657F /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = 71239DB01912BFF70058657F /* InfoPlist.strings */; };
14
+ 71239DB41912BFF80058657F /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 71239DB31912BFF80058657F /* main.m */; };
15
+ 71239DB81912BFF80058657F /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 71239DB71912BFF80058657F /* AppDelegate.m */; };
16
+ 71239DBA1912BFF80058657F /* Images.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 71239DB91912BFF80058657F /* Images.xcassets */; };
17
+ 71239DC11912BFF80058657F /* XCTest.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 71239DC01912BFF80058657F /* XCTest.framework */; };
18
+ 71239DC21912BFF80058657F /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 71239DA71912BFF70058657F /* Foundation.framework */; };
19
+ 71239DC31912BFF80058657F /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 71239DAB1912BFF70058657F /* UIKit.framework */; };
20
+ 71239DDC1912C07E0058657F /* Localizable.strings in Resources */ = {isa = PBXBuildFile; fileRef = 71239DDE1912C07E0058657F /* Localizable.strings */; };
21
+ 715C078F198D029800316E8C /* Icons.bundle in Resources */ = {isa = PBXBuildFile; fileRef = 715C078C198D029800316E8C /* Icons.bundle */; };
22
+ 715C0790198D029800316E8C /* doge.jpeg in Resources */ = {isa = PBXBuildFile; fileRef = 715C078E198D029800316E8C /* doge.jpeg */; };
23
+ /* End PBXBuildFile section */
24
+
25
+ /* Begin PBXContainerItemProxy section */
26
+ 71239DC41912BFF80058657F /* PBXContainerItemProxy */ = {
27
+ isa = PBXContainerItemProxy;
28
+ containerPortal = 71239D9C1912BFF70058657F /* Project object */;
29
+ proxyType = 1;
30
+ remoteGlobalIDString = 71239DA31912BFF70058657F;
31
+ remoteInfo = Example;
32
+ };
33
+ /* End PBXContainerItemProxy section */
34
+
35
+ /* Begin PBXFileReference section */
36
+ 711976AD19A392DE005748B4 /* nyanCat.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = nyanCat.png; sourceTree = "<group>"; };
37
+ 71239DA41912BFF70058657F /* Example.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Example.app; sourceTree = BUILT_PRODUCTS_DIR; };
38
+ 71239DA71912BFF70058657F /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; };
39
+ 71239DA91912BFF70058657F /* CoreGraphics.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreGraphics.framework; path = System/Library/Frameworks/CoreGraphics.framework; sourceTree = SDKROOT; };
40
+ 71239DAB1912BFF70058657F /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = System/Library/Frameworks/UIKit.framework; sourceTree = SDKROOT; };
41
+ 71239DAF1912BFF70058657F /* Example-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = "Example-Info.plist"; sourceTree = "<group>"; };
42
+ 71239DB11912BFF80058657F /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/InfoPlist.strings; sourceTree = "<group>"; };
43
+ 71239DB31912BFF80058657F /* main.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = "<group>"; };
44
+ 71239DB51912BFF80058657F /* Example-Prefix.pch */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "Example-Prefix.pch"; sourceTree = "<group>"; };
45
+ 71239DB61912BFF80058657F /* AppDelegate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AppDelegate.h; sourceTree = "<group>"; };
46
+ 71239DB71912BFF80058657F /* AppDelegate.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = AppDelegate.m; sourceTree = "<group>"; };
47
+ 71239DB91912BFF80058657F /* Images.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Images.xcassets; sourceTree = "<group>"; };
48
+ 71239DBF1912BFF80058657F /* ExampleTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = ExampleTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; };
49
+ 71239DC01912BFF80058657F /* XCTest.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = XCTest.framework; path = Library/Frameworks/XCTest.framework; sourceTree = DEVELOPER_DIR; };
50
+ 71239DDD1912C07E0058657F /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/Localizable.strings; sourceTree = "<group>"; };
51
+ 71239DDF1912C1040058657F /* de */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = de; path = de.lproj/Localizable.strings; sourceTree = "<group>"; };
52
+ 715C078C198D029800316E8C /* Icons.bundle */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.plug-in"; path = Icons.bundle; sourceTree = "<group>"; };
53
+ 715C078E198D029800316E8C /* doge.jpeg */ = {isa = PBXFileReference; lastKnownFileType = image.jpeg; path = doge.jpeg; sourceTree = "<group>"; };
54
+ /* End PBXFileReference section */
55
+
56
+ /* Begin PBXFrameworksBuildPhase section */
57
+ 71239DA11912BFF70058657F /* Frameworks */ = {
58
+ isa = PBXFrameworksBuildPhase;
59
+ buildActionMask = 2147483647;
60
+ files = (
61
+ 71239DAA1912BFF70058657F /* CoreGraphics.framework in Frameworks */,
62
+ 71239DAC1912BFF70058657F /* UIKit.framework in Frameworks */,
63
+ 71239DA81912BFF70058657F /* Foundation.framework in Frameworks */,
64
+ );
65
+ runOnlyForDeploymentPostprocessing = 0;
66
+ };
67
+ 71239DBC1912BFF80058657F /* Frameworks */ = {
68
+ isa = PBXFrameworksBuildPhase;
69
+ buildActionMask = 2147483647;
70
+ files = (
71
+ 71239DC11912BFF80058657F /* XCTest.framework in Frameworks */,
72
+ 71239DC31912BFF80058657F /* UIKit.framework in Frameworks */,
73
+ 71239DC21912BFF80058657F /* Foundation.framework in Frameworks */,
74
+ );
75
+ runOnlyForDeploymentPostprocessing = 0;
76
+ };
77
+ /* End PBXFrameworksBuildPhase section */
78
+
79
+ /* Begin PBXGroup section */
80
+ 71239D9B1912BFF70058657F = {
81
+ isa = PBXGroup;
82
+ children = (
83
+ 71239DAD1912BFF70058657F /* Example */,
84
+ 71239DA61912BFF70058657F /* Frameworks */,
85
+ 71239DA51912BFF70058657F /* Products */,
86
+ );
87
+ sourceTree = "<group>";
88
+ };
89
+ 71239DA51912BFF70058657F /* Products */ = {
90
+ isa = PBXGroup;
91
+ children = (
92
+ 71239DA41912BFF70058657F /* Example.app */,
93
+ 71239DBF1912BFF80058657F /* ExampleTests.xctest */,
94
+ );
95
+ name = Products;
96
+ sourceTree = "<group>";
97
+ };
98
+ 71239DA61912BFF70058657F /* Frameworks */ = {
99
+ isa = PBXGroup;
100
+ children = (
101
+ 71239DA71912BFF70058657F /* Foundation.framework */,
102
+ 71239DA91912BFF70058657F /* CoreGraphics.framework */,
103
+ 71239DAB1912BFF70058657F /* UIKit.framework */,
104
+ 71239DC01912BFF80058657F /* XCTest.framework */,
105
+ );
106
+ name = Frameworks;
107
+ sourceTree = "<group>";
108
+ };
109
+ 71239DAD1912BFF70058657F /* Example */ = {
110
+ isa = PBXGroup;
111
+ children = (
112
+ 71239DB61912BFF80058657F /* AppDelegate.h */,
113
+ 71239DB71912BFF80058657F /* AppDelegate.m */,
114
+ 71239DB91912BFF80058657F /* Images.xcassets */,
115
+ 715C078C198D029800316E8C /* Icons.bundle */,
116
+ 715C078D198D029800316E8C /* Images */,
117
+ 71239DAE1912BFF70058657F /* Supporting Files */,
118
+ );
119
+ path = Example;
120
+ sourceTree = "<group>";
121
+ };
122
+ 71239DAE1912BFF70058657F /* Supporting Files */ = {
123
+ isa = PBXGroup;
124
+ children = (
125
+ 71239DAF1912BFF70058657F /* Example-Info.plist */,
126
+ 71239DB01912BFF70058657F /* InfoPlist.strings */,
127
+ 71239DB31912BFF80058657F /* main.m */,
128
+ 71239DB51912BFF80058657F /* Example-Prefix.pch */,
129
+ 71239DDE1912C07E0058657F /* Localizable.strings */,
130
+ );
131
+ name = "Supporting Files";
132
+ sourceTree = "<group>";
133
+ };
134
+ 715C078D198D029800316E8C /* Images */ = {
135
+ isa = PBXGroup;
136
+ children = (
137
+ 711976AD19A392DE005748B4 /* nyanCat.png */,
138
+ 715C078E198D029800316E8C /* doge.jpeg */,
139
+ );
140
+ path = Images;
141
+ sourceTree = "<group>";
142
+ };
143
+ /* End PBXGroup section */
144
+
145
+ /* Begin PBXNativeTarget section */
146
+ 71239DA31912BFF70058657F /* Example */ = {
147
+ isa = PBXNativeTarget;
148
+ buildConfigurationList = 71239DD01912BFF80058657F /* Build configuration list for PBXNativeTarget "Example" */;
149
+ buildPhases = (
150
+ 71239DA01912BFF70058657F /* Sources */,
151
+ 71239DA11912BFF70058657F /* Frameworks */,
152
+ 71239DA21912BFF70058657F /* Resources */,
153
+ );
154
+ buildRules = (
155
+ );
156
+ dependencies = (
157
+ );
158
+ name = Example;
159
+ productName = Example;
160
+ productReference = 71239DA41912BFF70058657F /* Example.app */;
161
+ productType = "com.apple.product-type.application";
162
+ };
163
+ 71239DBE1912BFF80058657F /* ExampleTests */ = {
164
+ isa = PBXNativeTarget;
165
+ buildConfigurationList = 71239DD31912BFF80058657F /* Build configuration list for PBXNativeTarget "ExampleTests" */;
166
+ buildPhases = (
167
+ 71239DBB1912BFF80058657F /* Sources */,
168
+ 71239DBC1912BFF80058657F /* Frameworks */,
169
+ 71239DBD1912BFF80058657F /* Resources */,
170
+ );
171
+ buildRules = (
172
+ );
173
+ dependencies = (
174
+ 71239DC51912BFF80058657F /* PBXTargetDependency */,
175
+ );
176
+ name = ExampleTests;
177
+ productName = ExampleTests;
178
+ productReference = 71239DBF1912BFF80058657F /* ExampleTests.xctest */;
179
+ productType = "com.apple.product-type.bundle.unit-test";
180
+ };
181
+ /* End PBXNativeTarget section */
182
+
183
+ /* Begin PBXProject section */
184
+ 71239D9C1912BFF70058657F /* Project object */ = {
185
+ isa = PBXProject;
186
+ attributes = {
187
+ LastUpgradeCheck = 0510;
188
+ ORGANIZATIONNAME = XCRes;
189
+ TargetAttributes = {
190
+ 71239DBE1912BFF80058657F = {
191
+ TestTargetID = 71239DA31912BFF70058657F;
192
+ };
193
+ };
194
+ };
195
+ buildConfigurationList = 71239D9F1912BFF70058657F /* Build configuration list for PBXProject "Example" */;
196
+ compatibilityVersion = "Xcode 3.2";
197
+ developmentRegion = English;
198
+ hasScannedForEncodings = 0;
199
+ knownRegions = (
200
+ en,
201
+ de,
202
+ );
203
+ mainGroup = 71239D9B1912BFF70058657F;
204
+ productRefGroup = 71239DA51912BFF70058657F /* Products */;
205
+ projectDirPath = "";
206
+ projectRoot = "";
207
+ targets = (
208
+ 71239DA31912BFF70058657F /* Example */,
209
+ 71239DBE1912BFF80058657F /* ExampleTests */,
210
+ );
211
+ };
212
+ /* End PBXProject section */
213
+
214
+ /* Begin PBXResourcesBuildPhase section */
215
+ 71239DA21912BFF70058657F /* Resources */ = {
216
+ isa = PBXResourcesBuildPhase;
217
+ buildActionMask = 2147483647;
218
+ files = (
219
+ 715C078F198D029800316E8C /* Icons.bundle in Resources */,
220
+ 715C0790198D029800316E8C /* doge.jpeg in Resources */,
221
+ 71239DB21912BFF80058657F /* InfoPlist.strings in Resources */,
222
+ 71239DBA1912BFF80058657F /* Images.xcassets in Resources */,
223
+ 71239DDC1912C07E0058657F /* Localizable.strings in Resources */,
224
+ );
225
+ runOnlyForDeploymentPostprocessing = 0;
226
+ };
227
+ 71239DBD1912BFF80058657F /* Resources */ = {
228
+ isa = PBXResourcesBuildPhase;
229
+ buildActionMask = 2147483647;
230
+ files = (
231
+ );
232
+ runOnlyForDeploymentPostprocessing = 0;
233
+ };
234
+ /* End PBXResourcesBuildPhase section */
235
+
236
+ /* Begin PBXSourcesBuildPhase section */
237
+ 71239DA01912BFF70058657F /* Sources */ = {
238
+ isa = PBXSourcesBuildPhase;
239
+ buildActionMask = 2147483647;
240
+ files = (
241
+ 71239DB81912BFF80058657F /* AppDelegate.m in Sources */,
242
+ 71239DB41912BFF80058657F /* main.m in Sources */,
243
+ );
244
+ runOnlyForDeploymentPostprocessing = 0;
245
+ };
246
+ 71239DBB1912BFF80058657F /* Sources */ = {
247
+ isa = PBXSourcesBuildPhase;
248
+ buildActionMask = 2147483647;
249
+ files = (
250
+ );
251
+ runOnlyForDeploymentPostprocessing = 0;
252
+ };
253
+ /* End PBXSourcesBuildPhase section */
254
+
255
+ /* Begin PBXTargetDependency section */
256
+ 71239DC51912BFF80058657F /* PBXTargetDependency */ = {
257
+ isa = PBXTargetDependency;
258
+ target = 71239DA31912BFF70058657F /* Example */;
259
+ targetProxy = 71239DC41912BFF80058657F /* PBXContainerItemProxy */;
260
+ };
261
+ /* End PBXTargetDependency section */
262
+
263
+ /* Begin PBXVariantGroup section */
264
+ 71239DB01912BFF70058657F /* InfoPlist.strings */ = {
265
+ isa = PBXVariantGroup;
266
+ children = (
267
+ 71239DB11912BFF80058657F /* en */,
268
+ );
269
+ name = InfoPlist.strings;
270
+ sourceTree = "<group>";
271
+ };
272
+ 71239DDE1912C07E0058657F /* Localizable.strings */ = {
273
+ isa = PBXVariantGroup;
274
+ children = (
275
+ 71239DDD1912C07E0058657F /* en */,
276
+ 71239DDF1912C1040058657F /* de */,
277
+ );
278
+ name = Localizable.strings;
279
+ sourceTree = "<group>";
280
+ };
281
+ /* End PBXVariantGroup section */
282
+
283
+ /* Begin XCBuildConfiguration section */
284
+ 71239DCE1912BFF80058657F /* Debug */ = {
285
+ isa = XCBuildConfiguration;
286
+ buildSettings = {
287
+ ALWAYS_SEARCH_USER_PATHS = NO;
288
+ CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
289
+ CLANG_CXX_LIBRARY = "libc++";
290
+ CLANG_ENABLE_MODULES = YES;
291
+ CLANG_ENABLE_OBJC_ARC = YES;
292
+ CLANG_WARN_BOOL_CONVERSION = YES;
293
+ CLANG_WARN_CONSTANT_CONVERSION = YES;
294
+ CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
295
+ CLANG_WARN_EMPTY_BODY = YES;
296
+ CLANG_WARN_ENUM_CONVERSION = YES;
297
+ CLANG_WARN_INT_CONVERSION = YES;
298
+ CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
299
+ CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
300
+ "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
301
+ COPY_PHASE_STRIP = NO;
302
+ GCC_C_LANGUAGE_STANDARD = gnu99;
303
+ GCC_DYNAMIC_NO_PIC = NO;
304
+ GCC_OPTIMIZATION_LEVEL = 0;
305
+ GCC_PREPROCESSOR_DEFINITIONS = (
306
+ "DEBUG=1",
307
+ "$(inherited)",
308
+ );
309
+ GCC_SYMBOLS_PRIVATE_EXTERN = NO;
310
+ GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
311
+ GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
312
+ GCC_WARN_UNDECLARED_SELECTOR = YES;
313
+ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
314
+ GCC_WARN_UNUSED_FUNCTION = YES;
315
+ GCC_WARN_UNUSED_VARIABLE = YES;
316
+ IPHONEOS_DEPLOYMENT_TARGET = 7.1;
317
+ ONLY_ACTIVE_ARCH = YES;
318
+ SDKROOT = iphoneos;
319
+ };
320
+ name = Debug;
321
+ };
322
+ 71239DCF1912BFF80058657F /* Release */ = {
323
+ isa = XCBuildConfiguration;
324
+ buildSettings = {
325
+ ALWAYS_SEARCH_USER_PATHS = NO;
326
+ CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
327
+ CLANG_CXX_LIBRARY = "libc++";
328
+ CLANG_ENABLE_MODULES = YES;
329
+ CLANG_ENABLE_OBJC_ARC = YES;
330
+ CLANG_WARN_BOOL_CONVERSION = YES;
331
+ CLANG_WARN_CONSTANT_CONVERSION = YES;
332
+ CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
333
+ CLANG_WARN_EMPTY_BODY = YES;
334
+ CLANG_WARN_ENUM_CONVERSION = YES;
335
+ CLANG_WARN_INT_CONVERSION = YES;
336
+ CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
337
+ CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
338
+ "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
339
+ COPY_PHASE_STRIP = YES;
340
+ ENABLE_NS_ASSERTIONS = NO;
341
+ GCC_C_LANGUAGE_STANDARD = gnu99;
342
+ GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
343
+ GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
344
+ GCC_WARN_UNDECLARED_SELECTOR = YES;
345
+ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
346
+ GCC_WARN_UNUSED_FUNCTION = YES;
347
+ GCC_WARN_UNUSED_VARIABLE = YES;
348
+ IPHONEOS_DEPLOYMENT_TARGET = 7.1;
349
+ SDKROOT = iphoneos;
350
+ VALIDATE_PRODUCT = YES;
351
+ };
352
+ name = Release;
353
+ };
354
+ 71239DD11912BFF80058657F /* Debug */ = {
355
+ isa = XCBuildConfiguration;
356
+ buildSettings = {
357
+ ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
358
+ ASSETCATALOG_COMPILER_LAUNCHIMAGE_NAME = LaunchImage;
359
+ GCC_PRECOMPILE_PREFIX_HEADER = YES;
360
+ GCC_PREFIX_HEADER = "Example/Example-Prefix.pch";
361
+ INFOPLIST_FILE = "Example/Example-Info.plist";
362
+ PRODUCT_NAME = "$(TARGET_NAME)";
363
+ WRAPPER_EXTENSION = app;
364
+ };
365
+ name = Debug;
366
+ };
367
+ 71239DD21912BFF80058657F /* Release */ = {
368
+ isa = XCBuildConfiguration;
369
+ buildSettings = {
370
+ ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
371
+ ASSETCATALOG_COMPILER_LAUNCHIMAGE_NAME = LaunchImage;
372
+ GCC_PRECOMPILE_PREFIX_HEADER = YES;
373
+ GCC_PREFIX_HEADER = "Example/Example-Prefix.pch";
374
+ INFOPLIST_FILE = "Example/Example-Info.plist";
375
+ PRODUCT_NAME = "$(TARGET_NAME)";
376
+ WRAPPER_EXTENSION = app;
377
+ };
378
+ name = Release;
379
+ };
380
+ 71239DD41912BFF80058657F /* Debug */ = {
381
+ isa = XCBuildConfiguration;
382
+ buildSettings = {
383
+ BUNDLE_LOADER = "$(BUILT_PRODUCTS_DIR)/Example.app/Example";
384
+ FRAMEWORK_SEARCH_PATHS = (
385
+ "$(SDKROOT)/Developer/Library/Frameworks",
386
+ "$(inherited)",
387
+ "$(DEVELOPER_FRAMEWORKS_DIR)",
388
+ );
389
+ GCC_PRECOMPILE_PREFIX_HEADER = YES;
390
+ GCC_PREFIX_HEADER = "Example/Example-Prefix.pch";
391
+ GCC_PREPROCESSOR_DEFINITIONS = (
392
+ "DEBUG=1",
393
+ "$(inherited)",
394
+ );
395
+ INFOPLIST_FILE = "ExampleTests/ExampleTests-Info.plist";
396
+ PRODUCT_NAME = "$(TARGET_NAME)";
397
+ TEST_HOST = "$(BUNDLE_LOADER)";
398
+ WRAPPER_EXTENSION = xctest;
399
+ };
400
+ name = Debug;
401
+ };
402
+ 71239DD51912BFF80058657F /* Release */ = {
403
+ isa = XCBuildConfiguration;
404
+ buildSettings = {
405
+ BUNDLE_LOADER = "$(BUILT_PRODUCTS_DIR)/Example.app/Example";
406
+ FRAMEWORK_SEARCH_PATHS = (
407
+ "$(SDKROOT)/Developer/Library/Frameworks",
408
+ "$(inherited)",
409
+ "$(DEVELOPER_FRAMEWORKS_DIR)",
410
+ );
411
+ GCC_PRECOMPILE_PREFIX_HEADER = YES;
412
+ GCC_PREFIX_HEADER = "Example/Example-Prefix.pch";
413
+ INFOPLIST_FILE = "ExampleTests/ExampleTests-Info.plist";
414
+ PRODUCT_NAME = "$(TARGET_NAME)";
415
+ TEST_HOST = "$(BUNDLE_LOADER)";
416
+ WRAPPER_EXTENSION = xctest;
417
+ };
418
+ name = Release;
419
+ };
420
+ /* End XCBuildConfiguration section */
421
+
422
+ /* Begin XCConfigurationList section */
423
+ 71239D9F1912BFF70058657F /* Build configuration list for PBXProject "Example" */ = {
424
+ isa = XCConfigurationList;
425
+ buildConfigurations = (
426
+ 71239DCE1912BFF80058657F /* Debug */,
427
+ 71239DCF1912BFF80058657F /* Release */,
428
+ );
429
+ defaultConfigurationIsVisible = 0;
430
+ defaultConfigurationName = Release;
431
+ };
432
+ 71239DD01912BFF80058657F /* Build configuration list for PBXNativeTarget "Example" */ = {
433
+ isa = XCConfigurationList;
434
+ buildConfigurations = (
435
+ 71239DD11912BFF80058657F /* Debug */,
436
+ 71239DD21912BFF80058657F /* Release */,
437
+ );
438
+ defaultConfigurationIsVisible = 0;
439
+ defaultConfigurationName = Release;
440
+ };
441
+ 71239DD31912BFF80058657F /* Build configuration list for PBXNativeTarget "ExampleTests" */ = {
442
+ isa = XCConfigurationList;
443
+ buildConfigurations = (
444
+ 71239DD41912BFF80058657F /* Debug */,
445
+ 71239DD51912BFF80058657F /* Release */,
446
+ );
447
+ defaultConfigurationIsVisible = 0;
448
+ defaultConfigurationName = Release;
449
+ };
450
+ /* End XCConfigurationList section */
451
+ };
452
+ rootObject = 71239D9C1912BFF70058657F /* Project object */;
453
+ }