Podfile 3.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116
  1. # Uncomment this line to define a global platform for your project
  2. platform :ios, '14.0'
  3. # CocoaPods analytics sends network stats synchronously affecting flutter build latency.
  4. ENV['COCOAPODS_DISABLE_STATS'] = 'true'
  5. project 'Runner', {
  6. 'Debug' => :debug,
  7. 'Profile' => :release,
  8. 'Release' => :release,
  9. }
  10. def flutter_root
  11. generated_xcode_build_settings_path = File.expand_path(File.join('..', 'Flutter', 'Generated.xcconfig'), __FILE__)
  12. unless File.exist?(generated_xcode_build_settings_path)
  13. raise "#{generated_xcode_build_settings_path} must exist. If you're running pod install manually, make sure flutter pub get is executed first"
  14. end
  15. File.foreach(generated_xcode_build_settings_path) do |line|
  16. matches = line.match(/FLUTTER_ROOT\=(.*)/)
  17. return matches[1].strip if matches
  18. end
  19. raise "FLUTTER_ROOT not found in #{generated_xcode_build_settings_path}. Try deleting Generated.xcconfig, then run flutter pub get"
  20. end
  21. require File.expand_path(File.join('packages', 'flutter_tools', 'bin', 'podhelper'), flutter_root)
  22. flutter_ios_podfile_setup
  23. target 'Runner' do
  24. use_frameworks!
  25. use_modular_headers!
  26. flutter_install_all_ios_pods File.dirname(File.realpath(__FILE__))
  27. end
  28. post_integrate do |installer|
  29. main_project = installer.aggregate_targets[0].user_project
  30. pods_project = installer.pods_project
  31. targets = main_project.targets + pods_project.targets
  32. targets.each do |target|
  33. run_script_build_phases = target.build_phases.filter { |phase| phase.is_a?(Xcodeproj::Project::Object::PBXShellScriptBuildPhase) }
  34. cocoapods_run_script_build_phases = run_script_build_phases.filter { |phase| phase.name.start_with?("[CP]") }
  35. cocoapods_run_script_build_phases.each do |run_script|
  36. next unless (run_script.input_paths || []).empty? && (run_script.output_paths || []).empty?
  37. run_script.always_out_of_date = "1"
  38. end
  39. end
  40. main_project.save
  41. pods_project.save
  42. end
  43. post_install do |installer|
  44. installer.pods_project.targets.each do |target|
  45. # if target.name == "geolocator_apple"
  46. # target.build_configurations.each do |config|
  47. # config.build_settings['GCC_PREPROCESSOR_DEFINITIONS'] ||= ['$(inherited)', 'BYPASS_PERMISSION_LOCATION_ALWAYS=1']
  48. # end
  49. # end
  50. flutter_additional_ios_build_settings(target)
  51. target.build_configurations.each do |config|
  52. config.build_settings['IPHONEOS_DEPLOYMENT_TARGET'] = '14.0'
  53. # You can remove unused permissions here
  54. # for more infomation: https://github.com/BaseflowIT/flutter-permission-handler/blob/develop/permission_handler/ios/Classes/PermissionHandlerEnums.h
  55. # e.g. when you don't need camera permission, just add 'PERMISSION_CAMERA=0'
  56. config.build_settings['GCC_PREPROCESSOR_DEFINITIONS'] ||= [
  57. '$(inherited)',
  58. ## dart: PermissionGroup.calendar
  59. 'PERMISSION_EVENTS=0',
  60. ## dart: PermissionGroup.reminders
  61. 'PERMISSION_REMINDERS=0',
  62. ## dart: PermissionGroup.contacts
  63. 'PERMISSION_CONTACTS=0',
  64. ## dart: PermissionGroup.camera
  65. 'PERMISSION_CAMERA=1',
  66. ## dart: PermissionGroup.microphone
  67. 'PERMISSION_MICROPHONE=0',
  68. ## dart: PermissionGroup.speech
  69. 'PERMISSION_SPEECH_RECOGNIZER=0',
  70. # dart: PermissionGroup.photos
  71. 'PERMISSION_PHOTOS=1',
  72. # dart: [PermissionGroup.location, PermissionGroup.locationAlways, PermissionGroup.locationWhenInUse]
  73. # 'PERMISSION_LOCATION=0',
  74. ## dart: PermissionGroup.notification
  75. 'PERMISSION_NOTIFICATIONS=0',
  76. ## dart: PermissionGroup.mediaLibrary
  77. 'PERMISSION_MEDIA_LIBRARY=0',
  78. ## dart: PermissionGroup.sensors
  79. 'PERMISSION_SENSORS=0'
  80. ]
  81. if config.build_settings['IPHONEOS_DEPLOYMENT_TARGET'].to_f < 10.0
  82. config.build_settings['IPHONEOS_DEPLOYMENT_TARGET'] = '14.0'
  83. end
  84. end
  85. end
  86. end