picon 0.0.1 → 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (58) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +2 -0
  3. data/.travis.yml +4 -0
  4. data/README.md +12 -2
  5. data/images/picon_after.png +0 -0
  6. data/images/picon_before.png +0 -0
  7. data/lib/picon/generator.rb +23 -9
  8. data/lib/picon/version.rb +1 -1
  9. data/picon.gemspec +0 -1
  10. data/spec/PiconSampleProject/PiconSampleProject.xcodeproj/project.pbxproj +489 -0
  11. data/spec/PiconSampleProject/PiconSampleProject.xcodeproj/project.pbxproj.orig +489 -0
  12. data/spec/PiconSampleProject/PiconSampleProject.xcodeproj/project.xcworkspace/contents.xcworkspacedata +7 -0
  13. data/spec/PiconSampleProject/PiconSampleProject.xcodeproj/project.xcworkspace/xcuserdata/naoty.xcuserdatad/UserInterfaceState.xcuserstate +0 -0
  14. data/spec/PiconSampleProject/PiconSampleProject.xcodeproj/xcuserdata/naoty.xcuserdatad/xcschemes/PiconSampleProject.xcscheme +96 -0
  15. data/spec/PiconSampleProject/PiconSampleProject.xcodeproj/xcuserdata/naoty.xcuserdatad/xcschemes/xcschememanagement.plist +27 -0
  16. data/spec/PiconSampleProject/PiconSampleProject/AppDelegate.h +15 -0
  17. data/spec/PiconSampleProject/PiconSampleProject/AppDelegate.m +46 -0
  18. data/spec/PiconSampleProject/PiconSampleProject/Base.lproj/Main_iPad.storyboard +26 -0
  19. data/spec/PiconSampleProject/PiconSampleProject/Base.lproj/Main_iPhone.storyboard +26 -0
  20. data/spec/PiconSampleProject/PiconSampleProject/Images.xcassets/AppIcon.appiconset/Contents.json +53 -0
  21. data/spec/PiconSampleProject/PiconSampleProject/Images.xcassets/LaunchImage.launchimage/Contents.json +51 -0
  22. data/spec/PiconSampleProject/PiconSampleProject/PiconSampleProject-Info.plist +49 -0
  23. data/spec/PiconSampleProject/PiconSampleProject/PiconSampleProject-Prefix.pch +16 -0
  24. data/spec/PiconSampleProject/PiconSampleProject/ViewController.h +13 -0
  25. data/spec/PiconSampleProject/PiconSampleProject/ViewController.m +29 -0
  26. data/spec/PiconSampleProject/PiconSampleProject/en.lproj/InfoPlist.strings +2 -0
  27. data/spec/PiconSampleProject/PiconSampleProject/main.m +18 -0
  28. data/spec/PiconSampleProject/PiconSampleProjectTests/PiconSampleProjectTests-Info.plist +22 -0
  29. data/spec/PiconSampleProject/PiconSampleProjectTests/PiconSampleProjectTests.m +34 -0
  30. data/spec/PiconSampleProject/PiconSampleProjectTests/en.lproj/InfoPlist.strings +2 -0
  31. data/spec/PiconSampleWorkspace/PiconSampleWorkspace.xcodeproj/project.pbxproj +1125 -0
  32. data/spec/PiconSampleWorkspace/PiconSampleWorkspace.xcodeproj/project.pbxproj.orig +1125 -0
  33. data/spec/PiconSampleWorkspace/PiconSampleWorkspace.xcodeproj/project.xcworkspace/contents.xcworkspacedata +7 -0
  34. data/spec/PiconSampleWorkspace/PiconSampleWorkspace.xcodeproj/project.xcworkspace/xcshareddata/PiconSampleWorkspace.xccheckout +41 -0
  35. data/spec/PiconSampleWorkspace/PiconSampleWorkspace.xcodeproj/project.xcworkspace/xcuserdata/naoty.xcuserdatad/UserInterfaceState.xcuserstate +0 -0
  36. data/spec/PiconSampleWorkspace/PiconSampleWorkspace.xcodeproj/xcuserdata/naoty.xcuserdatad/xcschemes/PiconSampleWorkspace.xcscheme +96 -0
  37. data/spec/PiconSampleWorkspace/PiconSampleWorkspace.xcodeproj/xcuserdata/naoty.xcuserdatad/xcschemes/xcschememanagement.plist +27 -0
  38. data/spec/PiconSampleWorkspace/PiconSampleWorkspace.xcworkspace/contents.xcworkspacedata +1 -0
  39. data/spec/PiconSampleWorkspace/PiconSampleWorkspace/AppDelegate.h +15 -0
  40. data/spec/PiconSampleWorkspace/PiconSampleWorkspace/AppDelegate.m +46 -0
  41. data/spec/PiconSampleWorkspace/PiconSampleWorkspace/Base.lproj/Main_iPad.storyboard +26 -0
  42. data/spec/PiconSampleWorkspace/PiconSampleWorkspace/Base.lproj/Main_iPhone.storyboard +26 -0
  43. data/spec/PiconSampleWorkspace/PiconSampleWorkspace/Images.xcassets/AppIcon.appiconset/Contents.json +53 -0
  44. data/spec/PiconSampleWorkspace/PiconSampleWorkspace/Images.xcassets/LaunchImage.launchimage/Contents.json +51 -0
  45. data/spec/PiconSampleWorkspace/PiconSampleWorkspace/PiconSampleWorkspace-Info.plist +49 -0
  46. data/spec/PiconSampleWorkspace/PiconSampleWorkspace/PiconSampleWorkspace-Prefix.pch +16 -0
  47. data/spec/PiconSampleWorkspace/PiconSampleWorkspace/ViewController.h +13 -0
  48. data/spec/PiconSampleWorkspace/PiconSampleWorkspace/ViewController.m +29 -0
  49. data/spec/PiconSampleWorkspace/PiconSampleWorkspace/en.lproj/InfoPlist.strings +2 -0
  50. data/spec/PiconSampleWorkspace/PiconSampleWorkspace/main.m +18 -0
  51. data/spec/PiconSampleWorkspace/PiconSampleWorkspaceTests/PiconSampleWorkspaceTests-Info.plist +22 -0
  52. data/spec/PiconSampleWorkspace/PiconSampleWorkspaceTests/PiconSampleWorkspaceTests.m +34 -0
  53. data/spec/PiconSampleWorkspace/PiconSampleWorkspaceTests/en.lproj/InfoPlist.strings +2 -0
  54. data/spec/PiconSampleWorkspace/Podfile +3 -0
  55. data/spec/PiconSampleWorkspace/Podfile.lock +29 -0
  56. data/spec/picon/generator_spec.rb +68 -0
  57. data/spec/spec_helper.rb +2 -0
  58. metadata +102 -17
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 8da695750f607ff1465b53f4e163e410acf06ffb
4
- data.tar.gz: 1d0d378cae9eb5ce597e71b52ec135d52087534a
3
+ metadata.gz: b3d460fe9620520808bd2dda249a08bbb916b69e
4
+ data.tar.gz: 07c93f138f472c26ae0961c7b83869397b9df24a
5
5
  SHA512:
