feat: ios mobil arayüz tasarımı
This commit is contained in:
80
ios/create_xcodeproj.rb
Normal file
80
ios/create_xcodeproj.rb
Normal file
@@ -0,0 +1,80 @@
|
||||
require 'xcodeproj'
|
||||
require 'fileutils'
|
||||
|
||||
root = File.expand_path(__dir__)
|
||||
project_path = File.join(root, 'Bookibra.xcodeproj')
|
||||
FileUtils.rm_rf(project_path)
|
||||
|
||||
project = Xcodeproj::Project.new(project_path)
|
||||
target = project.new_target(:application, 'Bookibra', :ios, '17.0')
|
||||
|
||||
project.build_configurations.each do |config|
|
||||
config.build_settings['SWIFT_VERSION'] = '5.9'
|
||||
config.build_settings['PRODUCT_BUNDLE_IDENTIFIER'] = 'com.bookibra.ios'
|
||||
config.build_settings['IPHONEOS_DEPLOYMENT_TARGET'] = '17.0'
|
||||
config.build_settings['TARGETED_DEVICE_FAMILY'] = '1,2'
|
||||
config.build_settings['CODE_SIGN_STYLE'] = 'Automatic'
|
||||
config.build_settings['MARKETING_VERSION'] = '1.0'
|
||||
config.build_settings['CURRENT_PROJECT_VERSION'] = '1'
|
||||
end
|
||||
|
||||
target.build_configurations.each do |config|
|
||||
config.build_settings['SWIFT_VERSION'] = '5.9'
|
||||
config.build_settings['INFOPLIST_FILE'] = 'Bookibra/Resources/Info.plist'
|
||||
config.build_settings['PRODUCT_BUNDLE_IDENTIFIER'] = 'com.bookibra.ios'
|
||||
config.build_settings['IPHONEOS_DEPLOYMENT_TARGET'] = '17.0'
|
||||
config.build_settings['TARGETED_DEVICE_FAMILY'] = '1,2'
|
||||
config.build_settings['ASSETCATALOG_COMPILER_APPICON_NAME'] = 'AppIcon'
|
||||
config.build_settings['GENERATE_INFOPLIST_FILE'] = 'NO'
|
||||
config.build_settings['SWIFT_EMIT_LOC_STRINGS'] = 'YES'
|
||||
config.build_settings['LD_RUNPATH_SEARCH_PATHS'] = ['$(inherited)', '@executable_path/Frameworks']
|
||||
end
|
||||
|
||||
# xcconfig mapping
|
||||
config_map = {
|
||||
'Debug' => 'Bookibra/Resources/Debug.xcconfig',
|
||||
'Release' => 'Bookibra/Resources/Release.xcconfig'
|
||||
}
|
||||
project.build_configurations.each do |cfg|
|
||||
path = config_map[cfg.name]
|
||||
next unless path
|
||||
cfg.base_configuration_reference = project.files.find { |f| f.path == path } || project.main_group.new_file(path)
|
||||
end
|
||||
target.build_configurations.each do |cfg|
|
||||
path = config_map[cfg.name]
|
||||
next unless path
|
||||
cfg.base_configuration_reference = project.files.find { |f| f.path == path } || project.main_group.new_file(path)
|
||||
end
|
||||
|
||||
main = project.main_group
|
||||
bookibra_group = main.new_group('Bookibra', 'Bookibra')
|
||||
|
||||
# Source files
|
||||
swift_files = Dir.glob(File.join(root, 'Bookibra', '**', '*.swift')).sort
|
||||
swift_files.each do |abs|
|
||||
rel = abs.sub(root + '/', '')
|
||||
ref = bookibra_group.new_file(rel.sub('Bookibra/', ''))
|
||||
target.source_build_phase.add_file_reference(ref)
|
||||
end
|
||||
|
||||
# Resource files/directories (only top-level bundles, no nested xcassets internals)
|
||||
resource_paths = [
|
||||
'Bookibra/Resources/Assets.xcassets',
|
||||
'Bookibra/Resources/en.lproj/Localizable.strings',
|
||||
'Bookibra/Resources/tr.lproj/Localizable.strings',
|
||||
'Bookibra/Resources/mock_book_remote.json'
|
||||
]
|
||||
resource_paths.each do |rel|
|
||||
ref = bookibra_group.new_file(rel.sub('Bookibra/', ''))
|
||||
target.resources_build_phase.add_file_reference(ref)
|
||||
end
|
||||
|
||||
# Frameworks
|
||||
frameworks_group = main['Frameworks'] || main.new_group('Frameworks')
|
||||
['AVFoundation.framework', 'VisionKit.framework', 'SwiftData.framework'].each do |framework|
|
||||
ref = frameworks_group.new_file("System/Library/Frameworks/#{framework}")
|
||||
target.frameworks_build_phase.add_file_reference(ref)
|
||||
end
|
||||
|
||||
project.save
|
||||
puts "Created #{project_path}"
|
||||
Reference in New Issue
Block a user