cinder 0.5.1
Sign up to get free protection for your applications and to get access to all the features.
- data/.gitignore +18 -0
- data/Gemfile +5 -0
- data/LICENSE.txt +22 -0
- data/README.md +79 -0
- data/Rakefile +10 -0
- data/bin/cinder +19 -0
- data/cinder.gemspec +34 -0
- data/lib/cinder.rb +5 -0
- data/lib/cinder/commands.rb +13 -0
- data/lib/cinder/commands/build.rb +69 -0
- data/lib/cinder/commands/lint.rb +284 -0
- data/lib/cinder/commands/setup.rb +32 -0
- data/lib/cinder/external_commands.rb +43 -0
- data/lib/cinder/version.rb +3 -0
- data/spec/cinder/commands/lint_spec.rb +121 -0
- data/spec/cinder_spec.rb +9 -0
- data/spec/fake_workspace.rb +23 -0
- data/spec/fixtures/both-configs-sans-ad_hoc-provisioning/Foo.xcodeproj/project.pbxproj +329 -0
- data/spec/fixtures/both-configs-sans-ad_hoc-provisioning/Foo.xcworkspace/contents.xcworkspacedata +1 -0
- data/spec/fixtures/both-configs-sans-ad_hoc-provisioning/Podfile +3 -0
- data/spec/fixtures/both-configs-sans-ad_hoc-provisioning/enterprise.mobileprovision +0 -0
- data/spec/fixtures/both-configs-sans-enterprise-provisioning/Foo.xcodeproj/project.pbxproj +329 -0
- data/spec/fixtures/both-configs-sans-enterprise-provisioning/Foo.xcworkspace/contents.xcworkspacedata +1 -0
- data/spec/fixtures/both-configs-sans-enterprise-provisioning/Podfile +3 -0
- data/spec/fixtures/both-configs-sans-enterprise-provisioning/ad_hoc.mobileprovision +0 -0
- data/spec/fixtures/both-configs/Foo.xcodeproj/project.pbxproj +329 -0
- data/spec/fixtures/both-configs/Foo.xcodeproj/xcshareddata/xcschemes/Foo.xcscheme +0 -0
- data/spec/fixtures/both-configs/Foo.xcworkspace/contents.xcworkspacedata +1 -0
- data/spec/fixtures/both-configs/Podfile +3 -0
- data/spec/fixtures/both-configs/ad_hoc.mobileprovision +0 -0
- data/spec/fixtures/both-configs/enterprise.mobileprovision +0 -0
- data/spec/fixtures/empty-podfile/Foo.xcodeproj/project.pbxproj +319 -0
- data/spec/fixtures/empty-podfile/Foo.xcworkspace/contents.xcworkspacedata +1 -0
- data/spec/fixtures/empty-podfile/Podfile +0 -0
- data/spec/fixtures/lowercase/Podfile +3 -0
- data/spec/fixtures/lowercase/ad_hoc.mobileprovision +0 -0
- data/spec/fixtures/lowercase/foo.xcodeproj/project.pbxproj +319 -0
- data/spec/fixtures/lowercase/foo.xcodeproj/xcshareddata/xcschemes/foo.xcscheme +0 -0
- data/spec/fixtures/lowercase/foo.xcworkspace/contents.xcworkspacedata +1 -0
- data/spec/fixtures/multiple-workspaces/Bar.xcworkspace/contents.xcworkspacedata +1 -0
- data/spec/fixtures/multiple-workspaces/Foo.xcodeproj/project.pbxproj +319 -0
- data/spec/fixtures/multiple-workspaces/Foo.xcworkspace/contents.xcworkspacedata +1 -0
- data/spec/fixtures/multiple-workspaces/Podfile +3 -0
- data/spec/fixtures/proper/Foo.xcodeproj/project.pbxproj +319 -0
- data/spec/fixtures/proper/Foo.xcodeproj/xcshareddata/xcschemes/Foo.xcscheme +0 -0
- data/spec/fixtures/proper/Foo.xcworkspace/contents.xcworkspacedata +1 -0
- data/spec/fixtures/proper/Podfile +3 -0
- data/spec/fixtures/proper/ad_hoc.mobileprovision +0 -0
- data/spec/fixtures/sans-ad_hoc-or-enterprise-config/Foo.xcodeproj/project.pbxproj +309 -0
- data/spec/fixtures/sans-ad_hoc-or-enterprise-config/Foo.xcworkspace/contents.xcworkspacedata +1 -0
- data/spec/fixtures/sans-ad_hoc-or-enterprise-config/Podfile +3 -0
- data/spec/fixtures/sans-podfile/Foo.xcodeproj/project.pbxproj +319 -0
- data/spec/fixtures/sans-podfile/Foo.xcworkspace/contents.xcworkspacedata +1 -0
- data/spec/fixtures/sans-project/Foo.xcworkspace/contents.xcworkspacedata +1 -0
- data/spec/fixtures/sans-project/Podfile +3 -0
- data/spec/fixtures/sans-target/Foo.xcodeproj/project.pbxproj +113 -0
- data/spec/fixtures/sans-target/Foo.xcworkspace/contents.xcworkspacedata +1 -0
- data/spec/fixtures/sans-target/Podfile +3 -0
- data/spec/fixtures/sans-workspace/Foo.xcodeproj/project.pbxproj +319 -0
- data/spec/fixtures/sans-workspace/Podfile +3 -0
- data/spec/fixtures/whitespace-workspace/Foo App.xcodeproj/project.pbxproj +319 -0
- data/spec/fixtures/whitespace-workspace/Foo App.xcworkspace/contents.xcworkspacedata +1 -0
- data/spec/fixtures/whitespace-workspace/Podfile +3 -0
- data/spec/fixtures/workspace-project-mismatch/Bar.xcodeproj/project.pbxproj +319 -0
- data/spec/fixtures/workspace-project-mismatch/Foo.xcworkspace/contents.xcworkspacedata +1 -0
- data/spec/fixtures/workspace-project-mismatch/Podfile +3 -0
- data/spec/fixtures/workspace-projects-mismatch/Bar.xcodeproj/project.pbxproj +319 -0
- data/spec/fixtures/workspace-projects-mismatch/Baz.xcodeproj/project.pbxproj +319 -0
- data/spec/fixtures/workspace-projects-mismatch/Foo.xcworkspace/contents.xcworkspacedata +1 -0
- data/spec/fixtures/workspace-projects-mismatch/Podfile +3 -0
- data/spec/fixtures/workspace-target-mismatch/Foo.xcodeproj/project.pbxproj +319 -0
- data/spec/fixtures/workspace-target-mismatch/Foo.xcworkspace/contents.xcworkspacedata +1 -0
- data/spec/fixtures/workspace-target-mismatch/Podfile +3 -0
- data/spec/fixtures/workspace-targets-mismatch/Foo.xcodeproj/project.pbxproj +504 -0
- data/spec/fixtures/workspace-targets-mismatch/Foo.xcworkspace/contents.xcworkspacedata +1 -0
- data/spec/fixtures/workspace-targets-mismatch/Podfile +3 -0
- data/spec/spec_helper.rb +20 -0
- metadata +363 -0
@@ -0,0 +1,32 @@
|
|
1
|
+
module Cinder
|
2
|
+
command :setup do |c|
|
3
|
+
c.syntax = 'cinder setup'
|
4
|
+
c.summary = 'Setup project.'
|
5
|
+
c.description = 'Set up project for development and building.'
|
6
|
+
|
7
|
+
c.action do |args, options|
|
8
|
+
install_cocoapods_dependencies
|
9
|
+
import_provisioning_profiles
|
10
|
+
say_ok 'Setup complete'
|
11
|
+
end
|
12
|
+
|
13
|
+
private
|
14
|
+
|
15
|
+
def self.install_cocoapods_dependencies
|
16
|
+
log 'pod', 'Installing Cocoapods dependencies'
|
17
|
+
pod! 'install'
|
18
|
+
end
|
19
|
+
|
20
|
+
def self.import_provisioning_profiles
|
21
|
+
profiles_home = File.expand_path('~/Library/MobileDevice/Provisioning Profiles')
|
22
|
+
Dir['{ad_hoc,app_store,enterprise}.mobileprovision'].each do |f|
|
23
|
+
p7 = OpenSSL::PKCS7.new(File.read(f))
|
24
|
+
p7.verify([], OpenSSL::X509::Store.new)
|
25
|
+
profile = Plist::parse_xml(p7.data)
|
26
|
+
mkdir! %{-p "#{profiles_home}"} unless File.directory? profiles_home
|
27
|
+
log 'cp', "Importing `#{f}'"
|
28
|
+
cp! %{#{f} "#{profiles_home}/#{profile['UUID']}.mobileprovision"}
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
@@ -0,0 +1,43 @@
|
|
1
|
+
module Cinder
|
2
|
+
def self.pod! command
|
3
|
+
execute_command 'bin/pod', command
|
4
|
+
end
|
5
|
+
def self.mkdir! command
|
6
|
+
execute_command :mkdir, command
|
7
|
+
end
|
8
|
+
def self.cp! command
|
9
|
+
execute_command :cp, command
|
10
|
+
end
|
11
|
+
def self.security! command
|
12
|
+
execute_command :security, command
|
13
|
+
end
|
14
|
+
def self.git! command
|
15
|
+
execute_command :git, command
|
16
|
+
end
|
17
|
+
def self.PlistBuddy! command
|
18
|
+
execute_command '/usr/libexec/PlistBuddy', command
|
19
|
+
end
|
20
|
+
def self.ipa! command
|
21
|
+
execute_command 'bin/ipa', command
|
22
|
+
end
|
23
|
+
|
24
|
+
private
|
25
|
+
|
26
|
+
def self.execute_command name, command
|
27
|
+
bin = `which #{name}`.strip
|
28
|
+
say_error "command not found: #{name}" and abort if bin.empty?
|
29
|
+
|
30
|
+
require 'open4'
|
31
|
+
|
32
|
+
full_command = "#{bin} #{command}"
|
33
|
+
|
34
|
+
out = ''
|
35
|
+
options = {:stdout => out, :stderr => out, :status => true}
|
36
|
+
status = Open4.spawn(full_command, options)
|
37
|
+
unless status.success?
|
38
|
+
log name, out
|
39
|
+
say_error "#{bin} exited with status #{status.exitstatus}" and abort
|
40
|
+
end
|
41
|
+
out
|
42
|
+
end
|
43
|
+
end
|
@@ -0,0 +1,121 @@
|
|
1
|
+
require "spec_helper"
|
2
|
+
require 'stringio'
|
3
|
+
require "cinder/commands/lint"
|
4
|
+
|
5
|
+
describe Cinder::Linter do
|
6
|
+
|
7
|
+
let(:ad_hoc_profile) do
|
8
|
+
double 'ad_hoc_profile',
|
9
|
+
:valid? => true,
|
10
|
+
:distribution => :ad_hoc,
|
11
|
+
:ad_hoc? => true,
|
12
|
+
:devices => ['BADF00D']
|
13
|
+
end
|
14
|
+
|
15
|
+
let(:enterprise_profile) do
|
16
|
+
double 'enterprise_profile',
|
17
|
+
:valid? => true,
|
18
|
+
:distribution => :enterprise,
|
19
|
+
:ad_hoc? => false,
|
20
|
+
:devices => []
|
21
|
+
end
|
22
|
+
|
23
|
+
before do
|
24
|
+
mock_terminal
|
25
|
+
Cinder::ProvisioningProfile.stub(:from_file).with('ad_hoc.mobileprovision') { ad_hoc_profile }
|
26
|
+
Cinder::ProvisioningProfile.stub(:from_file).with('enterprise.mobileprovision') { enterprise_profile }
|
27
|
+
end
|
28
|
+
|
29
|
+
describe "command output" do
|
30
|
+
|
31
|
+
let(:linter) { Cinder::Linter.new }
|
32
|
+
subject do
|
33
|
+
linter._lint
|
34
|
+
@output.string
|
35
|
+
end
|
36
|
+
|
37
|
+
context "with everything set up properly", :fakews, :ws => 'proper' do
|
38
|
+
it { should =~ /OK to go/ }
|
39
|
+
end
|
40
|
+
|
41
|
+
context "without projects", :fakews, :ws => 'sans-project' do
|
42
|
+
it { should =~ /No Xcode project found/ }
|
43
|
+
it { should_not =~ /OK to go/ }
|
44
|
+
end
|
45
|
+
|
46
|
+
context "without workspace", :fakews, :ws => 'sans-workspace' do
|
47
|
+
it { should =~ /No Xcode workspace found/ }
|
48
|
+
it { should_not =~ /OK to go/ }
|
49
|
+
end
|
50
|
+
|
51
|
+
context "with more than 1 workspace", :fakews, :ws => 'multiple-workspaces' do
|
52
|
+
it { should =~ /There can be only one Xcode workspace/ }
|
53
|
+
it { should_not =~ /OK to go/ }
|
54
|
+
end
|
55
|
+
|
56
|
+
context "with whitespace in workspace name", :fakews, :ws => 'whitespace-workspace' do
|
57
|
+
it { should =~ /Workspace name `Foo App' must not contain whitespace/ }
|
58
|
+
it { should_not =~ /OK to go/ }
|
59
|
+
end
|
60
|
+
|
61
|
+
context "with .xcodeproj name differing from workspace", :fakews, :ws => 'workspace-project-mismatch' do
|
62
|
+
it { should =~ /Xcode project name `Bar' must match workspace name `Foo'/ }
|
63
|
+
it { should_not =~ /OK to go/ }
|
64
|
+
end
|
65
|
+
|
66
|
+
context "with no projects matching workspace name", :fakews, :ws => 'workspace-projects-mismatch' do
|
67
|
+
it { should =~ /One Xcode project name must match workspace name `Foo'/ }
|
68
|
+
it { should_not =~ /OK to go/ }
|
69
|
+
end
|
70
|
+
|
71
|
+
context "with unconventional name", :fakews, :ws => 'lowercase' do
|
72
|
+
it { should =~ /Workspace name `foo' should be CamelCase/ }
|
73
|
+
it { should =~ /OK to go/ }
|
74
|
+
end
|
75
|
+
|
76
|
+
context "without Podfile", :fakews, :ws => 'sans-podfile' do
|
77
|
+
it { should =~ /No CocoaPods Podfile found/ }
|
78
|
+
it { should_not =~ /OK to go/ }
|
79
|
+
end
|
80
|
+
|
81
|
+
context "with empty Podfile", :fakews, :ws => 'empty-podfile' do
|
82
|
+
it { should =~ /CocoaPods platform must be iOS/ }
|
83
|
+
it { should =~ /Must have at least one CocoaPods dependency/ }
|
84
|
+
it { should_not =~ /OK to go/ }
|
85
|
+
end
|
86
|
+
|
87
|
+
context "without a target", :fakews, :ws => 'sans-target' do
|
88
|
+
it { should =~ /Xcode project must have at least one target/ }
|
89
|
+
it { should_not =~ /OK to go/ }
|
90
|
+
end
|
91
|
+
|
92
|
+
context "with target name differing from workspace", :fakews, :ws => 'workspace-target-mismatch' do
|
93
|
+
it { should =~ /Target name `Stay on target' must match workspace name `Foo'/ }
|
94
|
+
it { should_not =~ /OK to go/ }
|
95
|
+
end
|
96
|
+
|
97
|
+
context "with no targets matching workspace name", :fakews, :ws => 'workspace-targets-mismatch' do
|
98
|
+
it { should =~ /One Xcode target name must match workspace name `Foo'/ }
|
99
|
+
it { should_not =~ /OK to go/ }
|
100
|
+
end
|
101
|
+
|
102
|
+
context "without testing build configuration", :fakews, :ws => 'sans-ad_hoc-or-enterprise-config' do
|
103
|
+
it { should =~ /Must have `AdHoc', `Enterprise', or both build configurations/ }
|
104
|
+
it { should_not =~ /OK to go/ }
|
105
|
+
end
|
106
|
+
|
107
|
+
context "with both testing build configurations", :fakews, :ws => 'both-configs' do
|
108
|
+
it { should =~ /OK to go/ }
|
109
|
+
|
110
|
+
context "without AdHoc provisioning profile", :ws => 'both-configs-sans-ad_hoc-provisioning' do
|
111
|
+
it { should =~ /`AdHoc' build configuration must have an `ad_hoc.mobileprovision' in project root/ }
|
112
|
+
it { should_not =~ /OK to go/ }
|
113
|
+
end
|
114
|
+
|
115
|
+
context "without Enterprise provisioning profile", :ws => 'both-configs-sans-enterprise-provisioning' do
|
116
|
+
it { should =~ /`Enterprise' build configuration must have an `enterprise.mobileprovision' in project root/ }
|
117
|
+
it { should_not =~ /OK to go/ }
|
118
|
+
end
|
119
|
+
end
|
120
|
+
end
|
121
|
+
end
|
data/spec/cinder_spec.rb
ADDED
@@ -0,0 +1,23 @@
|
|
1
|
+
module FakeWorkspace
|
2
|
+
module SpecHelpers
|
3
|
+
def self.included example_group
|
4
|
+
working_dir = Dir.getwd
|
5
|
+
|
6
|
+
example_group.before :each do
|
7
|
+
ws = example.metadata[:ws]
|
8
|
+
raise "must specify fake workspace with :ws" unless ws
|
9
|
+
workspace = File.join 'spec/fixtures', ws
|
10
|
+
begin
|
11
|
+
Dir.chdir workspace
|
12
|
+
rescue
|
13
|
+
Dir.chdir working_dir
|
14
|
+
raise "No fake workspace found at #{workspace}"
|
15
|
+
end
|
16
|
+
end
|
17
|
+
|
18
|
+
example_group.after :each do
|
19
|
+
Dir.chdir working_dir
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
@@ -0,0 +1,329 @@
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
2
|
+
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
3
|
+
<plist version="1.0">
|
4
|
+
<dict>
|
5
|
+
<key>archiveVersion</key>
|
6
|
+
<string>1</string>
|
7
|
+
<key>classes</key>
|
8
|
+
<dict/>
|
9
|
+
<key>objectVersion</key>
|
10
|
+
<string>46</string>
|
11
|
+
<key>objects</key>
|
12
|
+
<dict>
|
13
|
+
<key>411586D0BB4B4316AED38AC7</key>
|
14
|
+
<dict>
|
15
|
+
<key>attributes</key>
|
16
|
+
<dict>
|
17
|
+
<key>LastUpgradeCheck</key>
|
18
|
+
<string>0450</string>
|
19
|
+
</dict>
|
20
|
+
<key>buildConfigurationList</key>
|
21
|
+
<string>7EEF99AC0DAC4D43B8022109</string>
|
22
|
+
<key>compatibilityVersion</key>
|
23
|
+
<string>Xcode 3.2</string>
|
24
|
+
<key>developmentRegion</key>
|
25
|
+
<string>English</string>
|
26
|
+
<key>hasScannedForEncodings</key>
|
27
|
+
<string>0</string>
|
28
|
+
<key>isa</key>
|
29
|
+
<string>PBXProject</string>
|
30
|
+
<key>knownRegions</key>
|
31
|
+
<array>
|
32
|
+
<string>en</string>
|
33
|
+
</array>
|
34
|
+
<key>mainGroup</key>
|
35
|
+
<string>D24CCC991A364BAF83843B3C</string>
|
36
|
+
<key>productRefGroup</key>
|
37
|
+
<string>B2D77DB8D7C744F0A212D960</string>
|
38
|
+
<key>projectReferences</key>
|
39
|
+
<array/>
|
40
|
+
<key>targets</key>
|
41
|
+
<array>
|
42
|
+
<string>C24E7F3499DD43508B6069C1</string>
|
43
|
+
</array>
|
44
|
+
</dict>
|
45
|
+
<key>5E1457CA10D7479E98484D71</key>
|
46
|
+
<dict>
|
47
|
+
<key>buildActionMask</key>
|
48
|
+
<string>2147483647</string>
|
49
|
+
<key>files</key>
|
50
|
+
<array/>
|
51
|
+
<key>isa</key>
|
52
|
+
<string>PBXSourcesBuildPhase</string>
|
53
|
+
<key>runOnlyForDeploymentPostprocessing</key>
|
54
|
+
<string>0</string>
|
55
|
+
</dict>
|
56
|
+
<key>6608EC8FDB84446D8A579F1E</key>
|
57
|
+
<dict>
|
58
|
+
<key>fileRef</key>
|
59
|
+
<string>DF2477F05D3740FAAB0468B7</string>
|
60
|
+
<key>isa</key>
|
61
|
+
<string>PBXBuildFile</string>
|
62
|
+
<key>settings</key>
|
63
|
+
<dict/>
|
64
|
+
</dict>
|
65
|
+
<key>6B2164C7EB1341BB94A83E58</key>
|
66
|
+
<dict>
|
67
|
+
<key>explicitFileType</key>
|
68
|
+
<string>archive.ar</string>
|
69
|
+
<key>includeInIndex</key>
|
70
|
+
<string>0</string>
|
71
|
+
<key>isa</key>
|
72
|
+
<string>PBXFileReference</string>
|
73
|
+
<key>name</key>
|
74
|
+
<string>libFoo.a</string>
|
75
|
+
<key>path</key>
|
76
|
+
<string>libFoo.a</string>
|
77
|
+
<key>sourceTree</key>
|
78
|
+
<string>BUILT_PRODUCTS_DIR</string>
|
79
|
+
</dict>
|
80
|
+
<key>6D20F12886A2459A83969F87</key>
|
81
|
+
<dict>
|
82
|
+
<key>buildSettings</key>
|
83
|
+
<dict>
|
84
|
+
<key>ALWAYS_SEARCH_USER_PATHS</key>
|
85
|
+
<string>NO</string>
|
86
|
+
<key>ARCHS</key>
|
87
|
+
<string>$(ARCHS_STANDARD_32_BIT)</string>
|
88
|
+
<key>COPY_PHASE_STRIP</key>
|
89
|
+
<string>NO</string>
|
90
|
+
<key>DSTROOT</key>
|
91
|
+
<string>/tmp/xcodeproj.dst</string>
|
92
|
+
<key>GCC_C_LANGUAGE_STANDARD</key>
|
93
|
+
<string>gnu99</string>
|
94
|
+
<key>GCC_DYNAMIC_NO_PIC</key>
|
95
|
+
<string>NO</string>
|
96
|
+
<key>GCC_OPTIMIZATION_LEVEL</key>
|
97
|
+
<string>0</string>
|
98
|
+
<key>GCC_PRECOMPILE_PREFIX_HEADER</key>
|
99
|
+
<string>YES</string>
|
100
|
+
<key>GCC_PREPROCESSOR_DEFINITIONS</key>
|
101
|
+
<array>
|
102
|
+
<string>DEBUG=1</string>
|
103
|
+
<string>$(inherited)</string>
|
104
|
+
</array>
|
105
|
+
<key>GCC_SYMBOLS_PRIVATE_EXTERN</key>
|
106
|
+
<string>NO</string>
|
107
|
+
<key>GCC_VERSION</key>
|
108
|
+
<string>com.apple.compilers.llvm.clang.1_0</string>
|
109
|
+
<key>INSTALL_PATH</key>
|
110
|
+
<string>$(BUILT_PRODUCTS_DIR)</string>
|
111
|
+
<key>IPHONEOS_DEPLOYMENT_TARGET</key>
|
112
|
+
<string>4.3</string>
|
113
|
+
<key>OTHER_LDFLAGS</key>
|
114
|
+
<string></string>
|
115
|
+
<key>PRODUCT_NAME</key>
|
116
|
+
<string>$(TARGET_NAME)</string>
|
117
|
+
<key>PUBLIC_HEADERS_FOLDER_PATH</key>
|
118
|
+
<string>$(TARGET_NAME)</string>
|
119
|
+
<key>SDKROOT</key>
|
120
|
+
<string>iphoneos</string>
|
121
|
+
<key>SKIP_INSTALL</key>
|
122
|
+
<string>YES</string>
|
123
|
+
</dict>
|
124
|
+
<key>isa</key>
|
125
|
+
<string>XCBuildConfiguration</string>
|
126
|
+
<key>name</key>
|
127
|
+
<string>Debug</string>
|
128
|
+
</dict>
|
129
|
+
<key>7B63D8359F2443498349A034</key>
|
130
|
+
<dict>
|
131
|
+
<key>buildConfigurations</key>
|
132
|
+
<array>
|
133
|
+
<string>8DD5757BF0884080B280331E</string>
|
134
|
+
<string>6D20F12886A2459A83969F87</string>
|
135
|
+
</array>
|
136
|
+
<key>defaultConfigurationIsVisible</key>
|
137
|
+
<string>0</string>
|
138
|
+
<key>defaultConfigurationName</key>
|
139
|
+
<string>Release</string>
|
140
|
+
<key>isa</key>
|
141
|
+
<string>XCConfigurationList</string>
|
142
|
+
</dict>
|
143
|
+
<key>7EEF99AC0DAC4D43B8022109</key>
|
144
|
+
<dict>
|
145
|
+
<key>buildConfigurations</key>
|
146
|
+
<array>
|
147
|
+
<string>E705F282629D4EB88F3CFD43</string>
|
148
|
+
<string>8B1D2394ACAE4DDE9875EA46</string>
|
149
|
+
<string>BCB2B12A985C4B008640F79A</string>
|
150
|
+
</array>
|
151
|
+
<key>defaultConfigurationIsVisible</key>
|
152
|
+
<string>0</string>
|
153
|
+
<key>defaultConfigurationName</key>
|
154
|
+
<string>AdHoc</string>
|
155
|
+
<key>isa</key>
|
156
|
+
<string>XCConfigurationList</string>
|
157
|
+
</dict>
|
158
|
+
<key>8B1D2394ACAE4DDE9875EA46</key>
|
159
|
+
<dict>
|
160
|
+
<key>buildSettings</key>
|
161
|
+
<dict/>
|
162
|
+
<key>isa</key>
|
163
|
+
<string>XCBuildConfiguration</string>
|
164
|
+
<key>name</key>
|
165
|
+
<string>AdHoc</string>
|
166
|
+
</dict>
|
167
|
+
<key>8DD5757BF0884080B280331E</key>
|
168
|
+
<dict>
|
169
|
+
<key>buildSettings</key>
|
170
|
+
<dict>
|
171
|
+
<key>ALWAYS_SEARCH_USER_PATHS</key>
|
172
|
+
<string>NO</string>
|
173
|
+
<key>ARCHS</key>
|
174
|
+
<string>$(ARCHS_STANDARD_32_BIT)</string>
|
175
|
+
<key>COPY_PHASE_STRIP</key>
|
176
|
+
<string>YES</string>
|
177
|
+
<key>DSTROOT</key>
|
178
|
+
<string>/tmp/xcodeproj.dst</string>
|
179
|
+
<key>GCC_C_LANGUAGE_STANDARD</key>
|
180
|
+
<string>gnu99</string>
|
181
|
+
<key>GCC_PRECOMPILE_PREFIX_HEADER</key>
|
182
|
+
<string>YES</string>
|
183
|
+
<key>GCC_VERSION</key>
|
184
|
+
<string>com.apple.compilers.llvm.clang.1_0</string>
|
185
|
+
<key>INSTALL_PATH</key>
|
186
|
+
<string>$(BUILT_PRODUCTS_DIR)</string>
|
187
|
+
<key>IPHONEOS_DEPLOYMENT_TARGET</key>
|
188
|
+
<string>4.3</string>
|
189
|
+
<key>OTHER_CFLAGS</key>
|
190
|
+
<array>
|
191
|
+
<string>-DNS_BLOCK_ASSERTIONS=1</string>
|
192
|
+
<string>$(inherited)</string>
|
193
|
+
</array>
|
194
|
+
<key>OTHER_CPLUSPLUSFLAGS</key>
|
195
|
+
<array>
|
196
|
+
<string>-DNS_BLOCK_ASSERTIONS=1</string>
|
197
|
+
<string>$(inherited)</string>
|
198
|
+
</array>
|
199
|
+
<key>OTHER_LDFLAGS</key>
|
200
|
+
<string></string>
|
201
|
+
<key>PRODUCT_NAME</key>
|
202
|
+
<string>$(TARGET_NAME)</string>
|
203
|
+
<key>PUBLIC_HEADERS_FOLDER_PATH</key>
|
204
|
+
<string>$(TARGET_NAME)</string>
|
205
|
+
<key>SDKROOT</key>
|
206
|
+
<string>iphoneos</string>
|
207
|
+
<key>SKIP_INSTALL</key>
|
208
|
+
<string>YES</string>
|
209
|
+
<key>VALIDATE_PRODUCT</key>
|
210
|
+
<string>YES</string>
|
211
|
+
</dict>
|
212
|
+
<key>isa</key>
|
213
|
+
<string>XCBuildConfiguration</string>
|
214
|
+
<key>name</key>
|
215
|
+
<string>Release</string>
|
216
|
+
</dict>
|
217
|
+
<key>94BCEDD4F97A454BA3938B87</key>
|
218
|
+
<dict>
|
219
|
+
<key>buildActionMask</key>
|
220
|
+
<string>2147483647</string>
|
221
|
+
<key>files</key>
|
222
|
+
<array>
|
223
|
+
<string>6608EC8FDB84446D8A579F1E</string>
|
224
|
+
</array>
|
225
|
+
<key>isa</key>
|
226
|
+
<string>PBXFrameworksBuildPhase</string>
|
227
|
+
<key>runOnlyForDeploymentPostprocessing</key>
|
228
|
+
<string>0</string>
|
229
|
+
</dict>
|
230
|
+
<key>B2D77DB8D7C744F0A212D960</key>
|
231
|
+
<dict>
|
232
|
+
<key>children</key>
|
233
|
+
<array>
|
234
|
+
<string>6B2164C7EB1341BB94A83E58</string>
|
235
|
+
</array>
|
236
|
+
<key>isa</key>
|
237
|
+
<string>PBXGroup</string>
|
238
|
+
<key>name</key>
|
239
|
+
<string>Products</string>
|
240
|
+
<key>sourceTree</key>
|
241
|
+
<string><group></string>
|
242
|
+
</dict>
|
243
|
+
<key>BCB2B12A985C4B008640F79A</key>
|
244
|
+
<dict>
|
245
|
+
<key>buildSettings</key>
|
246
|
+
<dict/>
|
247
|
+
<key>isa</key>
|
248
|
+
<string>XCBuildConfiguration</string>
|
249
|
+
<key>name</key>
|
250
|
+
<string>Enterprise</string>
|
251
|
+
</dict>
|
252
|
+
<key>C24E7F3499DD43508B6069C1</key>
|
253
|
+
<dict>
|
254
|
+
<key>buildConfigurationList</key>
|
255
|
+
<string>7B63D8359F2443498349A034</string>
|
256
|
+
<key>buildPhases</key>
|
257
|
+
<array>
|
258
|
+
<string>5E1457CA10D7479E98484D71</string>
|
259
|
+
<string>94BCEDD4F97A454BA3938B87</string>
|
260
|
+
</array>
|
261
|
+
<key>buildRules</key>
|
262
|
+
<array/>
|
263
|
+
<key>dependencies</key>
|
264
|
+
<array/>
|
265
|
+
<key>isa</key>
|
266
|
+
<string>PBXNativeTarget</string>
|
267
|
+
<key>name</key>
|
268
|
+
<string>Foo</string>
|
269
|
+
<key>productName</key>
|
270
|
+
<string>Foo</string>
|
271
|
+
<key>productReference</key>
|
272
|
+
<string>6B2164C7EB1341BB94A83E58</string>
|
273
|
+
<key>productType</key>
|
274
|
+
<string>com.apple.product-type.application</string>
|
275
|
+
</dict>
|
276
|
+
<key>D24CCC991A364BAF83843B3C</key>
|
277
|
+
<dict>
|
278
|
+
<key>children</key>
|
279
|
+
<array>
|
280
|
+
<string>B2D77DB8D7C744F0A212D960</string>
|
281
|
+
<string>DA11037065634A73890959E9</string>
|
282
|
+
</array>
|
283
|
+
<key>isa</key>
|
284
|
+
<string>PBXGroup</string>
|
285
|
+
<key>sourceTree</key>
|
286
|
+
<string><group></string>
|
287
|
+
</dict>
|
288
|
+
<key>DA11037065634A73890959E9</key>
|
289
|
+
<dict>
|
290
|
+
<key>children</key>
|
291
|
+
<array>
|
292
|
+
<string>DF2477F05D3740FAAB0468B7</string>
|
293
|
+
</array>
|
294
|
+
<key>isa</key>
|
295
|
+
<string>PBXGroup</string>
|
296
|
+
<key>name</key>
|
297
|
+
<string>Frameworks</string>
|
298
|
+
<key>sourceTree</key>
|
299
|
+
<string><group></string>
|
300
|
+
</dict>
|
301
|
+
<key>DF2477F05D3740FAAB0468B7</key>
|
302
|
+
<dict>
|
303
|
+
<key>includeInIndex</key>
|
304
|
+
<string>1</string>
|
305
|
+
<key>isa</key>
|
306
|
+
<string>PBXFileReference</string>
|
307
|
+
<key>lastKnownFileType</key>
|
308
|
+
<string>wrapper.framework</string>
|
309
|
+
<key>name</key>
|
310
|
+
<string>Foundation.framework</string>
|
311
|
+
<key>path</key>
|
312
|
+
<string>Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS6.1.sdk/System/Library/Frameworks/Foundation.framework</string>
|
313
|
+
<key>sourceTree</key>
|
314
|
+
<string>DEVELOPER_DIR</string>
|
315
|
+
</dict>
|
316
|
+
<key>E705F282629D4EB88F3CFD43</key>
|
317
|
+
<dict>
|
318
|
+
<key>buildSettings</key>
|
319
|
+
<dict/>
|
320
|
+
<key>isa</key>
|
321
|
+
<string>XCBuildConfiguration</string>
|
322
|
+
<key>name</key>
|
323
|
+
<string>Debug</string>
|
324
|
+
</dict>
|
325
|
+
</dict>
|
326
|
+
<key>rootObject</key>
|
327
|
+
<string>411586D0BB4B4316AED38AC7</string>
|
328
|
+
</dict>
|
329
|
+
</plist>
|