Flutter iOS应用提交:Info.plist缺少目的字符串

11

我正在尝试将我的Flutter应用提交到IOS。当我提交应用程序时,我会收到一封邮件,其中包含我需要将其添加到我的info.plist中的信息。

NSCalendarsUsageDescription
NSAppleMusicUsageDescription
NSSpeechRecognitionUsageDescription

我认为这很奇怪,因为我不需要这些东西(而且我没有在我的应用程序中使用它)...

这怎么可能呢?

这是我的pubspec yaml文件:

  cupertino_icons: ^0.1.2
  firebase_core: ^0.4.3+1
  firebase_auth: ^0.15.3
  cloud_firestore: ^0.12.11
  firebase_database: ^3.1.1
  cloud_functions: ^0.4.1+6
  firebase_messaging: ^6.0.9
  firebase_storage: ^3.1.0
  google_sign_in: ^4.1.0
  flutter_facebook_login: ^2.0.1
  geolocator: ^5.1.5
  shared_preferences: ^0.5.6
  url_launcher: ^5.4.1
  rflutter_alert: ^1.0.3
  font_awesome_flutter: ^8.5.0
  flutter_picker: ^1.1.0
  uuid: ^2.0.4
  image_picker: ^0.6.2+3
  path_provider: ^1.5.1
  image: ^2.1.4
  flutter_datetime_picker: ^1.2.8
  intl: ^0.16.0
  native_contact_picker: ^0.0.6
  flutter_spinkit: ^4.1.1+1
  transparent_image: ^1.0.0
  connectivity: ^0.4.6+1
  flare_splash_screen: ^2.1.4
  algolia: ^0.1.7
  http: ^0.12.0+2
  avatar_glow: ^1.1.0
  rxdart: ^0.22.2
  auto_size_text: ^2.1.0
  camera: ^0.5.7+2
  video_player: ^0.10.5
  story_view: ^0.11.0
  image_crop: ^0.3.1
  file_picker: ^1.4.3+1
  pdf_viewer_plugin: ^1.0.0+2
  flutter_background_geolocation: ^1.4.5
  location_permissions: ^2.0.3
  image_downloader: ^0.19.1
  permission_handler: ^4.0.0
  google_maps_flutter: ^0.5.21+15
  cached_network_image: ^2.0.0-rc
  geoflutterfire: ^2.0.3+5
  apple_sign_in: ^0.1.0
  device_info: ^0.4.1+4
  image_cropper: ^1.1.2
  screenshot: ^0.1.1

先提前致谢!

2个回答

21

我遇到了相同的问题...

我正在使用 permission_handler 依赖。

请仔细阅读 iOS 的设置(PodfileInfo.plist

https://pub.dev/packages/permission_handler

并特别注意以下内容:

移除您不想使用的权限前面的 # 字符。 例如,如果您不需要访问日历,请确保代码看起来像这样:

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

**** 更新 2021年9月29日 --(警告版本 >8.0.0)

permission_handler 版本8为iOS引入了一些重大变更 (配置已反转)。

作者说:

我们在8.0.0版本中改变了权限处理的默认行为。

请注意,仅从8.0.0版本开始支持明确启用权限。在8.0.0之前的版本中,逻辑被倒转,权限默认启用,并且您必须在podfile中显式禁用权限。

作者参考资料

查看Changelog版本8.0.0

请非常仔细地阅读所有iOS设置说明。


1
在我的情况下,我将所有权限值都设置为0(例如“PERMISSION_EVENTS=0”),所有其他错误都已解决。但是日历事件仍然显示为错误。因此,即使我没有在应用程序中使用日历,我也必须在我的info.plist文件中指定NSCalendarsUsageDescription以消除此错误。希望这可以帮助某些人。很奇怪permission_handler插件会有这样的问题。希望他们在即将推出的任何版本中修复它。 - Arun

1
这是一个相当庞大的依赖清单,因此很可能其中一些需要它,即使请求这些权限的代码永远不会运行。苹果只会注意到应用程序中的代码,但无法确定它不会被执行。如果你确定这些权限永远不会被请求,可以在Info.plist中添加任何文本作为使用说明,例如“Flutter依赖项所需的使用说明”。它不应该显示给用户,但至少开发人员将知道为什么要填写这些信息。

1
谢谢!我担心苹果会因为我没有使用的权限而拒绝它,但我会按照那样输入它!谢谢! - Karel Debedts

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接