【问题标题】:Flutter Firestore plugin throws error when Archiving in XcodeFlutter Firestore 插件在 Xcode 中存档时抛出错误
【发布时间】:2018-10-25 12:16:22
【问题描述】:

更新到最新版本的cloud_firestore 插件(参见下面的pubspec.yaml)后,应用程序将不再存档在最新的Xcode 中,尽管它在模拟器上运行。

复制步骤

  1. 运行flutter build ios --> 好的

    使用 Xcode 项目中指定的开发团队自动签署 iOS 进行设备部署:xxxxxx

    运行 pod install... 10,8s

    运行 Xcode clean... 1,2s

    开始 Xcode 构建...
    ├─构建飞镖代码... 23,5s ├─组装Flutter资源... 2,1s └─编译、链接和签名... 83,3s Xcode 构建完成。

  2. 在 Xcode 中,Archive 最终失败:

日志

While building module 'ProtoRPC' imported from /Users/sergebesnard/Development/Noteworthy/RoByN/app/ios/Pods/FirebaseFirestore/Firestore/Protos/objc/google/firestore/v1beta1/Firestore.pbrpc.h:21:
While building module 'GRPCClient' imported from /Users/sergebesnard/Library/Developer/Xcode/DerivedData/Runner-hizooagynttegaeqkhreoqwhrxzc/Build/Intermediates.noindex/ArchiveIntermediates/Runner/BuildProductsPath/Release-iphoneos/gRPC-ProtoRPC/ProtoRPC.framework/Headers/ProtoRPC.h:20:
While building module 'RxLibrary' imported from /Users/sergebesnard/Development/Noteworthy/RoByN/app/ios/Pods/gRPC/src/objective-c/GRPCClient/GRPCCall.h:36:
In file included from <module-includes>:1:
/Users/sergebesnard/Development/Noteworthy/RoByN/app/ios/Pods/Target Support Files/gRPC-RxLibrary/gRPC-RxLibrary-umbrella.h:23:9: error: include of non-modular header inside framework module 'RxLibrary': '/Users/sergebesnard/Library/Developer/Xcode/DerivedData/Runner-hizooagynttegaeqkhreoqwhrxzc/Build/Intermediates.noindex/ArchiveIntermediates/Runner/BuildProductsPath/Release-iphoneos/gRPC-RxLibrary/RxLibrary.framework/Headers/transformations/GRXMappingWriter.h' [-Werror,-Wnon-modular-include-in-framework-module]
#import "transformations/GRXMappingWriter.h"
        ^
1 error generated.
While building module 'ProtoRPC' imported from /Users/sergebesnard/Development/Noteworthy/RoByN/app/ios/Pods/FirebaseFirestore/Firestore/Protos/objc/google/firestore/v1beta1/Firestore.pbrpc.h:21:
While building module 'GRPCClient' imported from /Users/sergebesnard/Library/Developer/Xcode/DerivedData/Runner-hizooagynttegaeqkhreoqwhrxzc/Build/Intermediates.noindex/ArchiveIntermediates/Runner/BuildProductsPath/Release-iphoneos/gRPC-ProtoRPC/ProtoRPC.framework/Headers/ProtoRPC.h:20:
In file included from <module-includes>:1:
In file included from /Users/sergebesnard/Development/Noteworthy/RoByN/app/ios/Pods/Target Support Files/gRPC/gRPC-umbrella.h:13:
In file included from /Users/sergebesnard/Development/Noteworthy/RoByN/app/ios/Pods/gRPC/src/objective-c/GRPCClient/GRPCCall+ChannelArg.h:18:
/Users/sergebesnard/Development/Noteworthy/RoByN/app/ios/Pods/gRPC/src/objective-c/GRPCClient/GRPCCall.h:36:9: fatal error: could not build module 'RxLibrary'
#import <RxLibrary/GRXWriter.h>
 ~~~~~~~^
2 errors generated.
While building module 'ProtoRPC' imported from /Users/sergebesnard/Development/Noteworthy/RoByN/app/ios/Pods/FirebaseFirestore/Firestore/Protos/objc/google/firestore/v1beta1/Firestore.pbrpc.h:21:
In file included from <module-includes>:1:
In file included from /Users/sergebesnard/Development/Noteworthy/RoByN/app/ios/Pods/Target Support Files/gRPC-ProtoRPC/gRPC-ProtoRPC-umbrella.h:14:
/Users/sergebesnard/Library/Developer/Xcode/DerivedData/Runner-hizooagynttegaeqkhreoqwhrxzc/Build/Intermediates.noindex/ArchiveIntermediates/Runner/BuildProductsPath/Release-iphoneos/gRPC-ProtoRPC/ProtoRPC.framework/Headers/ProtoRPC.h:20:9: fatal error: could not build module 'GRPCClient'
#import <GRPCClient/GRPCCall.h>
 ~~~~~~~^
