xcres 0.4.4 → 0.5.0

Sign up to get free protection for your applications and to get access to all the features.
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
+ }