6
- metadata.gz: 02761bce783bf2a15a91f5b242abccf4aaaaf8047b96d06227afe1b6d236c167760d66117964ecfe2b212b02e0a2421a4caed97fd34e7f321c51faae2f4fb32a
7
- data.tar.gz: ffada1f9cad45ca510af8a2d273e4d1b029d23aa62e0244d7e32fa718b6855a966f40594773d8d9cac41fbb4e85530fdd9edbe06c250a0855c7396ae27002674
6
+ metadata.gz: 5aefd3c2022c6e9097ff048892624c8b008ef76eb3b102492d8c569932fec2e155a97d1a3fddce3f984008cff104536b3c63213c0bd59a6901cd518bbdb1cab6
7
+ data.tar.gz: 382fd81d8bfb15e825b528635cfe7016856d976ce5356556cb7c9c22e29f399dfb3eb7eaf1d79f02cecaa59918b53dd685d74fd4f30fb192d14a21d1e94f88e3
data/.gitignore CHANGED
@@ -3,6 +3,7 @@
3
3
  .bundle
4
4
  .config
5
5
  .yardoc
6
+ .rspec
6
7
  Gemfile.lock
7
8
  InstalledFiles
8
9
  _yardoc
@@ -17,3 +18,4 @@ test/version_tmp
17
18
  tmp
18
19
 
19
20
  vendor/bundle/
21
+ Pods/
@@ -0,0 +1,4 @@
1
+ language: ruby
2
+ rvm:
3
+ - 2.0.0
4
+ script: bundle exec rspec
data/README.md CHANGED
@@ -1,7 +1,17 @@
1
- # Picon
1
+ # Picon [![Build Status](https://travis-ci.org/naoty/picon.png?branch=master)](https://travis-ci.org/naoty/picon)
2
2
 
