98 lines
3.7 KiB
Ruby
98 lines
3.7 KiB
Ruby
# Uncomment this line to define a global platform for your project
|
|
platform :ios, '12.0' # Versión mínima para la aplicación principal
|
|
|
|
# CocoaPods analytics sends network stats synchronously affecting flutter build latency.
|
|
ENV['COCOAPODS_DISABLE_STATS'] = 'true'
|
|
|
|
project 'Runner', {
|
|
'Debug' => :debug,
|
|
'Profile' => :release,
|
|
'Release' => :release,
|
|
}
|
|
|
|
def flutter_root
|
|
generated_xcode_build_settings_path = File.expand_path(File.join('..', 'Flutter', 'Generated.xcconfig'), __FILE__)
|
|
unless File.exist?(generated_xcode_build_settings_path)
|
|
raise "#{generated_xcode_build_settings_path} must exist. If you're running pod install manually, make sure flutter pub get is executed first"
|
|
end
|
|
|
|
File.foreach(generated_xcode_build_settings_path) do |line|
|
|
matches = line.match(/FLUTTER_ROOT\=(.*)/)
|
|
return matches[1].strip if matches
|
|
end
|
|
raise "FLUTTER_ROOT not found in #{generated_xcode_build_settings_path}. Try deleting Generated.xcconfig, then run flutter pub get"
|
|
end
|
|
|
|
require File.expand_path(File.join('packages', 'flutter_tools', 'bin', 'podhelper'), flutter_root)
|
|
|
|
flutter_ios_podfile_setup
|
|
|
|
target 'Runner' do
|
|
use_frameworks!
|
|
use_modular_headers!
|
|
|
|
flutter_install_all_ios_pods File.dirname(File.realpath(__FILE__))
|
|
end
|
|
|
|
# Agregar el target de la extensión solo si existe
|
|
extension_path = Dir.glob("**/*SearchWidgetExtension.xcodeproj").first || Dir.glob("**/SearchWidgetExtension/SearchWidgetExtension.xcodeproj").first
|
|
if extension_path != nil
|
|
puts "Encontrada la extensión SearchWidgetExtension, configurando pods..."
|
|
target 'SearchWidgetExtension' do
|
|
use_frameworks!
|
|
use_modular_headers!
|
|
# Remove SwiftUI pod as it's part of the iOS SDK
|
|
# pod 'SwiftUI' # Framework básico para SwiftUI
|
|
|
|
# Don't share the same pods as the main app to avoid circular dependencies
|
|
# Add only specific pods needed by the extension
|
|
end
|
|
else
|
|
puts "No se encontró la extensión SearchWidgetExtension, omitiendo configuración específica."
|
|
end
|
|
|
|
post_install do |installer|
|
|
# Configurar iOS 12.0 como el mínimo por defecto, pero dejar que cada pod use su propio mínimo
|
|
installer.pods_project.targets.each do |target|
|
|
target.build_configurations.each do |config|
|
|
# Asegurarse de que ningún pod tenga deployment target menor que 12.0
|
|
if config.build_settings['IPHONEOS_DEPLOYMENT_TARGET'].to_f < 12.0
|
|
config.build_settings['IPHONEOS_DEPLOYMENT_TARGET'] = '12.0'
|
|
end
|
|
end
|
|
end
|
|
|
|
# Configurar los targets de Flutter
|
|
installer.pods_project.targets.each do |target|
|
|
flutter_additional_ios_build_settings(target)
|
|
|
|
target.build_configurations.each do |config|
|
|
# Configuraciones específicas para cada target
|
|
if target.name == 'Runner'
|
|
# Configuraciones para el target principal
|
|
config.build_settings['EXPANDED_CODE_SIGN_IDENTITY'] = ""
|
|
config.build_settings['CODE_SIGNING_REQUIRED'] = "NO"
|
|
config.build_settings['CODE_SIGNING_ALLOWED'] = "NO"
|
|
end
|
|
|
|
# Configuraciones para la extensión si existe
|
|
if target.name.include?('SearchWidgetExtension')
|
|
config.build_settings['EXPANDED_CODE_SIGN_IDENTITY'] = ""
|
|
config.build_settings['CODE_SIGNING_REQUIRED'] = "NO"
|
|
config.build_settings['CODE_SIGNING_ALLOWED'] = "NO"
|
|
config.build_settings['SKIP_INSTALL'] = 'YES'
|
|
# Establecer iOS 16.1 como mínimo solo para la extensión (requisito para Live Activities)
|
|
config.build_settings['IPHONEOS_DEPLOYMENT_TARGET'] = '16.1'
|
|
end
|
|
end
|
|
end
|
|
|
|
# Corregir problemas con el toolchain
|
|
installer.generated_projects.each do |project|
|
|
project.targets.each do |target|
|
|
target.build_configurations.each do |config|
|
|
config.build_settings['DEVELOPMENT_TEAM'] = ''
|
|
end
|
|
end
|
|
end
|
|
end |