3 errors generated.
In file included from /Users/sergebesnard/Development/Noteworthy/RoByN/app/ios/Pods/FirebaseFirestore/Firestore/Protos/objc/google/firestore/v1beta1/Firestore.pbrpc.m:17:
/Users/sergebesnard/Development/Noteworthy/RoByN/app/ios/Pods/FirebaseFirestore/Firestore/Protos/objc/google/firestore/v1beta1/Firestore.pbrpc.h:21:9: fatal error: could not build module 'ProtoRPC'
#import <ProtoRPC/ProtoService.h>
 ~~~~~~~^
4 errors generated.

颤振医生 -v ```

[✓] Flutter (Channel beta, v0.3.2, on Mac OS X 10.13.4 17E202, locale fr-BE)
    • Flutter version 0.3.2 at /Users/sergebesnard/Development/flutter
    • Framework revision 44b7e7d3f4 (4 weeks ago), 2018-04-20 01:02:44 -0700
    • Engine revision 09d05a3891
    • Dart version 2.0.0-dev.48.0.flutter-fe606f890b

[!] Android toolchain - develop for Android devices (Android SDK 27.0.3)
    • Android SDK at /Users/sergebesnard/Library/Android/sdk
    • Android NDK location not configured (optional; useful for native profiling support)
    • Platform android-27, build-tools 27.0.3
    • Java binary at: /Applications/Android Studio.app/Contents/jre/jdk/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build 1.8.0_152-release-1024-b01)
    ! Some Android licenses not accepted.  To resolve this, run: flutter doctor --android-licenses

[✓] iOS toolchain - develop for iOS devices (Xcode 9.3.1)
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • Xcode 9.3.1, Build version 9E501
    • ios-deploy 1.9.2
    • CocoaPods version 1.5.0

[✓] Android Studio (version 3.1)
    • Android Studio at /Applications/Android Studio.app/Contents
    • Flutter plugin version 24.2.1
    • Dart plugin version 173.4700
    • Java version OpenJDK Runtime Environment (build 1.8.0_152-release-1024-b01)

[✓] VS Code (version 1.23.0)
    • VS Code at /Applications/Visual Studio Code.app/Contents
    • Dart Code extension version 2.12.1

[✓] Connected devices (1 available)
    • iPhone X • 780C4B10-21A6-41E0-9A05-A6175FC20FA0 • ios • iOS 11.3 (simulator)

! Doctor found issues in 1 category.

可能与this issue有关

Pubspec.yaml:

dependencies:


flutter:
    sdk: flutter
  google_sign_in: "^3.0.2"
  firebase_analytics: "^0.3.3"
  firebase_auth: "^0.5.10"
  firebase_database: "^0.4.6"
  firebase_storage: "^0.3.5"
  cloud_firestore: "^0.7.1"

【问题讨论】:

  • 切换到channel master没有改变任何东西
  • flutter channel dev 相同
  • gRPC-RxLibrary-umbrella.h 中出现问题:#import "transformations/GRXMappingWriter.h"
  • 试过pod repo updatesudo gem install cocoapodspode installpod update
  • 你的应用是基于 Swift 的吗?对我来说,它适用于我刚刚使用 flutter create 的 ObjC 应用程序,并且具有您引用的相同依赖项。

标签: firebase dart google-cloud-datastore flutter flutter-dependencies


【解决方案1】:

我发现了问题,所有部署目标都需要相同。也就是说,在项目文件中,目标和 pod 的项目也是如此。

【讨论】:

    【解决方案2】:

    gRPC 现在修复了在 xCode 中存档会崩溃的问题。如果您今天仍然遇到此问题,则表示您的 Pod 没有正确更新。

    删除 /ios/Podfile.lock 和 /ios/Pods

    这就是我最终让 gRPC 加载到最新版本的方式。 gRPC 需要 1.13 或更高版本才能修复。

    【讨论】:

    • 截至 2018 年 9 月,这可能是比公认答案更好的解决方案。谢谢。
    • 我正在删除它们并安装 - 不知道工作与否,+1 投票寻求帮助
    【解决方案3】:

    我遇到了同样的问题,并注意到flutter build 在使用xcodebuild 构建时设置了BUILD_DIR 标志xcodebuild(例如xcodebuild BUILD_DIR=/Users/example/projects/flutter_app/build/ios ...)。我将此添加到我的归档命令中并且它有效。

    ¯\_(ツ)_/¯

    【讨论】:

      【解决方案4】:

      这适用于具有引用依赖项的基于 Objective-C 的 Flutter 项目,而我可以使用基于 Swift 的项目进行重现。

      如果我修补 pod 伞头文件之一,Swift 错误就会消失:

      Pods/gRPC-RxLibrary/Support files/gRPC-RxLibrary-umbrella.h

      ---听从https://www.bountysource.com/issues/40110207-swift-could-not-build-modules-during-archiving-and-include-of-non-modular-header-inside-framework-module-rxlibrary的建议。

      【讨论】:

      • 感谢 Mikkel,它成功了。不知道在这丛林里还能这样注释掉多少行……
      猜你喜欢
      • 2021-04-10
      • 2021-11-21
      • 2020-08-17
      • 1970-01-01
      • 2017-10-12
      • 1970-01-01
      • 1970-01-01
      • 2021-05-19
      • 2015-04-16
      相关资源
      最近更新 更多