所有版本的 C 中都不推荐使用没有原型的函数声明

Met*_*arf 22 c objective-c ios

我正在 iOS 项目的 pod 文件上使用 Firebase Analytics。当我运行该应用程序时,出现以下错误。

所有版本的 C 中都不推荐使用没有原型的函数声明

它显示在以下代码中(在 Firebase 库上):

GDTCORNetworkType GDTCORNetworkTypeMessage() {.  <----error here
#if !TARGET_OS_WATCH
  SCNetworkReachabilityFlags reachabilityFlags = [GDTCORReachability currentFlags];
  if ((reachabilityFlags & kSCNetworkReachabilityFlagsReachable) ==
      kSCNetworkReachabilityFlagsReachable) {
    if (GDTCORReachabilityFlagsContainWWAN(reachabilityFlags)) {
      return GDTCORNetworkTypeMobile;
    } else {
      return GDTCORNetworkTypeWIFI;
    }
  }
#endif
  return GDTCORNetworkTypeUNKNOWN;
}
Run Code Online (Sandbox Code Playgroud)

我尝试这样做,pod update但仍然无法解决问题。

作为参考,除了我在 Xcode 而不是 RN 上之外,我还有这个特殊问题。

mik*_*son 16

我在使用 Firebase Analytics 时遇到了同样的问题,并遵循了 @HangarRash 评论中的建议。

将 void 放在错误行的空括号中。

有一个“修复”按钮,如果您单击红色的小 x,它就会为您完成此操作。

它要求我解锁,但效果很好,可以保存和构建。大约有六处需要修复,然后就可以建造了。


Tom*_*ong 16

总长DR

在您的 Podfile 中应用以下内容 (post_install)

 post_install do |installer|
    react_native_post_install(installer)
    __apply_Xcode_12_5_M1_post_install_workaround(installer)
    installer.pods_project.targets.each do |target|
      # Make it build with XCode 14
      if target.respond_to?(:product_type) and target.product_type == "com.apple.product-type.bundle"
        target.build_configurations.each do |config|
            config.build_settings['CODE_SIGNING_ALLOWED'] = 'NO'
        end
      end
      # Make it work with GoogleDataTransport
      if target.name.start_with? "GoogleDataTransport"
        target.build_configurations.each do |config|
          config.build_settings['CLANG_WARN_STRICT_PROTOTYPES'] = 'NO' 
        end
      end
    end
  end
Run Code Online (Sandbox Code Playgroud)

细节

首先,归功于Github 上的这篇文章

与此同时,GDT也发布了修复程序


chr*_*ijk 12

我遇到了同样的问题,下面的修复对我有用。我可以通过在 Pods 项目设置中禁用严格原型来成功构建和运行该项目。

Pods => Build settings => Strict Prototypes => set to NO
Run Code Online (Sandbox Code Playgroud)

豆荚项目

  • 这是 Xcode 15 的正确答案。谢谢! (2认同)