Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Fetching contributors…

Cannot retrieve contributors at this time

47 lines (39 sloc) 1.992 kB
class IB::Project
def write app_path = "app", resources_path = "resources", pods_headers_path = "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
# Add Basic System Frameworks
# frameworks = ["UIKit", "QuartzCore", "CoreGraphics", "CoreData"]
# doesn't work with UIKit
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
end
Jump to Line
Something went wrong with that request. Please try again.