如何修复——当权限处理程序已在我的 Podfile 中时 IPHONEOS_DEPLOYMENT_TARGET 设置为 8.0?

How to fix -- IPHONEOS_DEPLOYMENT_TARGET is set to 8.0 when Permission Handler already in my Podfile?

您好:我有上面的错误信息。我已经完成了基本的:

已将 AppFrameworkInfo.plst 更改为 9.0 pod 文件中取消注释 9.0

但我的发布规范中的每个包仍然收到此消息。

  warning: The iOS Simulator deployment target  'IPHONEOS_DEPLOYMENT_TARGET' is set to 8.0, but the range of supported deployment target versions is 9.0 to 14.1.9

有多个页面(包括在 SO 上)说要解决此问题,您需要将以下内容添加到 pod 文件的末尾。

post_install do |installer|
installer.pods_project.targets.each do |target|
  target.build_configurations.each do |config|
   config.build_settings['IPHONEOS_DEPLOYMENT_TARGET'] = '9.0'
  end
 end
end

我的问题是我使用权限处理包,它已经有一个修改过的 pod 文件来解决最终包中包含哪些权限:

post_install do |installer|
installer.pods_project.targets.each do |target|
target.build_configurations.each do |config|


  # Here are some configurations automatically generated by flutter

  # You can remove unused permissions here
  # for more infomation: https://github.com/BaseflowIT/flutter-permission-handler/blob/develop/permission_handler/ios/Classes/PermissionHandlerEnums.h
  # e.g. when you don't need camera permission, just add 'PERMISSION_CAMERA=0'
  config.build_settings['GCC_PREPROCESSOR_DEFINITIONS'] ||= [
    '$(inherited)',

    ## dart: PermissionGroup.calendar
    'PERMISSION_EVENTS=0',

    ## dart: PermissionGroup.reminders
    'PERMISSION_REMINDERS=0',

    ## dart: PermissionGroup.contacts
    'PERMISSION_CONTACTS=0',

    ## dart: PermissionGroup.camera
    'PERMISSION_CAMERA=0',

    ## dart: PermissionGroup.microphone
    # 'PERMISSION_MICROPHONE=0',

    ## dart: PermissionGroup.speech
    'PERMISSION_SPEECH_RECOGNIZER=0',

    ## dart: PermissionGroup.photos
    'PERMISSION_PHOTOS=0',

    ## dart: [PermissionGroup.location, PermissionGroup.locationAlways, PermissionGroup.locationWhenInUse]
    'PERMISSION_LOCATION=0',

    ## dart: PermissionGroup.notification
    'PERMISSION_NOTIFICATIONS=0',

    ## dart: PermissionGroup.mediaLibrary
    'PERMISSION_MEDIA_LIBRARY=0',

    ## dart: PermissionGroup.sensors
    'PERMISSION_SENSORS=0'
  ]


    end
  end
end

但我不知道在哪里包含修复部署目标的代码。无论我将它粘贴到哪里,我都会收到一个错误(另一个错误……不是部署错误)。我发现我不能有 2 post_install do 行,所以我想我需要剪掉 config.build_settings['IPHONEOS_DEPLOYMENT_TARGET'] = '9.0' 行,但无论我将它粘贴到哪里,它似乎都不起作用。

权限处理程序很受欢迎,所以我认为有人可能比我先 运行 了解它?

你试过这个吗

post_install do |installer|
installer.pods_project.targets.each do |target|
target.build_configurations.each do |config|

  config.build_settings['IPHONEOS_DEPLOYMENT_TARGET'] = '9.0'

  # Here are some configurations automatically generated by flutter

  # You can remove unused permissions here
  # for more infomation: https://github.com/BaseflowIT/flutter-permission-handler/blob/develop/permission_handler/ios/Classes/PermissionHandlerEnums.h
  # e.g. when you don't need camera permission, just add 'PERMISSION_CAMERA=0'
  config.build_settings['GCC_PREPROCESSOR_DEFINITIONS'] ||= [
    '$(inherited)',

    ## dart: PermissionGroup.calendar
    'PERMISSION_EVENTS=0',

    ## dart: PermissionGroup.reminders
    'PERMISSION_REMINDERS=0',

    ## dart: PermissionGroup.contacts
    'PERMISSION_CONTACTS=0',

    ## dart: PermissionGroup.camera
    'PERMISSION_CAMERA=0',

    ## dart: PermissionGroup.microphone
    # 'PERMISSION_MICROPHONE=0',

    ## dart: PermissionGroup.speech
    'PERMISSION_SPEECH_RECOGNIZER=0',

    ## dart: PermissionGroup.photos
    'PERMISSION_PHOTOS=0',

    ## dart: [PermissionGroup.location, PermissionGroup.locationAlways, PermissionGroup.locationWhenInUse]
    'PERMISSION_LOCATION=0',

    ## dart: PermissionGroup.notification
    'PERMISSION_NOTIFICATIONS=0',

    ## dart: PermissionGroup.mediaLibrary
    'PERMISSION_MEDIA_LIBRARY=0',

    ## dart: PermissionGroup.sensors
    'PERMISSION_SENSORS=0'
  ]


    end
  end
end