invertase / firestore-ios-sdk-frameworks

⚡ Precompiled Firestore iOS SDKs extracted from the Firebase iOS SDK repository release downloads for faster build times.
Apache License 2.0
427 stars 48 forks source link

Build breaks in flutter project #56

Closed crtl closed 2 years ago

crtl commented 2 years ago

After adding the specified pod to my Podfile I am no longer able to build the app and it fails with below output. This only happens after ive added the documented pod to my podfile and run pod install. Ive also tried to remove Podfile.lock and rerun pod install but it has no effect. If I remove pod 'FirebaseFirestore', :git => 'https://github.com/invertase/firestore-ios-sdk-frameworks.git', :tag => '9.3.0' from Podfile it works again.

Im not experienced with iOS development so I did not know how to exactly title this issue.

Flutter pubspec.yaml:

...
  #
  # Firebase dependencies
  #
  firebase_analytics: ^9.3.0
  firebase_auth: ^3.5.1
  firebase_core: ^1.20.0
  firebase_crashlytics: ^2.8.6
  firebase_dynamic_links: ^4.1.1
  firebase_messaging: ^12.0.1
  firebase_storage: ^10.3.3
  firebase_remote_config: ^2.0.13
  cloud_firestore: ^3.4.3
  cloud_functions: ^3.3.3
  firebase_app_check: ^0.0.6+18
  firebase_performance: ^0.8.2+1

...

Podfile:

# Uncomment this line to define a global platform for your project
platform :ios, '11.0'

# CocoaPods analytics sends network stats synchronously affecting flutter build latency.
ENV['COCOAPODS_DISABLE_STATS'] = 'true'

project 'Runner', {
  'Debug' => :debug,
  'Profile' => :release,
  'Release' => :release,
}

def flutter_root
  generated_xcode_build_settings_path = File.expand_path(File.join('..', 'Flutter', 'Generated.xcconfig'), __FILE__)
  unless File.exist?(generated_xcode_build_settings_path)
    raise "#{generated_xcode_build_settings_path} must exist. If you're running pod install manually, make sure flutter pub get is executed first"
  end

  File.foreach(generated_xcode_build_settings_path) do |line|
    matches = line.match(/FLUTTER_ROOT\=(.*)/)
    return matches[1].strip if matches
  end
  raise "FLUTTER_ROOT not found in #{generated_xcode_build_settings_path}. Try deleting Generated.xcconfig, then run flutter pub get"
end

require File.expand_path(File.join('packages', 'flutter_tools', 'bin', 'podhelper'), flutter_root)

flutter_ios_podfile_setup

target 'Runner' do

  use_frameworks!

  flutter_install_all_ios_pods File.dirname(File.realpath(__FILE__))

  # See https://github.com/invertase/firestore-ios-sdk-frameworks
  pod 'FirebaseFirestore', :git => 'https://github.com/invertase/firestore-ios-sdk-frameworks.git', :tag => '9.3.0'
end

post_install do |installer|
  installer.pods_project.targets.each do |target|
    flutter_additional_ios_build_settings(target)
  end
end

Output:

Error output from Xcode build:
↳
    2022-08-04 17:02:30.182 xcodebuild[24482:1409455] Requested but did not find extension point with identifier Xcode.IDEKit.ExtensionSentinelHostApplications for extension Xcode.DebuggerFoundation.AppExtensionHosts.watchOS of plug-in com.apple.dt.IDEWatchSupportCore
    2022-08-04 17:02:30.182 xcodebuild[24482:1409455] Requested but did not find extension point with identifier Xcode.IDEKit.ExtensionPointIdentifierToBundleIdentifier for extension Xcode.DebuggerFoundation.AppExtensionToBundleIdentifierMap.watchOS of plug-in com.apple.dt.IDEWatchSupportCore
    ** BUILD FAILED **

