NuvioStreaming/ios/scripts/add_ksplayer_bridge.rb
2025-09-17 23:22:01 +05:30

43 lines
1.4 KiB
Ruby

require 'xcodeproj'
require 'fileutils'
project_path = File.expand_path('../Nuvio.xcodeproj', __dir__)
project = Xcodeproj::Project.open(project_path)
app_dir = File.expand_path('..', __dir__)
target_name = 'Nuvio'
bridge_files = [
File.expand_path('Nuvio/KSPlayerView.swift', app_dir),
File.expand_path('Nuvio/KSPlayerViewManager.swift', app_dir),
File.expand_path('Nuvio/KSPlayerManager.m', app_dir),
File.expand_path('Nuvio/KSPlayerModule.swift', app_dir),
]
missing = bridge_files.reject { |p| File.exist?(p) }
if missing.any?
abort "Missing files: \n#{missing.join("\n")}"
end
target = project.targets.find { |t| t.name == target_name }
abort "Target '#{target_name}' not found" unless target
# Ensure group exists at the correct relative path
root_group = project.main_group
app_group = root_group['Nuvio'] || root_group.new_group('Nuvio', 'Nuvio')
added_files = []
bridge_files.each do |file_path|
relative_path = Pathname.new(file_path).relative_path_from(Pathname.new(project_path).dirname).to_s
ref = project.files.find { |f| f.path == relative_path }
unless ref
ref = app_group.new_file(relative_path)
added_files << relative_path
end
unless target.source_build_phase.files_references.include?(ref)
target.add_file_references([ref])
end
end
project.save
puts "Ensured bridge files are added to target '#{target_name}':\n - #{(added_files.empty? ? '(no new files)' : added_files.join("\n - "))}"