3
3
  This gem generates [identicons](http://en.wikipedia.org/wiki/Identicon) for iOS apps. It is helpful for developers who cannot create icons with tools such as Adobe Illustrator. Apps under development are usually have the save default icon, and so cannot be tell apart at a glance. However, apps with identicons generated by this gem are can be identified by their icons.
4
4
 
5
+ <div>
6
+ <img src="images/picon_before.png" alt="picon_before.png" />
7
+ <span />
8
+ <img src="images/picon_after.png" alt="picon_after.png" />
9
+ </div>
10
+
11
+ ## Requirements
12
+
13
+ - Xcode 5.0 or later
14
+
5
15
  ## Installation
6
16
 
7
17
  ```sh
@@ -12,7 +22,7 @@ $ gem install picon
12
22
 
13
23
  At the root of Xcode project,
14
24
 
15
- ```
25
+ ```sh
16
26
  $ picon generate
17
27
  ```
18
28
 
Binary file
Binary file
@@ -12,7 +12,14 @@ module Picon
12
12
  new.run
13
13
  end
14
14
 
15
- def initialize
15
+ def initialize(args = {})
16
+ if args[:current_path]
17
+ @current_path = Pathname.new(File.expand_path(args[:current_path]))
18
+ else
19
+ @current_path = Pathname.pwd
20
+ end
21
+
22
+ @product_name = get_product_name
16
23
  @appiconset_path = get_appiconset_path
17
24
  @bundle_identifier = get_bundle_identifier
18
25
  end
@@ -25,22 +32,24 @@ module Picon
25
32
 
26
33
  private
27
34
 
35
+ def get_product_name
36
+ xcodeproj_path = Pathname.glob(@current_path.to_s + "/**/*.xcodeproj").first
37
+ File.basename(xcodeproj_path.to_s, ".xcodeproj")
38
+ end
39
+
28
40
  def get_appiconset_path
29
- path = Pathname.glob("**/*.xcassets").first
41
+ path = Pathname.glob(@current_path.to_s + "/**/*.xcassets").first
30
42
  path = path.join("Picon.appiconset")
31
43
  path.mkdir unless path.exist?
32
44
  path
33
45
  end
34
46
 
35
47
  def get_bundle_identifier
36
- xcodeproj_path = Pathname.glob("**/*.xcodeproj").first
37
- product_name = File.basename(xcodeproj_path.to_s, ".xcodeproj")
38
-
39
- pathnames = Pathname.glob("**/*-Info.plist")
48
+ pathnames = Pathname.glob(@current_path.to_s + "/**/*-Info.plist")
40
49
  pathnames.reject! { |pathname| pathname.to_s =~ /Test/ }
41
50
  pathname = pathnames.first
42
51
  plist = Plist.parse_xml(pathname.to_s)
43
- plist["CFBundleIdentifier"].gsub!(/\${PRODUCT_NAME.*}$/) { product_name }
52
+ plist["CFBundleIdentifier"].gsub!(/\${PRODUCT_NAME.*}$/) { @product_name }
44
53
  end
45
54
 
46
55
  def generate_identicons
@@ -87,12 +96,17 @@ module Picon
87
96
  def edit_project_pbxproj
88
97
  data = ""
89
98
 
90
- pbxproj_path = Pathname.glob("**/project.pbxproj").first
99
+ pbxproj_path = Pathname.glob(@current_path.to_s + "/**/project.pbxproj").first
91
100
  pbxproj_path.open("rb") do |file|
92
101
  data = file.read
93
102
  end
94
103
 
95
- data.gsub!(/(ASSETCATALOG_COMPILER_APPICON_NAME = )AppIcon/) { "#{$1}Picon" }
104
+ xcworkspace_path = Pathname.glob(@current_path.to_s + "/**/#{@product_name}.xcworkspace").first
105
+ if xcworkspace_path && xcworkspace_path.exist?
106
+ data.gsub!(/(<key>ASSETCATALOG_COMPILER_APPICON_NAME<\/key>\n\t+<string>).+(<\/string>)/) { "#{$1}Picon#{$2}" }
107
+ else
108
+ data.gsub!(/(ASSETCATALOG_COMPILER_APPICON_NAME = )AppIcon/) { "#{$1}Picon" }
109
+ end
96
110
 
97
111
  pbxproj_path.open("wb") do |file|
98
112
  file.flush
@@ -1,3 +1,3 @@
1
1
  module Picon
2
- VERSION = "0.0.1"
2
+ VERSION = "1.0.0"
3
3
  end
@@ -24,5 +24,4 @@ Gem::Specification.new do |spec|
24
24
  spec.add_development_dependency "bundler", "~> 1.3"
25
25
  spec.add_development_dependency "rake"
26
26
  spec.add_development_dependency "rspec"
27
- spec.add_development_dependency "pry"
28
27
  end
@@ -0,0 +1,489 @@
1
+ // !$*UTF8*$!
2
+ {
3
+ archiveVersion = 1;
4
+ classes = {
5
+ };
6
+ objectVersion = 46;
7
+ objects = {
8
+
9
+ /* Begin PBXBuildFile section */
10
+ 3D9757B618325C1A00224F3E /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3D9757B518325C1A00224F3E /* Foundation.framework */; };
11
+ 3D9757B818325C1A00224F3E /* CoreGraphics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3D9757B718325C1A00224F3E /* CoreGraphics.framework */; };
12
+ 3D9757BA18325C1A00224F3E /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3D9757B918325C1A00224F3E /* UIKit.framework */; };
13
+ 3D9757C018325C1A00224F3E /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = 3D9757BE18325C1A00224F3E /* InfoPlist.strings */; };
14
+ 3D9757C218325C1A00224F3E /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 3D9757C118325C1A00224F3E /* main.m */; };
15
+ 3D9757C618325C1A00224F3E /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 3D9757C518325C1A00224F3E /* AppDelegate.m */; };
16
+ 3D9757C918325C1A00224F3E /* Main_iPhone.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 3D9757C718325C1A00224F3E /* Main_iPhone.storyboard */; };
17
+ 3D9757CC18325C1A00224F3E /* Main_iPad.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 3D9757CA18325C1A00224F3E /* Main_iPad.storyboard */; };
18
+ 3D9757CF18325C1A00224F3E /* ViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 3D9757CE18325C1A00224F3E /* ViewController.m */; };
19
+ 3D9757D118325C1A00224F3E /* Images.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 3D9757D018325C1A00224F3E /* Images.xcassets */; };
20
+ 3D9757D818325C1A00224F3E /* XCTest.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3D9757D718325C1A00224F3E /* XCTest.framework */; };
21
+ 3D9757D918325C1A00224F3E /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3D9757B518325C1A00224F3E /* Foundation.framework */; };
22
+ 3D9757DA18325C1A00224F3E /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3D9757B918325C1A00224F3E /* UIKit.framework */; };
23
+ 3D9757E218325C1A00224F3E /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = 3D9757E018325C1A00224F3E /* InfoPlist.strings */; };
24
+ 3D9757E418325C1A00224F3E /* PiconSampleProjectTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 3D9757E318325C1A00224F3E /* PiconSampleProjectTests.m */; };
25
+ /* End PBXBuildFile section */
26
+
27
+ /* Begin PBXContainerItemProxy section */
28
+ 3D9757DB18325C1A00224F3E /* PBXContainerItemProxy */ = {
29
+ isa = PBXContainerItemProxy;
30
+ containerPortal = 3D9757AA18325C1A00224F3E /* Project object */;
31
+ proxyType = 1;
32
+ remoteGlobalIDString = 3D9757B118325C1A00224F3E;
33
+ remoteInfo = PiconSampleProject;
34
+ };
35
+ /* End PBXContainerItemProxy section */
36
+
37
+ /* Begin PBXFileReference section */
38
+ 3D9757B218325C1A00224F3E /* PiconSampleProject.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = PiconSampleProject.app; sourceTree = BUILT_PRODUCTS_DIR; };
39
+ 3D9757B518325C1A00224F3E /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; };
40
+ 3D9757B718325C1A00224F3E /* CoreGraphics.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreGraphics.framework; path = System/Library/Frameworks/CoreGraphics.framework; sourceTree = SDKROOT; };
41
+ 3D9757B918325C1A00224F3E /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = System/Library/Frameworks/UIKit.framework; sourceTree = SDKROOT; };
42
+ 3D9757BD18325C1A00224F3E /* PiconSampleProject-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = "PiconSampleProject-Info.plist"; sourceTree = "<group>"; };
43
+ 3D9757BF18325C1A00224F3E /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/InfoPlist.strings; sourceTree = "<group>"; };
44
+ 3D9757C118325C1A00224F3E /* main.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = "<group>"; };
45
+ 3D9757C318325C1A00224F3E /* PiconSampleProject-Prefix.pch */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "PiconSampleProject-Prefix.pch"; sourceTree = "<group>"; };
46
+ 3D9757C418325C1A00224F3E /* AppDelegate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AppDelegate.h; sourceTree = "<group>"; };
47
+ 3D9757C518325C1A00224F3E /* AppDelegate.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = AppDelegate.m; sourceTree = "<group>"; };
48
+ 3D9757C818325C1A00224F3E /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main_iPhone.storyboard; sourceTree = "<group>"; };
49
+ 3D9757CB18325C1A00224F3E /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main_iPad.storyboard; sourceTree = "<group>"; };
50
+ 3D9757CD18325C1A00224F3E /* ViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ViewController.h; sourceTree = "<group>"; };
51
+ 3D9757CE18325C1A00224F3E /* ViewController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = ViewController.m; sourceTree = "<group>"; };
52
+ 3D9757D018325C1A00224F3E /* Images.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Images.xcassets; sourceTree = "<group>"; };
53
+ 3D9757D618325C1A00224F3E /* PiconSampleProjectTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = PiconSampleProjectTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; };
54
+ 3D9757D718325C1A00224F3E /* XCTest.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = XCTest.framework; path = Library/Frameworks/XCTest.framework; sourceTree = DEVELOPER_DIR; };
55
+ 3D9757DF18325C1A00224F3E /* PiconSampleProjectTests-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = "PiconSampleProjectTests-Info.plist"; sourceTree = "<group>"; };
56
+ 3D9757E118325C1A00224F3E /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/InfoPlist.strings; sourceTree = "<group>"; };
57
+ 3D9757E318325C1A00224F3E /* PiconSampleProjectTests.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = PiconSampleProjectTests.m; sourceTree = "<group>"; };
58
+ /* End PBXFileReference section */
59
+
60
+ /* Begin PBXFrameworksBuildPhase section */
61
+ 3D9757AF18325C1A00224F3E /* Frameworks */ = {
62
+ isa = PBXFrameworksBuildPhase;
63
+ buildActionMask = 2147483647;
64
+ files = (
65
+ 3D9757B818325C1A00224F3E /* CoreGraphics.framework in Frameworks */,
66
+ 3D9757BA18325C1A00224F3E /* UIKit.framework in Frameworks */,
67
+ 3D9757B618325C1A00224F3E /* Foundation.framework in Frameworks */,
68
+ );
69
+ runOnlyForDeploymentPostprocessing = 0;
70
+ };
71
+ 3D9757D318325C1A00224F3E /* Frameworks */ = {
72
+ isa = PBXFrameworksBuildPhase;
73
+ buildActionMask = 2147483647;
74
+ files = (
75
+ 3D9757D818325C1A00224F3E /* XCTest.framework in Frameworks */,
76
+ 3D9757DA18325C1A00224F3E /* UIKit.framework in Frameworks */,
77
+ 3D9757D918325C1A00224F3E /* Foundation.framework in Frameworks */,
78
+ );
79
+ runOnlyForDeploymentPostprocessing = 0;
80
+ };
81
+ /* End PBXFrameworksBuildPhase section */
82
+
83
+ /* Begin PBXGroup section */
84
+ 3D9757A918325C1A00224F3E = {
85
+ isa = PBXGroup;
86
+ children = (
87
+ 3D9757BB18325C1A00224F3E /* PiconSampleProject */,
88
+ 3D9757DD18325C1A00224F3E /* PiconSampleProjectTests */,
89
+ 3D9757B418325C1A00224F3E /* Frameworks */,
90
+ 3D9757B318325C1A00224F3E /* Products */,
91
+ );
92
+ sourceTree = "<group>";
93
+ };
94
+ 3D9757B318325C1A00224F3E /* Products */ = {
95
+ isa = PBXGroup;
96
+ children = (
97
+ 3D9757B218325C1A00224F3E /* PiconSampleProject.app */,
98
+ 3D9757D618325C1A00224F3E /* PiconSampleProjectTests.xctest */,
99
+ );
100
+ name = Products;
101
+ sourceTree = "<group>";
102
+ };
103
+ 3D9757B418325C1A00224F3E /* Frameworks */ = {
104
+ isa = PBXGroup;
105
+ children = (
106
+ 3D9757B518325C1A00224F3E /* Foundation.framework */,
107
+ 3D9757B718325C1A00224F3E /* CoreGraphics.framework */,
108
+ 3D9757B918325C1A00224F3E /* UIKit.framework */,
109
+ 3D9757D718325C1A00224F3E /* XCTest.framework */,
110
+ );
111
+ name = Frameworks;
112
+ sourceTree = "<group>";
113
+ };
114
+ 3D9757BB18325C1A00224F3E /* PiconSampleProject */ = {
115
+ isa = PBXGroup;
116
+ children = (
117
+ 3D9757C418325C1A00224F3E /* AppDelegate.h */,
118
+ 3D9757C518325C1A00224F3E /* AppDelegate.m */,
119
+ 3D9757C718325C1A00224F3E /* Main_iPhone.storyboard */,
120
+ 3D9757CA18325C1A00224F3E /* Main_iPad.storyboard */,
121
+ 3D9757CD18325C1A00224F3E /* ViewController.h */,
122
+ 3D9757CE18325C1A00224F3E /* ViewController.m */,
123
+ 3D9757D018325C1A00224F3E /* Images.xcassets */,
124
+ 3D9757BC18325C1A00224F3E /* Supporting Files */,
125
+ );
126
+ path = PiconSampleProject;
127
+ sourceTree = "<group>";
128
+ };
129
+ 3D9757BC18325C1A00224F3E /* Supporting Files */ = {
130
+ isa = PBXGroup;
131
+ children = (
132
+ 3D9757BD18325C1A00224F3E /* PiconSampleProject-Info.plist */,
133
+ 3D9757BE18325C1A00224F3E /* InfoPlist.strings */,
134
+ 3D9757C118325C1A00224F3E /* main.m */,
135
+ 3D9757C318325C1A00224F3E /* PiconSampleProject-Prefix.pch */,
136
+ );
137
+ name = "Supporting Files";
138
+ sourceTree = "<group>";
139
+ };
140
+ 3D9757DD18325C1A00224F3E /* PiconSampleProjectTests */ = {
141
+ isa = PBXGroup;
142
+ children = (
143
+ 3D9757E318325C1A00224F3E /* PiconSampleProjectTests.m */,
144
+ 3D9757DE18325C1A00224F3E /* Supporting Files */,
145
+ );
146
+ path = PiconSampleProjectTests;
147
+ sourceTree = "<group>";
148
+ };
149
+ 3D9757DE18325C1A00224F3E /* Supporting Files */ = {
150
+ isa = PBXGroup;
151
+ children = (
152
+ 3D9757DF18325C1A00224F3E /* PiconSampleProjectTests-Info.plist */,
153
+ 3D9757E018325C1A00224F3E /* InfoPlist.strings */,
154
+ );
155
+ name = "Supporting Files";
156
+ sourceTree = "<group>";
157
+ };
158
+ /* End PBXGroup section */
159
+
160
+ /* Begin PBXNativeTarget section */
161
+ 3D9757B118325C1A00224F3E /* PiconSampleProject */ = {
162
+ isa = PBXNativeTarget;
163
+ buildConfigurationList = 3D9757E718325C1A00224F3E /* Build configuration list for PBXNativeTarget "PiconSampleProject" */;
164
+ buildPhases = (
165
+ 3D9757AE18325C1A00224F3E /* Sources */,
166
+ 3D9757AF18325C1A00224F3E /* Frameworks */,
167
+ 3D9757B018325C1A00224F3E /* Resources */,
168
+ );
169
+ buildRules = (
170
+ );
171
+ dependencies = (
172
+ );
173
+ name = PiconSampleProject;
174
+ productName = PiconSampleProject;
175
+ productReference = 3D9757B218325C1A00224F3E /* PiconSampleProject.app */;
176
+ productType = "com.apple.product-type.application";
177
+ };
178
+ 3D9757D518325C1A00224F3E /* PiconSampleProjectTests */ = {
179
+ isa = PBXNativeTarget;
180
+ buildConfigurationList = 3D9757EA18325C1A00224F3E /* Build configuration list for PBXNativeTarget "PiconSampleProjectTests" */;
181
+ buildPhases = (
182
+ 3D9757D218325C1A00224F3E /* Sources */,
183
+ 3D9757D318325C1A00224F3E /* Frameworks */,
184
+ 3D9757D418325C1A00224F3E /* Resources */,
185
+ );
186
+ buildRules = (
187
+ );
188
+ dependencies = (
189
+ 3D9757DC18325C1A00224F3E /* PBXTargetDependency */,
190
+ );
191
+ name = PiconSampleProjectTests;
192
+ productName = PiconSampleProjectTests;
193
+ productReference = 3D9757D618325C1A00224F3E /* PiconSampleProjectTests.xctest */;
194
+ productType = "com.apple.product-type.bundle.unit-test";
195
+ };
196
+ /* End PBXNativeTarget section */
197
+
198
+ /* Begin PBXProject section */
199
+ 3D9757AA18325C1A00224F3E /* Project object */ = {
200
+ isa = PBXProject;
201
+ attributes = {
202
+ LastUpgradeCheck = 0500;
203
+ ORGANIZATIONNAME = "Naoto Kaneko";
204
+ TargetAttributes = {
205
+ 3D9757D518325C1A00224F3E = {
206
+ TestTargetID = 3D9757B118325C1A00224F3E;
207
+ };
208
+ };
209
+ };
210
+ buildConfigurationList = 3D9757AD18325C1A00224F3E /* Build configuration list for PBXProject "PiconSampleProject" */;
211
+ compatibilityVersion = "Xcode 3.2";
212
+ developmentRegion = English;
213
+ hasScannedForEncodings = 0;
214
+ knownRegions = (
215
+ en,
216
+ Base,
217
+ );
218
+ mainGroup = 3D9757A918325C1A00224F3E;
219
+ productRefGroup = 3D9757B318325C1A00224F3E /* Products */;
220
+ projectDirPath = "";
221
+ projectRoot = "";
222
+ targets = (
223
+ 3D9757B118325C1A00224F3E /* PiconSampleProject */,
224
+ 3D9757D518325C1A00224F3E /* PiconSampleProjectTests */,
225
+ );
226
+ };
227
+ /* End PBXProject section */
228
+
229
+ /* Begin PBXResourcesBuildPhase section */
230
+ 3D9757B018325C1A00224F3E /* Resources */ = {
231
+ isa = PBXResourcesBuildPhase;
232
+ buildActionMask = 2147483647;
233
+ files = (
234
+ 3D9757CC18325C1A00224F3E /* Main_iPad.storyboard in Resources */,
235
+ 3D9757D118325C1A00224F3E /* Images.xcassets in Resources */,
236
+ 3D9757C918325C1A00224F3E /* Main_iPhone.storyboard in Resources */,
237
+ 3D9757C018325C1A00224F3E /* InfoPlist.strings in Resources */,
238
+ );
239
+ runOnlyForDeploymentPostprocessing = 0;
240
+ };
241
+ 3D9757D418325C1A00224F3E /* Resources */ = {
242
+ isa = PBXResourcesBuildPhase;
243
+ buildActionMask = 2147483647;
244
+ files = (
245
+ 3D9757E218325C1A00224F3E /* InfoPlist.strings in Resources */,
246
+ );
247
+ runOnlyForDeploymentPostprocessing = 0;
248
+ };
249
+ /* End PBXResourcesBuildPhase section */
250
+
251
+ /* Begin PBXSourcesBuildPhase section */
252
+ 3D9757AE18325C1A00224F3E /* Sources */ = {
253
+ isa = PBXSourcesBuildPhase;
254
+ buildActionMask = 2147483647;
255
+ files = (
256
+ 3D9757CF18325C1A00224F3E /* ViewController.m in Sources */,
257
+ 3D9757C618325C1A00224F3E /* AppDelegate.m in Sources */,
258
+ 3D9757C218325C1A00224F3E /* main.m in Sources */,
259
+ );
260
+ runOnlyForDeploymentPostprocessing = 0;
261
+ };
262
+ 3D9757D218325C1A00224F3E /* Sources */ = {
263
+ isa = PBXSourcesBuildPhase;
264
+ buildActionMask = 2147483647;
265
+ files = (
266
+ 3D9757E418325C1A00224F3E /* PiconSampleProjectTests.m in Sources */,
267
+ );
268
+ runOnlyForDeploymentPostprocessing = 0;
269
+ };
270
+ /* End PBXSourcesBuildPhase section */
271
+
272
+ /* Begin PBXTargetDependency section */
273
+ 3D9757DC18325C1A00224F3E /* PBXTargetDependency */ = {
274
+ isa = PBXTargetDependency;
275
+ target = 3D9757B118325C1A00224F3E /* PiconSampleProject */;
276
+ targetProxy = 3D9757DB18325C1A00224F3E /* PBXContainerItemProxy */;
277
+ };
278
+ /* End PBXTargetDependency section */
279
+
280
+ /* Begin PBXVariantGroup section */
281
+ 3D9757BE18325C1A00224F3E /* InfoPlist.strings */ = {
282
+ isa = PBXVariantGroup;
283
+ children = (
284
+ 3D9757BF18325C1A00224F3E /* en */,
285
+ );
286
+ name = InfoPlist.strings;
287
+ sourceTree = "<group>";
288
+ };
289
+ 3D9757C718325C1A00224F3E /* Main_iPhone.storyboard */ = {
290
+ isa = PBXVariantGroup;
291
+ children = (
292
+ 3D9757C818325C1A00224F3E /* Base */,
293
+ );
294
+ name = Main_iPhone.storyboard;
295
+ sourceTree = "<group>";
296
+ };
297
+ 3D9757CA18325C1A00224F3E /* Main_iPad.storyboard */ = {
298
+ isa = PBXVariantGroup;
299
+ children = (
300
+ 3D9757CB18325C1A00224F3E /* Base */,
301
+ );
302
+ name = Main_iPad.storyboard;
303
+ sourceTree = "<group>";
304
+ };
305
+ 3D9757E018325C1A00224F3E /* InfoPlist.strings */ = {
306
+ isa = PBXVariantGroup;
307
+ children = (
308
+ 3D9757E118325C1A00224F3E /* en */,
309
+ );
310
+ name = InfoPlist.strings;
311
+ sourceTree = "<group>";
312
+ };
313
+ /* End PBXVariantGroup section */
314
+
315
+ /* Begin XCBuildConfiguration section */
316
+ 3D9757E518325C1A00224F3E /* Debug */ = {
317
+ isa = XCBuildConfiguration;
318
+ buildSettings = {
319
+ ALWAYS_SEARCH_USER_PATHS = NO;
320
+ ARCHS = "$(ARCHS_STANDARD_INCLUDING_64_BIT)";
321
+ CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
322
+ CLANG_CXX_LIBRARY = "libc++";
323
+ CLANG_ENABLE_MODULES = YES;
324
+ CLANG_ENABLE_OBJC_ARC = YES;
325
+ CLANG_WARN_BOOL_CONVERSION = YES;
326
+ CLANG_WARN_CONSTANT_CONVERSION = YES;
327
+ CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
328
+ CLANG_WARN_EMPTY_BODY = YES;
329
+ CLANG_WARN_ENUM_CONVERSION = YES;
330
+ CLANG_WARN_INT_CONVERSION = YES;
331
+ CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
332
+ CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
333
+ "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
334
+ COPY_PHASE_STRIP = NO;
335
+ GCC_C_LANGUAGE_STANDARD = gnu99;
336
+ GCC_DYNAMIC_NO_PIC = NO;
337
+ GCC_OPTIMIZATION_LEVEL = 0;
338
+ GCC_PREPROCESSOR_DEFINITIONS = (
339
+ "DEBUG=1",
340
+ "$(inherited)",
341
+ );
342
+ GCC_SYMBOLS_PRIVATE_EXTERN = NO;
343
+ GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
344
+ GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
345
+ GCC_WARN_UNDECLARED_SELECTOR = YES;
346
+ GCC_WARN_UNINITIALIZED_AUTOS = YES;
347
+ GCC_WARN_UNUSED_FUNCTION = YES;
348
+ GCC_WARN_UNUSED_VARIABLE = YES;
349
+ IPHONEOS_DEPLOYMENT_TARGET = 7.0;
350
+ ONLY_ACTIVE_ARCH = YES;
351
+ SDKROOT = iphoneos;
352
+ TARGETED_DEVICE_FAMILY = "1,2";
353
+ };
354
+ name = Debug;
355
+ };
356
+ 3D9757E618325C1A00224F3E /* Release */ = {
357
+ isa = XCBuildConfiguration;
358
+ buildSettings = {
359
+ ALWAYS_SEARCH_USER_PATHS = NO;
360
+ ARCHS = "$(ARCHS_STANDARD_INCLUDING_64_BIT)";
361
+ CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
362
+ CLANG_CXX_LIBRARY = "libc++";
363
+ CLANG_ENABLE_MODULES = YES;
364
+ CLANG_ENABLE_OBJC_ARC = YES;
365
+ CLANG_WARN_BOOL_CONVERSION = YES;
366
+ CLANG_WARN_CONSTANT_CONVERSION = YES;
367
+ CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
368
+ CLANG_WARN_EMPTY_BODY = YES;
369
+ CLANG_WARN_ENUM_CONVERSION = YES;
370
+ CLANG_WARN_INT_CONVERSION = YES;
371
+ CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
372
+ CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
373
+ "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
374
+ COPY_PHASE_STRIP = YES;
375
+ ENABLE_NS_ASSERTIONS = NO;
376
+ GCC_C_LANGUAGE_STANDARD = gnu99;
377
+ GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
378
+ GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
379
+ GCC_WARN_UNDECLARED_SELECTOR = YES;
380
+ GCC_WARN_UNINITIALIZED_AUTOS = YES;
381
+ GCC_WARN_UNUSED_FUNCTION = YES;
382
+ GCC_WARN_UNUSED_VARIABLE = YES;
383
+ IPHONEOS_DEPLOYMENT_TARGET = 7.0;
384
+ SDKROOT = iphoneos;
385
+ TARGETED_DEVICE_FAMILY = "1,2";
386
+ VALIDATE_PRODUCT = YES;
387
+ };
388
+ name = Release;
389
+ };
390
+ 3D9757E818325C1A00224F3E /* Debug */ = {
391
+ isa = XCBuildConfiguration;
392
+ buildSettings = {
393
+ ASSETCATALOG_COMPILER_APPICON_NAME = Picon;
394
+ ASSETCATALOG_COMPILER_LAUNCHIMAGE_NAME = LaunchImage;
395
+ GCC_PRECOMPILE_PREFIX_HEADER = YES;
396
+ GCC_PREFIX_HEADER = "PiconSampleProject/PiconSampleProject-Prefix.pch";
397
+ INFOPLIST_FILE = "PiconSampleProject/PiconSampleProject-Info.plist";
398
+ PRODUCT_NAME = "$(TARGET_NAME)";
399
+ WRAPPER_EXTENSION = app;
400
+ };
401
+ name = Debug;
402
+ };
403
+ 3D9757E918325C1A00224F3E /* Release */ = {
404
+ isa = XCBuildConfiguration;
405
+ buildSettings = {
406
+ ASSETCATALOG_COMPILER_APPICON_NAME = Picon;
407
+ ASSETCATALOG_COMPILER_LAUNCHIMAGE_NAME = LaunchImage;
408
+ GCC_PRECOMPILE_PREFIX_HEADER = YES;
409
+ GCC_PREFIX_HEADER = "PiconSampleProject/PiconSampleProject-Prefix.pch";
410
+ INFOPLIST_FILE = "PiconSampleProject/PiconSampleProject-Info.plist";
411
+ PRODUCT_NAME = "$(TARGET_NAME)";
412
+ WRAPPER_EXTENSION = app;
413
+ };
414
+ name = Release;
415
+ };
416
+ 3D9757EB18325C1A00224F3E /* Debug */ = {
417
+ isa = XCBuildConfiguration;
418
+ buildSettings = {
419
+ ARCHS = "$(ARCHS_STANDARD_INCLUDING_64_BIT)";
420
+ BUNDLE_LOADER = "$(BUILT_PRODUCTS_DIR)/PiconSampleProject.app/PiconSampleProject";
421
+ FRAMEWORK_SEARCH_PATHS = (
422
+ "$(SDKROOT)/Developer/Library/Frameworks",
423
+ "$(inherited)",
424
+ "$(DEVELOPER_FRAMEWORKS_DIR)",
425
+ );
426
+ GCC_PRECOMPILE_PREFIX_HEADER = YES;
427
+ GCC_PREFIX_HEADER = "PiconSampleProject/PiconSampleProject-Prefix.pch";
428
+ GCC_PREPROCESSOR_DEFINITIONS = (
429
+ "DEBUG=1",
430
+ "$(inherited)",
431
+ );
432
+ INFOPLIST_FILE = "PiconSampleProjectTests/PiconSampleProjectTests-Info.plist";
433
+ PRODUCT_NAME = "$(TARGET_NAME)";
434
+ TEST_HOST = "$(BUNDLE_LOADER)";
435
+ WRAPPER_EXTENSION = xctest;
436
+ };
437
+ name = Debug;
438
+ };
439
+ 3D9757EC18325C1A00224F3E /* Release */ = {
440
+ isa = XCBuildConfiguration;
441
+ buildSettings = {
442
+ ARCHS = "$(ARCHS_STANDARD_INCLUDING_64_BIT)";
443
+ BUNDLE_LOADER = "$(BUILT_PRODUCTS_DIR)/PiconSampleProject.app/PiconSampleProject";
444
+ FRAMEWORK_SEARCH_PATHS = (
445
+ "$(SDKROOT)/Developer/Library/Frameworks",
446
+ "$(inherited)",
447
+ "$(DEVELOPER_FRAMEWORKS_DIR)",
448
+ );
449
+ GCC_PRECOMPILE_PREFIX_HEADER = YES;
450
+ GCC_PREFIX_HEADER = "PiconSampleProject/PiconSampleProject-Prefix.pch";
451
+ INFOPLIST_FILE = "PiconSampleProjectTests/PiconSampleProjectTests-Info.plist";
452
+ PRODUCT_NAME = "$(TARGET_NAME)";
453
+ TEST_HOST = "$(BUNDLE_LOADER)";
454
+ WRAPPER_EXTENSION = xctest;
455
+ };
456
+ name = Release;
457
+ };
458
+ /* End XCBuildConfiguration section */
459
+
460
+ /* Begin XCConfigurationList section */
461
+ 3D9757AD18325C1A00224F3E /* Build configuration list for PBXProject "PiconSampleProject" */ = {
462
+ isa = XCConfigurationList;
463
+ buildConfigurations = (
464
+ 3D9757E518325C1A00224F3E /* Debug */,
465
+ 3D9757E618325C1A00224F3E /* Release */,
466
+ );
467
+ defaultConfigurationIsVisible = 0;
468
+ defaultConfigurationName = Release;
469
+ };
470
+ 3D9757E718325C1A00224F3E /* Build configuration list for PBXNativeTarget "PiconSampleProject" */ = {
471
+ isa = XCConfigurationList;
472
+ buildConfigurations = (
473
+ 3D9757E818325C1A00224F3E /* Debug */,
474
+ 3D9757E918325C1A00224F3E /* Release */,
475
+ );
476
+ defaultConfigurationIsVisible = 0;
477
+ };
478
+ 3D9757EA18325C1A00224F3E /* Build configuration list for PBXNativeTarget "PiconSampleProjectTests" */ = {
479
+ isa = XCConfigurationList;
480
+ buildConfigurations = (
481
+ 3D9757EB18325C1A00224F3E /* Debug */,
482
+ 3D9757EC18325C1A00224F3E /* Release */,
483
+ );
484
+ defaultConfigurationIsVisible = 0;
485
+ };
486
+ /* End XCConfigurationList section */
487
+ };
488
+ rootObject = 3D9757AA18325C1A00224F3E /* Project object */;
489
+ }