Xcode's output:
↳
    Writing result bundle at path:
        /var/folders/39/gmxs8gmd6b98tg0n8dsz0zjw0000gn/T/flutter_tools.UcLLVR/flutter_ios_build_temp_dirLqs2Bi/temporary_xcresult_bundle

    4 warnings generated.
    1 warning generated.
    4 warnings generated.
    1 warning generated.
    35 warnings generated.
    warning: [CP] FirebaseFirestore.xcframework: Unable to find matching slice in 'ios-arm64_x86_64-simulator ios-arm64 ios-arm64_x86_64-maccatalyst' for the current build architectures (arm64 armv7) and platform (-iphoneos).
    warning: [CP] gRPC-Core.xcframework: Unable to find matching slice in 'ios-arm64_x86_64-simulator ios-arm64 ios-arm64_x86_64-maccatalyst' for the current build architectures (arm64 armv7) and platform (-iphoneos).
    warning: [CP] Libuv-gRPC.xcframework: Unable to find matching slice in 'ios-arm64_x86_64-maccatalyst ios-arm64_x86_64-simulator ios-arm64' for the current build architectures (arm64 armv7) and platform (-iphoneos).
    warning: [CP] gRPC-C++.xcframework: Unable to find matching slice in 'ios-arm64_x86_64-maccatalyst ios-arm64_x86_64-simulator ios-arm64' for the current build architectures (arm64 armv7) and platform (-iphoneos).
    warning: [CP] BoringSSL-GRPC.xcframework: Unable to find matching slice in 'ios-arm64 ios-arm64_x86_64-maccatalyst ios-arm64_x86_64-simulator' for the current build architectures (arm64 armv7) and platform (-iphoneos).
    warning: [CP] FirebaseFirestoreSwift.xcframework: Unable to find matching slice in 'ios-arm64_x86_64-simulator ios-arm64 ios-arm64_x86_64-maccatalyst' for the current build architectures (arm64 armv7) and platform (-iphoneos).
    warning: [CP] abseil.xcframework: Unable to find matching slice in 'ios-arm64_x86_64-simulator ios-arm64 ios-arm64_x86_64-maccatalyst' for the current build architectures (arm64 armv7) and platform (-iphoneos).
    warning: [CP] leveldb-library.xcframework: Unable to find matching slice in 'ios-arm64 ios-arm64_x86_64-maccatalyst ios-arm64_x86_64-simulator' for the current build architectures (arm64 armv7) and platform (-iphoneos).
    /Users/user/Projects/flutter/project/ios/Pods/DKPhotoGallery/DKPhotoGallery/DKPhotoGalleryContentVC.swift:39:52: warning: using 'class' keyword to define a class-constrained protocol is deprecated; use 'AnyObject' instead
    internal protocol DKPhotoGalleryContentDataSource: class {
                                                       ^~~~~
                                                       AnyObject
    /Users/user/Projects/flutter/project/ios/Pods/DKPhotoGallery/DKPhotoGallery/DKPhotoGalleryContentVC.swift:55:50: warning: using 'class' keyword to define a class-constrained protocol is deprecated; use 'AnyObject' instead
    internal protocol DKPhotoGalleryContentDelegate: class {
                                                     ^~~~~
                                                     AnyObject
    remark: Incremental compilation has been disabled: it is not compatible with whole module optimization
    /Users/user/Projects/flutter/project/ios/Pods/DKPhotoGallery/DKPhotoGallery/DKPhotoGalleryContentVC.swift:39:52: warning: using 'class' keyword to define a class-constrained protocol is deprecated; use 'AnyObject' instead
    internal protocol DKPhotoGalleryContentDataSource: class {
                                                       ^~~~~
                                                       AnyObject
    /Users/user/Projects/flutter/project/ios/Pods/DKPhotoGallery/DKPhotoGallery/DKPhotoGalleryContentVC.swift:55:50: warning: using 'class' keyword to define a class-constrained protocol is deprecated; use 'AnyObject' instead
    internal protocol DKPhotoGalleryContentDelegate: class {
                                                     ^~~~~
                                                     AnyObject
    /Users/user/.pub-cache/hosted/pub.dartlang.org/firebase_core-1.20.0/ios/Classes/FLTFirebaseCorePlugin.m:229:50: warning: incompatible pointer to integer conversion sending 'NSNumber * _Nonnull __strong' to parameter of type 'BOOL' (aka 'signed char') [-Wint-conversion]
        [firebaseApp setDataCollectionDefaultEnabled:enabled];
                                                     ^~~~~~~
    In module 'FirebaseCore' imported from /Users/user/.pub-cache/hosted/pub.dartlang.org/firebase_core-1.20.0/ios/Classes/FLTFirebasePlugin.h:10:
    /Users/user/Projects/flutter/project/ios/Pods/FirebaseCore/FirebaseCore/Sources/Public/FirebaseCore/FIRApp.h:125:10: note: passing argument to parameter 'dataCollectionDefaultEnabled' here
        BOOL dataCollectionDefaultEnabled;
             ^
    1 warning generated.
    While building module 'FirebaseMessaging' imported from /Users/user/Projects/flutter/project/ios/Pods/Headers/Public/Firebase/Firebase.h:66:
    In file included from <module-includes>:1:
    In file included from /Users/user/Projects/flutter/project/ios/Pods/Target Support Files/FirebaseMessaging/FirebaseMessaging-umbrella.h:13:
    In file included from /Users/user/Projects/flutter/project/ios/Pods/FirebaseMessaging/FirebaseMessaging/Sources/Public/FirebaseMessaging/FirebaseMessaging.h:18:
    /Users/user/Projects/flutter/project/ios/Pods/FirebaseMessaging/FirebaseMessaging/Sources/Public/FirebaseMessaging/FIRMessagingExtensionHelper.h:37:38: warning: 'UNMutableNotificationContent' is only available on iOS 10.0 or newer [-Wunguarded-availability]
    - (void)populateNotificationContent:(UNMutableNotificationContent *)content
                                         ^
    In module 'UserNotifications' imported from /Users/user/Projects/flutter/project/ios/Pods/FirebaseMessaging/FirebaseMessaging/Sources/Public/FirebaseMessaging/FIRMessagingExtensionHelper.h:22:
    /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS15.5.sdk/System/Library/Frameworks/UserNotifications.framework/Headers/UNNotificationContent.h:97:12: note: 'UNMutableNotificationContent' has been marked as being introduced in iOS 10.0 here, but the deployment target is iOS 9.0.0
    @interface UNMutableNotificationContent : UNNotificationContent
               ^
    While building module 'FirebaseMessaging' imported from /Users/user/Projects/flutter/project/ios/Pods/Headers/Public/Firebase/Firebase.h:66:
    In file included from <module-includes>:1:
    In file included from /Users/user/Projects/flutter/project/ios/Pods/Target Support Files/FirebaseMessaging/FirebaseMessaging-umbrella.h:13:
    In file included from /Users/user/Projects/flutter/project/ios/Pods/FirebaseMessaging/FirebaseMessaging/Sources/Public/FirebaseMessaging/FirebaseMessaging.h:18:
    /Users/user/Projects/flutter/project/ios/Pods/FirebaseMessaging/FirebaseMessaging/Sources/Public/FirebaseMessaging/FIRMessagingExtensionHelper.h:37:1: note: annotate 'populateNotificationContent:withContentHandler:' with an availability attribute to silence this warning
    - (void)populateNotificationContent:(UNMutableNotificationContent *)content
    ^
    /Users/user/Projects/flutter/project/ios/Pods/FirebaseMessaging/FirebaseMessaging/Sources/Public/FirebaseMessaging/FIRMessagingExtensionHelper.h:38:47: warning: 'UNNotificationContent' is only available on iOS 10.0 or newer [-Wunguarded-availability]
                     withContentHandler:(void (^)(UNNotificationContent *_Nonnull))contentHandler;
                                                  ^
    In module 'UserNotifications' imported from /Users/user/Projects/flutter/project/ios/Pods/FirebaseMessaging/FirebaseMessaging/Sources/Public/FirebaseMessaging/FIRMessagingExtensionHelper.h:22:
    /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS15.5.sdk/System/Library/Frameworks/UserNotifications.framework/Headers/UNNotificationContent.h:37:12: note: 'UNNotificationContent' has been marked as being introduced in iOS 10.0 here, but the deployment target is iOS 9.0.0
    @interface UNNotificationContent : NSObject <NSCopying, NSMutableCopying, NSSecureCoding>
               ^
    While building module 'FirebaseMessaging' imported from /Users/user/Projects/flutter/project/ios/Pods/Headers/Public/Firebase/Firebase.h:66:
    In file included from <module-includes>:1:
    In file included from /Users/user/Projects/flutter/project/ios/Pods/Target Support Files/FirebaseMessaging/FirebaseMessaging-umbrella.h:13:
    In file included from /Users/user/Projects/flutter/project/ios/Pods/FirebaseMessaging/FirebaseMessaging/Sources/Public/FirebaseMessaging/FirebaseMessaging.h:18:
    /Users/user/Projects/flutter/project/ios/Pods/FirebaseMessaging/FirebaseMessaging/Sources/Public/FirebaseMessaging/FIRMessagingExtensionHelper.h:37:1: note: annotate 'populateNotificationContent:withContentHandler:' with an availability attribute to silence this warning
    - (void)populateNotificationContent:(UNMutableNotificationContent *)content
    ^
    2 warnings generated.
    2 warnings generated.
    While building module 'FirebaseMessaging' imported from /Users/user/Projects/flutter/project/ios/Pods/Headers/Public/Firebase/Firebase.h:66:
    In file included from <module-includes>:1:
    In file included from /Users/user/Projects/flutter/project/ios/Pods/Target Support Files/FirebaseMessaging/FirebaseMessaging-umbrella.h:13:
    In file included from /Users/user/Projects/flutter/project/ios/Pods/FirebaseMessaging/FirebaseMessaging/Sources/Public/FirebaseMessaging/FirebaseMessaging.h:18:
    /Users/user/Projects/flutter/project/ios/Pods/FirebaseMessaging/FirebaseMessaging/Sources/Public/FirebaseMessaging/FIRMessagingExtensionHelper.h:37:38: warning: 'UNMutableNotificationContent' is only available on iOS 10.0 or newer [-Wunguarded-availability]
    - (void)populateNotificationContent:(UNMutableNotificationContent *)content
                                         ^
    In module 'UserNotifications' imported from /Users/user/Projects/flutter/project/ios/Pods/FirebaseMessaging/FirebaseMessaging/Sources/Public/FirebaseMessaging/FIRMessagingExtensionHelper.h:22:
    /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS15.5.sdk/System/Library/Frameworks/UserNotifications.framework/Headers/UNNotificationContent.h:97:12: note: 'UNMutableNotificationContent' has been marked as being introduced in iOS 10.0 here, but the deployment target is iOS 9.0.0
    @interface UNMutableNotificationContent : UNNotificationContent
               ^
    While building module 'FirebaseMessaging' imported from /Users/user/Projects/flutter/project/ios/Pods/Headers/Public/Firebase/Firebase.h:66:
    In file included from <module-includes>:1:
    In file included from /Users/user/Projects/flutter/project/ios/Pods/Target Support Files/FirebaseMessaging/FirebaseMessaging-umbrella.h:13:
    In file included from /Users/user/Projects/flutter/project/ios/Pods/FirebaseMessaging/FirebaseMessaging/Sources/Public/FirebaseMessaging/FirebaseMessaging.h:18:
    /Users/user/Projects/flutter/project/ios/Pods/FirebaseMessaging/FirebaseMessaging/Sources/Public/FirebaseMessaging/FIRMessagingExtensionHelper.h:37:1: note: annotate 'populateNotificationContent:withContentHandler:' with an availability attribute to silence this warning
    - (void)populateNotificationContent:(UNMutableNotificationContent *)content
    ^
    /Users/user/Projects/flutter/project/ios/Pods/FirebaseMessaging/FirebaseMessaging/Sources/Public/FirebaseMessaging/FIRMessagingExtensionHelper.h:38:47: warning: 'UNNotificationContent' is only available on iOS 10.0 or newer [-Wunguarded-availability]
                     withContentHandler:(void (^)(UNNotificationContent *_Nonnull))contentHandler;
                                                  ^
    In module 'UserNotifications' imported from /Users/user/Projects/flutter/project/ios/Pods/FirebaseMessaging/FirebaseMessaging/Sources/Public/FirebaseMessaging/FIRMessagingExtensionHelper.h:22:
    /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS15.5.sdk/System/Library/Frameworks/UserNotifications.framework/Headers/UNNotificationContent.h:37:12: note: 'UNNotificationContent' has been marked as being introduced in iOS 10.0 here, but the deployment target is iOS 9.0.0
    @interface UNNotificationContent : NSObject <NSCopying, NSMutableCopying, NSSecureCoding>
               ^
    While building module 'FirebaseMessaging' imported from /Users/user/Projects/flutter/project/ios/Pods/Headers/Public/Firebase/Firebase.h:66:
    In file included from <module-includes>:1:
    In file included from /Users/user/Projects/flutter/project/ios/Pods/Target Support Files/FirebaseMessaging/FirebaseMessaging-umbrella.h:13:
    In file included from /Users/user/Projects/flutter/project/ios/Pods/FirebaseMessaging/FirebaseMessaging/Sources/Public/FirebaseMessaging/FirebaseMessaging.h:18:
    /Users/user/Projects/flutter/project/ios/Pods/FirebaseMessaging/FirebaseMessaging/Sources/Public/FirebaseMessaging/FIRMessagingExtensionHelper.h:37:1: note: annotate 'populateNotificationContent:withContentHandler:' with an availability attribute to silence this warning
    - (void)populateNotificationContent:(UNMutableNotificationContent *)content
    ^
    2 warnings generated.
    2 warnings generated.
    /Users/user/.pub-cache/hosted/pub.dartlang.org/firebase_auth-3.5.1/ios/Classes/FLTFirebaseAuthPlugin.m:90:72: warning: sending 'FLTFirebaseAuthPlugin *__strong' to parameter of incompatible type 'id<FLTFirebasePlugin> _Nonnull'
        [[FLTFirebasePluginRegistry sharedInstance] registerFirebasePlugin:self];
                                                                           ^~~~
    In module 'firebase_core' imported from /Users/user/.pub-cache/hosted/pub.dartlang.org/firebase_auth-3.5.1/ios/Classes/FLTFirebaseAuthPlugin.m:7:
    /Users/user/.pub-cache/hosted/pub.dartlang.org/firebase_core-1.20.0/ios/Classes/FLTFirebasePluginRegistry.h:23:64: note: passing argument to parameter 'firebasePlugin' here
    - (void)registerFirebasePlugin:(id<FLTFirebasePlugin> _Nonnull)firebasePlugin;
                                                                   ^
    1 warning generated.
    /Users/user/.pub-cache/hosted/pub.dartlang.org/firebase_auth-3.5.1/ios/Classes/FLTFirebaseAuthPlugin.m:90:72: warning: sending 'FLTFirebaseAuthPlugin *__strong' to parameter of incompatible type 'id<FLTFirebasePlugin> _Nonnull'
        [[FLTFirebasePluginRegistry sharedInstance] registerFirebasePlugin:self];
                                                                           ^~~~
    In module 'firebase_core' imported from /Users/user/.pub-cache/hosted/pub.dartlang.org/firebase_auth-3.5.1/ios/Classes/FLTFirebaseAuthPlugin.m:7:
    /Users/user/.pub-cache/hosted/pub.dartlang.org/firebase_core-1.20.0/ios/Classes/FLTFirebasePluginRegistry.h:23:64: note: passing argument to parameter 'firebasePlugin' here
    - (void)registerFirebasePlugin:(id<FLTFirebasePlugin> _Nonnull)firebasePlugin;
                                                                   ^
    1 warning generated.
    While building module 'FirebaseMessaging' imported from /Users/user/Projects/flutter/project/ios/Pods/Headers/Public/Firebase/Firebase.h:66:
    In file included from <module-includes>:1:
    In file included from /Users/user/Projects/flutter/project/ios/Pods/Target Support Files/FirebaseMessaging/FirebaseMessaging-umbrella.h:13:
    In file included from /Users/user/Projects/flutter/project/ios/Pods/FirebaseMessaging/FirebaseMessaging/Sources/Public/FirebaseMessaging/FirebaseMessaging.h:18:
    /Users/user/Projects/flutter/project/ios/Pods/FirebaseMessaging/FirebaseMessaging/Sources/Public/FirebaseMessaging/FIRMessagingExtensionHelper.h:37:38: warning: 'UNMutableNotificationContent' is only available on iOS 10.0 or newer [-Wunguarded-availability]
    - (void)populateNotificationContent:(UNMutableNotificationContent *)content
                                         ^
    In module 'UserNotifications' imported from /Users/user/Projects/flutter/project/ios/Pods/FirebaseMessaging/FirebaseMessaging/Sources/Public/FirebaseMessaging/FIRMessagingExtensionHelper.h:22:
    /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS15.5.sdk/System/Library/Frameworks/UserNotifications.framework/Headers/UNNotificationContent.h:97:12: note: 'UNMutableNotificationContent' has been marked as being introduced in iOS 10.0 here, but the deployment target is iOS 9.0.0
    @interface UNMutableNotificationContent : UNNotificationContent
               ^
    While building module 'FirebaseMessaging' imported from /Users/user/Projects/flutter/project/ios/Pods/Headers/Public/Firebase/Firebase.h:66:
    In file included from <module-includes>:1:
    In file included from /Users/user/Projects/flutter/project/ios/Pods/Target Support Files/FirebaseMessaging/FirebaseMessaging-umbrella.h:13:
    In file included from /Users/user/Projects/flutter/project/ios/Pods/FirebaseMessaging/FirebaseMessaging/Sources/Public/FirebaseMessaging/FirebaseMessaging.h:18:
    /Users/user/Projects/flutter/project/ios/Pods/FirebaseMessaging/FirebaseMessaging/Sources/Public/FirebaseMessaging/FIRMessagingExtensionHelper.h:37:1: note: annotate 'populateNotificationContent:withContentHandler:' with an availability attribute to silence this warning
    - (void)populateNotificationContent:(UNMutableNotificationContent *)content
    ^
    /Users/user/Projects/flutter/project/ios/Pods/FirebaseMessaging/FirebaseMessaging/Sources/Public/FirebaseMessaging/FIRMessagingExtensionHelper.h:38:47: warning: 'UNNotificationContent' is only available on iOS 10.0 or newer [-Wunguarded-availability]
                     withContentHandler:(void (^)(UNNotificationContent *_Nonnull))contentHandler;
                                                  ^
    In module 'UserNotifications' imported from /Users/user/Projects/flutter/project/ios/Pods/FirebaseMessaging/FirebaseMessaging/Sources/Public/FirebaseMessaging/FIRMessagingExtensionHelper.h:22:
    /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS15.5.sdk/System/Library/Frameworks/UserNotifications.framework/Headers/UNNotificationContent.h:37:12: note: 'UNNotificationContent' has been marked as being introduced in iOS 10.0 here, but the deployment target is iOS 9.0.0
    @interface UNNotificationContent : NSObject <NSCopying, NSMutableCopying, NSSecureCoding>
               ^
    While building module 'FirebaseMessaging' imported from /Users/user/Projects/flutter/project/ios/Pods/Headers/Public/Firebase/Firebase.h:66:
    In file included from <module-includes>:1:
    In file included from /Users/user/Projects/flutter/project/ios/Pods/Target Support Files/FirebaseMessaging/FirebaseMessaging-umbrella.h:13:
    In file included from /Users/user/Projects/flutter/project/ios/Pods/FirebaseMessaging/FirebaseMessaging/Sources/Public/FirebaseMessaging/FirebaseMessaging.h:18:
    /Users/user/Projects/flutter/project/ios/Pods/FirebaseMessaging/FirebaseMessaging/Sources/Public/FirebaseMessaging/FIRMessagingExtensionHelper.h:37:1: note: annotate 'populateNotificationContent:withContentHandler:' with an availability attribute to silence this warning
    - (void)populateNotificationContent:(UNMutableNotificationContent *)content
    ^
    2 warnings generated.
    2 warnings generated.
    2 warnings generated.
    1 warning generated.
    In file included from /Users/user/.pub-cache/hosted/pub.dartlang.org/cloud_firestore-3.4.3/ios/Classes/FLTSnapshotsInSyncStreamHandler.m:8:
    /Users/user/.pub-cache/hosted/pub.dartlang.org/cloud_firestore-3.4.3/ios/Classes/Private/FLTFirebaseFirestoreUtils.h:43:4: error: expected a type
    + (FIRFirestoreSource)FIRFirestoreSourceFromArguments:(NSDictionary *_Nonnull)arguments;
       ^
    /Users/user/.pub-cache/hosted/pub.dartlang.org/cloud_firestore-3.4.3/ios/Classes/Private/FLTFirebaseFirestoreUtils.h:45:4: error: expected a type
    + (FIRFirestore *_Nullable)getCachedFIRFirestoreInstanceForKey:(NSString *_Nonnull)key;
       ^
    /Users/user/.pub-cache/hosted/pub.dartlang.org/cloud_firestore-3.4.3/ios/Classes/Private/FLTFirebaseFirestoreUtils.h:46:40: error: expected a type
    + (void)setCachedFIRFirestoreInstance:(FIRFirestore *_Nonnull)firestore
                                           ^
    /Users/user/.pub-cache/hosted/pub.dartlang.org/cloud_firestore-3.4.3/ios/Classes/FLTSnapshotsInSyncStreamHandler.m:12:33: error: no type or protocol named 'FIRListenerRegistration'
    @property(readwrite, strong) id<FIRListenerRegistration> listenerRegistration;
                                    ^
    /Users/user/.pub-cache/hosted/pub.dartlang.org/cloud_firestore-3.4.3/ios/Classes/FLTSnapshotsInSyncStreamHandler.m:19:3: error: use of undeclared identifier 'FIRFirestore'
      FIRFirestore *firestore = arguments[@"firestore"];
      ^
    /Users/user/.pub-cache/hosted/pub.dartlang.org/cloud_firestore-3.4.3/ios/Classes/FLTSnapshotsInSyncStreamHandler.m:19:17: error: use of undeclared identifier 'firestore'
      FIRFirestore *firestore = arguments[@"firestore"];
                    ^
    /Users/user/.pub-cache/hosted/pub.dartlang.org/cloud_firestore-3.4.3/ios/Classes/FLTSnapshotsInSyncStreamHandler.m:27:32: error: use of undeclared identifier 'firestore'
      self.listenerRegistration = [firestore addSnapshotsInSyncListener:listener];
                                   ^
    /Users/user/.pub-cache/hosted/pub.dartlang.org/cloud_firestore-3.4.3/ios/Classes/FLTSnapshotsInSyncStreamHandler.m:33:30: error: no known instance method for selector 'remove'
      [self.listenerRegistration remove];
                                 ^~~~~~
    8 errors generated.
    note: Using new build system
    note: Planning
    note: Build preparation complete
    note: Building targets in dependency order
    /Users/user/Projects/flutter/project/ios/Pods/Pods.xcodeproj: warning: The iOS deployment target 'IPHONEOS_DEPLOYMENT_TARGET' is set to 8.0, but the range of supported deployment target versions is 9.0 to 15.5.99. (in target 'TOCropViewController-TOCropViewControllerBundle' from project 'Pods')
    /Users/user/Projects/flutter/project/ios/Pods/Pods.xcodeproj: warning: The iOS deployment target 'IPHONEOS_DEPLOYMENT_TARGET' is set to 8.0, but the range of supported deployment target versions is 9.0 to 15.5.99. (in target 'TOCropViewController' from project 'Pods')
    /Users/user/Projects/flutter/project/ios/Pods/Pods.xcodeproj: warning: The iOS deployment target 'IPHONEOS_DEPLOYMENT_TARGET' is set to 8.0, but the range of supported deployment target versions is 9.0 to 15.5.99. (in target 'FMDB' from project 'Pods')
    /Users/user/Projects/flutter/project/ios/Pods/Pods.xcodeproj: warning: The iOS deployment target 'IPHONEOS_DEPLOYMENT_TARGET' is set to 8.0, but the range of supported deployment target versions is 9.0 to 15.5.99. (in target 'AppAuth' from project 'Pods')

    Result bundle written to path:
        /var/folders/39/gmxs8gmd6b98tg0n8dsz0zjw0000gn/T/flutter_tools.UcLLVR/flutter_ios_build_temp_dirLqs2Bi/temporary_xcresult_bundle

Parse Issue (Xcode): Expected a type
/Users/user/.pub-cache/hosted/pub.dartlang.org/cloud_firestore-3.4.3/ios/Classes/Private/FLTFirebaseFirestoreUtils.h:42:3

Parse Issue (Xcode): Expected a type
/Users/user/.pub-cache/hosted/pub.dartlang.org/cloud_firestore-3.4.3/ios/Classes/Private/FLTFirebaseFirestoreUtils.h:44:3

Parse Issue (Xcode): Expected a type
/Users/user/.pub-cache/hosted/pub.dartlang.org/cloud_firestore-3.4.3/ios/Classes/Private/FLTFirebaseFirestoreUtils.h:45:39

Generics Issue (Xcode): No type or protocol named 'FIRListenerRegistration'
/Users/user/.pub-cache/hosted/pub.dartlang.org/cloud_firestore-3.4.3/ios/Classes/FLTSnapshotsInSyncStreamHandler.m:11:32

Semantic Issue (Xcode): Use of undeclared identifier 'FIRFirestore'
/Users/user/.pub-cache/hosted/pub.dartlang.org/cloud_firestore-3.4.3/ios/Classes/FLTSnapshotsInSyncStreamHandler.m:18:2

Semantic Issue (Xcode): Use of undeclared identifier 'firestore'
/Users/user/.pub-cache/hosted/pub.dartlang.org/cloud_firestore-3.4.3/ios/Classes/FLTSnapshotsInSyncStreamHandler.m:18:16

Semantic Issue (Xcode): Use of undeclared identifier 'firestore'
/Users/user/.pub-cache/hosted/pub.dartlang.org/cloud_firestore-3.4.3/ios/Classes/FLTSnapshotsInSyncStreamHandler.m:26:31

ARC Semantic Issue (Xcode): No known instance method for selector 'remove'
/Users/user/.pub-cache/hosted/pub.dartlang.org/cloud_firestore-3.4.3/ios/Classes/FLTSnapshotsInSyncStreamHandler.m:32:29

Parse Issue (Xcode): Expected a type
/Users/user/.pub-cache/hosted/pub.dartlang.org/cloud_firestore-3.4.3/ios/Classes/FLTFirebaseFirestoreWriter.m:82:39

Parse Issue (Xcode): Expected a type
/Users/user/.pub-cache/hosted/pub.dartlang.org/cloud_firestore-3.4.3/ios/Classes/FLTFirebaseFirestoreWriter.m:89:37

Parse Issue (Xcode): Expected a type
/Users/user/.pub-cache/hosted/pub.dartlang.org/cloud_firestore-3.4.3/ios/Classes/FLTFirebaseFirestoreWriter.m:135:39

Parse Issue (Xcode): Expected a type
/Users/user/.pub-cache/hosted/pub.dartlang.org/cloud_firestore-3.4.3/ios/Classes/FLTFirebaseFirestoreWriter.m:143:45

Parse Issue (Xcode): Expected a type
/Users/user/.pub-cache/hosted/pub.dartlang.org/cloud_firestore-3.4.3/ios/Classes/FLTFirebaseFirestoreWriter.m:166:36

Semantic Issue (Xcode): Use of undeclared identifier 'FIRTimestamp'
/Users/user/.pub-cache/hosted/pub.dartlang.org/cloud_firestore-3.4.3/ios/Classes/FLTFirebaseFirestoreWriter.m:18:35

Semantic Issue (Xcode): Unknown type name 'FIRTimestamp'; did you mean 'CVTimeStamp'?
/Users/user/.pub-cache/hosted/pub.dartlang.org/cloud_firestore-3.4.3/ios/Classes/FLTFirebaseFirestoreWriter.m:19:4

ARC Casting Rules (Xcode): Implicit conversion of Objective-C pointer type 'id' to C pointer type 'CVTimeStamp *' requires a bridged cast
/Users/user/.pub-cache/hosted/pub.dartlang.org/cloud_firestore-3.4.3/ios/Classes/FLTFirebaseFirestoreWriter.m:19:30

Semantic Issue (Xcode): Member reference type 'CVTimeStamp *' is a pointer; did you mean to use '->'?
/Users/user/.pub-cache/hosted/pub.dartlang.org/cloud_firestore-3.4.3/ios/Classes/FLTFirebaseFirestoreWriter.m:20:30

Semantic Issue (Xcode): No member named 'seconds' in 'CVTimeStamp'
/Users/user/.pub-cache/hosted/pub.dartlang.org/cloud_firestore-3.4.3/ios/Classes/FLTFirebaseFirestoreWriter.m:20:31

Semantic Issue (Xcode): Member reference type 'CVTimeStamp *' is a pointer; did you mean to use '->'?
/Users/user/.pub-cache/hosted/pub.dartlang.org/cloud_firestore-3.4.3/ios/Classes/FLTFirebaseFirestoreWriter.m:21:31

Semantic Issue (Xcode): No member named 'nanoseconds' in 'CVTimeStamp'
/Users/user/.pub-cache/hosted/pub.dartlang.org/cloud_firestore-3.4.3/ios/Classes/FLTFirebaseFirestoreWriter.m:21:32

Semantic Issue (Xcode): Use of undeclared identifier 'FIRGeoPoint'
/Users/user/.pub-cache/hosted/pub.dartlang.org/cloud_firestore-3.4.3/ios/Classes/FLTFirebaseFirestoreWriter.m:25:35

Semantic Issue (Xcode): Use of undeclared identifier 'FIRGeoPoint'
/Users/user/.pub-cache/hosted/pub.dartlang.org/cloud_firestore-3.4.3/ios/Classes/FLTFirebaseFirestoreWriter.m:26:4

Semantic Issue (Xcode): Use of undeclared identifier 'geoPoint'
/Users/user/.pub-cache/hosted/pub.dartlang.org/cloud_firestore-3.4.3/ios/Classes/FLTFirebaseFirestoreWriter.m:26:17

Semantic Issue (Xcode): Use of undeclared identifier 'geoPoint'
/Users/user/.pub-cache/hosted/pub.dartlang.org/cloud_firestore-3.4.3/ios/Classes/FLTFirebaseFirestoreWriter.m:27:23

Error (Xcode): too many errors emitted, stopping now

Encountered error while building for device.
make: *** [ios] Error 1
sathishgovindarajuworks commented 2 years ago

Any updates on this issue? I have been having this for more than a month now and I have just commented out FirebaseFirestore to get it working. But build times are 45+ mins :(

mikehardy commented 2 years ago

Sorry @sathishgovindarajuworks (and @crtl ) I've been traveling so haven't had time to look personally. And no one else has volunteered their time, so no triage has been done.

So, no updates no (in general open source means you get what you see: there are no hidden updates, either way)

Mostly commenting to say that a proper implementation of https://ccache.dev/ will work around slow compilation for you quite effectively. In CI with firestore compiling I see compilation times of just a few minutes typically. Here's a whole recipe for you using https://github.com/hendrikmuhs/ccache-action - https://github.com/invertase/react-native-firebase/blob/main/.github/workflows/tests_e2e_ios.yml

note especially

https://github.com/invertase/react-native-firebase/blob/main/.github/workflows/tests_e2e_ios.yml#L75-L80

these to make sure Xcode is cached effectively

https://github.com/invertase/react-native-firebase/blob/main/.github/workflows/tests_e2e_ios.yml#L75-L80

and then these instructions (which are about the same between flutter and react-native) to get Xcode to use ccache https://reactnative.dev/docs/build-speed#xcode-specific-setup

mikehardy commented 2 years ago

I had a chance to scan this just a little more - I wonder if your flutter project needs to change it's ios deployment target to 9+

In the Xcode trace you should remove all warnings and notes, and focus just on the errors. They are here


    In file included from /Users/user/.pub-cache/hosted/pub.dartlang.org/cloud_firestore-3.4.3/ios/Classes/FLTSnapshotsInSyncStreamHandler.m:8:
    /Users/user/.pub-cache/hosted/pub.dartlang.org/cloud_firestore-3.4.3/ios/Classes/Private/FLTFirebaseFirestoreUtils.h:43:4: error: expected a type
    + (FIRFirestoreSource)FIRFirestoreSourceFromArguments:(NSDictionary *_Nonnull)arguments;
       ^
    /Users/user/.pub-cache/hosted/pub.dartlang.org/cloud_firestore-3.4.3/ios/Classes/Private/FLTFirebaseFirestoreUtils.h:45:4: error: expected a type
    + (FIRFirestore *_Nullable)getCachedFIRFirestoreInstanceForKey:(NSString *_Nonnull)key;
       ^
    /Users/user/.pub-cache/hosted/pub.dartlang.org/cloud_firestore-3.4.3/ios/Classes/Private/FLTFirebaseFirestoreUtils.h:46:40: error: expected a type
    + (void)setCachedFIRFirestoreInstance:(FIRFirestore *_Nonnull)firestore
                                           ^
    /Users/user/.pub-cache/hosted/pub.dartlang.org/cloud_firestore-3.4.3/ios/Classes/FLTSnapshotsInSyncStreamHandler.m:12:33: error: no type or protocol named 'FIRListenerRegistration'
    @property(readwrite, strong) id<FIRListenerRegistration> listenerRegistration;
                                    ^
    /Users/user/.pub-cache/hosted/pub.dartlang.org/cloud_firestore-3.4.3/ios/Classes/FLTSnapshotsInSyncStreamHandler.m:19:3: error: use of undeclared identifier 'FIRFirestore'
      FIRFirestore *firestore = arguments[@"firestore"];
      ^
    /Users/user/.pub-cache/hosted/pub.dartlang.org/cloud_firestore-3.4.3/ios/Classes/FLTSnapshotsInSyncStreamHandler.m:19:17: error: use of undeclared identifier 'firestore'
      FIRFirestore *firestore = arguments[@"firestore"];
                    ^
    /Users/user/.pub-cache/hosted/pub.dartlang.org/cloud_firestore-3.4.3/ios/Classes/FLTSnapshotsInSyncStreamHandler.m:27:32: error: use of undeclared identifier 'firestore'
      self.listenerRegistration = [firestore addSnapshotsInSyncListener:listener];
                                   ^
    /Users/user/.pub-cache/hosted/pub.dartlang.org/cloud_firestore-3.4.3/ios/Classes/FLTSnapshotsInSyncStreamHandler.m:33:30: error: no known instance method for selector 'remove'
      [self.listenerRegistration remove];
                                 ^~~~~~
    8 errors generated.

Looks to me like some sort of huge issue with imports/includes. That usually implies an easy fix (huge things are usually an obvious simple thing like one missing import statement) but I could be wrong. I would need to see the steps you can take to create a project with this problem

paulb777 commented 2 years ago

Or 10+ for recent versions.

kevin-trancoso5 commented 2 years ago

Hello, someone has found a solution for this issue there: https://github.com/firebase/flutterfire/issues/9015#issuecomment-1193825846

mikehardy commented 2 years ago

@paulb777 - @kevin-trancoso5 has pointed to a comment that is I think the correct root cause analysis

I missed this PR / changelog note where you bumped the minimum versions for zip distribution https://github.com/firebase/firebase-ios-sdk/pull/9633 / https://firebase.google.com/support/release-notes/ios#zip_and_carthage_users

Apologies everyone!

From @szotp-lc

The problem is occuring because:

invertase library no longer includes arm7v binaries (8.15 still had them), cloud_firestore still technically supports [iOS 10] (https://github.com/firebase/flutterfire/blob/master/packages/cloud_firestore/cloud_firestore/ios/cloud_firestore.podspec#L32). iOS 10 is the last version that supports iPhone 5c (32 bit / arm7v device) Cocoapods wants to build iOS 10, sees there is no arm7v for some dependencies, and derps-out. Although it's technically problem of invertase, it would make a lot of sense to raise the deployment target in this repo to iOS 11.

I will bump minimum versions supported here from 10 to 11 corresponding to this change. If people still need to support 10, they'll have to use the cocoapods distribution and accelerate another way (ccache is my favorite)

paulb777 commented 2 years ago

Good catch @mikehardy. Also https://github.com/firebase/firebase-ios-sdk is planning to update to iOS 11 in the next major version, largely because Xcode 14 is doing so.

Given that the zip builder has already changed to iOS 11, agreed that the invertase podspecs should change now.

mikehardy commented 2 years ago

For everyone that is affected by this, you might try the tag '9.5.0-1' here to see if it helps you.

You will need an iOS minimum deployment target of 11 set in your Podfile and your app info via Xcode to avoid other problems I think

Assuming this works, it's a closed issue and the next release will auto-magically incorporate the change :crossed_fingers: