Firebase 不为 Flutter 中的 IOS 构建 - 函数 'pb_release' 的隐式声明在 C99 中无效

Firebase Does not build for IOS in Flutter - Implicit declaration of function 'pb_release' is invalid in C99

当我将 firebase_core: ^1.11.0 添加到我的 pubspec.yaml 时,我无法在 IOS 上实现 运行,它在 Android.

我收到一个错误

ios/Pods/GoogleDataTransport/GoogleDataTransport/GDTCCTLibrary/GDTCCTUploadOperation.m:408:3: error: implicit declaration of function
'pb_release' is invalid in C99 [-Werror,-Wimplicit-function-declaration]
      pb_release(gdt_cct_BatchedLogRequest_fields, &batchedLogRequest);

这是来自 Podfile 锁

  - FirebaseCoreDiagnostics (8.11.0):
    - GoogleDataTransport (~> 9.1)

我在尝试 运行 和 XCode

时看到同样的错误

我在 Mac 11.5.1

上使用 Flutter 2.8.1

pb_release定义在pb_decode.h包含在GDTCCTUploadOperation.m的顶部:

您的 Xcode 项目配置中的某些内容可能与 PB_ENABLE_MALLOC

的定义混淆

导致问题的原因似乎是我在 Podfile 末尾的一些代码,来自 permission_handler 插件

https://pub.dev/packages/permission_handler

post_install do |installer|
  installer.pods_project.targets.each do |target|
    flutter_additional_ios_build_settings(target)
        target.build_configurations.each do |config|
            config.build_settings['GCC_PREPROCESSOR_DEFINITIONS'] ||= [
                'PERMISSION_CAMERA=1',
                'PERMISSION_MICROPHONE=1',
                'PERMISSION_SPEECH_RECOGNIZER=1',
             ]
        end
  end
end

问题是,如果我从 Podfile 中删除它,我在应用程序设置中没有正确的设备权限

----更新----

我错过了那条线

'$(inherited)',

在顶部之后

  config.build_settings['GCC_PREPROCESSOR_DEFINITIONS'] ||= [
    '$(inherited)',