2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
|
# File 'lib/ib/project.rb', line 2
def write app_path = "app", resources_path = "resources", = "vendor/Pods/Headers"
project = Xcodeproj::Project.new
target = project.targets.new_static_library(:ios, 'ui')
resources = project.groups.new('path' => resources_path, 'name' => 'Resources')
support = project.groups.new('name' => 'Supporting Files', 'path' => 'ib.xcodeproj')
pods = project.groups.new('name' => 'Pods')
IB::Generator.new.write(app_path, "ib.xcodeproj")
support.files.new 'path' => 'Stubs.h', 'sourceTree' => '<group>'
path = Pathname.new("Stubs.m")
desc = Xcodeproj::Project::PBXNativeTarget::SourceFileDescription.new(path, nil, nil)
file = target.add_source_files([desc]).first
file.source_tree = '<group>'
support.files << file
resource_exts = %W{xcdatamodeld png jpg jpeg storyboard xib lproj}
Dir.glob("#{resources_path}/**/*.{#{resource_exts.join(",")}}") do |file|
file = file.gsub(/^#{resources_path}\//, '')
if file.end_with? ".xcdatamodeld"
obj = resources.groups.new('isa' => 'XCVersionGroup', 'path' => file, 'sourceTree' => '<group>', 'versionGroupType' => 'wrapper.xcdatamodel')
file = obj.files.new('path' => file.gsub(/xcdatamodeld$/, 'xcdatamodel'), 'sourceTree' => '<group>', 'lastKnownFileType' => 'wrapper.xcdatamodel')
obj.attributes['currentVersion'] = file.uuid
else
resources.files.new('path' => file, 'sourceTree' => '<group>')
end
end
Dir.glob("#{pods_headers_path}/**/*.h") do |file|
pods.files.new('path' => file)
end
frameworks = ["QuartzCore", "CoreGraphics", "CoreData"]
frameworks.each do |framework|
file = project.add_system_framework framework
target.frameworks_build_phases.first << file
end
project.save_as("ib.xcodeproj")
end
|