Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

iOS: Building documentation (Docc) gives error coming from FirebaseCoreExtension while building with Xcode 16 #13756

Closed
VladimirAmiorkovFlutter opened this issue Oct 1, 2024 · 10 comments · Fixed by #13765

Comments

@VladimirAmiorkovFlutter
Copy link

VladimirAmiorkovFlutter commented Oct 1, 2024

Description

With latest Xcode Version 16.0 (16A242d), when building the project everything is fine but when I build the Documentation (Product > Build Documentation), I am getting this error via:

/.../Project/Pods/FirebaseCore/FirebaseCore/Sources/Public/FirebaseCore/FIRLoggerLevel.h:23:28: redefinition of 'FIRLoggerLevel'

Building the documentation of the same project with Xcode Version 15.4 works just fine, so the error must come from the new xcodebuild (Xcode 16.0 Build version 16A242d).

Here are the pods in the project:

pod 'Firebase/Crashlytics', '11.3.0'

Removing the Firebase/Crashlytics pod from the project resolves the documentation build issue.

Reproducing the issue

  1. Create Xcode project using Xcode 15.4 (do not use Xcode 16.0 as CocoaPods does not yet support it)
  2. Close the Xcode project
  3. Go to project directory and init and install pods: $ pod init
  4. Open the Podfile and add pod 'Firebase/Crashlytics', '11.3.0'
  5. Go to project directory and install the pods: $ pod install --repo-update
  6. Open the newly created Xcode workspace
  7. Make sure that the project target is selected
  8. Build "docc" documentation by pressing "Product > Build Documentation" in the MacOS navigation bar.

You get errors from FirebaseCoreExtension during build.

Firebase SDK Version

11.3

Xcode Version

16.0

Installation Method

CocoaPods

Firebase Product(s)

Crashlytics

Targeted Platforms

iOS

Relevant Log Output

/Users/.../Project/Pods/FirebaseCore/FirebaseCore/Sources/Public/FirebaseCore/FIRLoggerLevel.h:23:28: redefinition of 'FIRLoggerLevel'

If using Swift Package Manager, the project's Package.resolved

Expand Package.resolved snippet
Replace this line with the contents of your Package.resolved.

If using CocoaPods, the project's Podfile.lock

Expand Podfile.lock snippet
PODS:
  - Firebase/CoreOnly (11.3.0):
    - FirebaseCore (= 11.3.0)
  - Firebase/Crashlytics (11.3.0):
    - Firebase/CoreOnly
    - FirebaseCrashlytics (~> 11.3.0)
  - FirebaseCore (11.3.0):
    - FirebaseCoreInternal (~> 11.0)
    - GoogleUtilities/Environment (~> 8.0)
    - GoogleUtilities/Logger (~> 8.0)
  - FirebaseCoreExtension (11.3.0):
    - FirebaseCore (~> 11.0)
  - FirebaseCoreInternal (11.3.0):
    - "GoogleUtilities/NSData+zlib (~> 8.0)"
  - FirebaseCrashlytics (11.3.0):
    - FirebaseCore (~> 11.0)
    - FirebaseInstallations (~> 11.0)
    - FirebaseRemoteConfigInterop (~> 11.0)
    - FirebaseSessions (~> 11.0)
    - GoogleDataTransport (~> 10.0)
    - GoogleUtilities/Environment (~> 8.0)
    - nanopb (~> 3.30910.0)
    - PromisesObjC (~> 2.4)
  - FirebaseInstallations (11.3.0):
    - FirebaseCore (~> 11.0)
    - GoogleUtilities/Environment (~> 8.0)
    - GoogleUtilities/UserDefaults (~> 8.0)
    - PromisesObjC (~> 2.4)
  - FirebaseRemoteConfigInterop (11.3.0)
  - FirebaseSessions (11.3.0):
    - FirebaseCore (~> 11.0)
    - FirebaseCoreExtension (~> 11.0)
    - FirebaseInstallations (~> 11.0)
    - GoogleDataTransport (~> 10.0)
    - GoogleUtilities/Environment (~> 8.0)
    - GoogleUtilities/UserDefaults (~> 8.0)
    - nanopb (~> 3.30910.0)
    - PromisesSwift (~> 2.1)
  - GoogleDataTransport (10.1.0):
    - nanopb (~> 3.30910.0)
    - PromisesObjC (~> 2.4)
  - GoogleUtilities/Environment (8.0.2):
    - GoogleUtilities/Privacy
  - GoogleUtilities/Logger (8.0.2):
    - GoogleUtilities/Environment
    - GoogleUtilities/Privacy
  - "GoogleUtilities/NSData+zlib (8.0.2)":
    - GoogleUtilities/Privacy
  - GoogleUtilities/Privacy (8.0.2)
  - GoogleUtilities/UserDefaults (8.0.2):
    - GoogleUtilities/Logger
    - GoogleUtilities/Privacy
  - nanopb (3.30910.0):
    - nanopb/decode (= 3.30910.0)
    - nanopb/encode (= 3.30910.0)
  - nanopb/decode (3.30910.0)
  - nanopb/encode (3.30910.0)
  - PromisesObjC (2.4.0)
  - PromisesSwift (2.4.0):
    - PromisesObjC (= 2.4.0)

DEPENDENCIES:
  - Firebase/Crashlytics (= 11.3.0)

SPEC REPOS:
  trunk:
    - Firebase
    - FirebaseCore
    - FirebaseCoreExtension
    - FirebaseCoreInternal
    - FirebaseCrashlytics
    - FirebaseInstallations
    - FirebaseRemoteConfigInterop
    - FirebaseSessions
    - GoogleDataTransport
    - GoogleUtilities
    - nanopb
    - PromisesObjC
    - PromisesSwift

SPEC CHECKSUMS:
  Firebase: 5c575140761e22324806f401e38c483d58db2dec
  FirebaseCore: 8542de610f35f86196ba26cdb2544565a5157c8e
  FirebaseCoreExtension: 30bb063476ef66cd46925243d64ad8b2c8ac3264
  FirebaseCoreInternal: ac26d09a70c730e497936430af4e60fb0c68ec4e
  FirebaseCrashlytics: ba7b6a55dc10393f6583d87d8600d0d3ab2671d8
  FirebaseInstallations: 58cf94dabf1e2bb2fa87725a9be5c2249171cda0
  FirebaseRemoteConfigInterop: c3a5c31b3c22079f41ba1dc645df889d9ce38cb9
  FirebaseSessions: 655ff17f3cc1a635cbdc2d69b953878001f9e25b
  GoogleDataTransport: aae35b7ea0c09004c3797d53c8c41f66f219d6a7
  GoogleUtilities: 26a3abef001b6533cf678d3eb38fd3f614b7872d
  nanopb: fad817b59e0457d11a5dfbde799381cd727c1275
  PromisesObjC: f5707f49cb48b9636751c5b2e7d227e43fba9f47
  PromisesSwift: 9d77319bbe72ebf6d872900551f7eeba9bce2851

PODFILE CHECKSUM: dd40a8909158eeaa7bf1342f0d7ee46699de9f64

COCOAPODS: 1.15.2
@google-oss-bot
Copy link

I couldn't figure out how to label this issue, so I've labeled it for a human to triage. Hang tight.

@paulb777
Copy link
Member

paulb777 commented Oct 1, 2024

@VladimirAmiorkovFlutter Thanks for the report. We've reproduced and are working on a fix for the next release.

@VladimirAmiorkovFlutter
Copy link
Author

VladimirAmiorkovFlutter commented Oct 24, 2024

@paulb777
Is this issue fixed in the latest 11.4.0 release from 3 days ago? I am asking as the issue persists in that version also.

I looked over the release notes and the change log and I do not find a reference to this issue ID, so it looks like it is not included even tho it was fixed/closed over 3 weeks ago.

When can we expect this to be released, is there a way to track an issue's release?
Thank you.

@paulb777
Copy link
Member

@VladimirAmiorkovFlutter Yes this fix was included in 11.4.0.

It's shown more clearly in the Release Notes at https://firebase.google.com/support/release-notes/ios. The links you shared are lower level release notes from a PR by PR perspective in which you can see the PR that closed this issue.

@VladimirAmiorkovFlutter
Copy link
Author

VladimirAmiorkovFlutter commented Oct 24, 2024

Hi @paulb777 ,
Thank you for that.
In that case can we reopen this issue as it is not really fixed. It can be reproduced with the original steps when using the 11.4.0 version of Firebase/Crashlytics.

There are multiple errors of redefinition:
Screenshot 2024-10-24 at 17 04 40

Here is the project's Podfile.lock

Expand Podfile.lock snippet
PODS:
  - Firebase/CoreOnly (11.4.0):
    - FirebaseCore (= 11.4.0)
  - Firebase/Crashlytics (11.4.0):
    - Firebase/CoreOnly
    - FirebaseCrashlytics (~> 11.4.0)
  - FirebaseCore (11.4.0):
    - FirebaseCoreInternal (~> 11.0)
    - GoogleUtilities/Environment (~> 8.0)
    - GoogleUtilities/Logger (~> 8.0)
  - FirebaseCoreExtension (11.4.1):
    - FirebaseCore (~> 11.0)
  - FirebaseCoreInternal (11.4.2):
    - "GoogleUtilities/NSData+zlib (~> 8.0)"
  - FirebaseCrashlytics (11.4.0):
    - FirebaseCore (~> 11.4)
    - FirebaseInstallations (~> 11.0)
    - FirebaseRemoteConfigInterop (~> 11.0)
    - FirebaseSessions (~> 11.0)
    - GoogleDataTransport (~> 10.0)
    - GoogleUtilities/Environment (~> 8.0)
    - nanopb (~> 3.30910.0)
    - PromisesObjC (~> 2.4)
  - FirebaseInstallations (11.4.0):
    - FirebaseCore (~> 11.0)
    - GoogleUtilities/Environment (~> 8.0)
    - GoogleUtilities/UserDefaults (~> 8.0)
    - PromisesObjC (~> 2.4)
  - FirebaseRemoteConfigInterop (11.4.0)
  - FirebaseSessions (11.4.0):
    - FirebaseCore (~> 11.4)
    - FirebaseCoreExtension (~> 11.4)
    - FirebaseInstallations (~> 11.0)
    - GoogleDataTransport (~> 10.0)
    - GoogleUtilities/Environment (~> 8.0)
    - GoogleUtilities/UserDefaults (~> 8.0)
    - nanopb (~> 3.30910.0)
    - PromisesSwift (~> 2.1)
  - GoogleDataTransport (10.1.0):
    - nanopb (~> 3.30910.0)
    - PromisesObjC (~> 2.4)
  - GoogleUtilities/Environment (8.0.2):
    - GoogleUtilities/Privacy
  - GoogleUtilities/Logger (8.0.2):
    - GoogleUtilities/Environment
    - GoogleUtilities/Privacy
  - "GoogleUtilities/NSData+zlib (8.0.2)":
    - GoogleUtilities/Privacy
  - GoogleUtilities/Privacy (8.0.2)
  - GoogleUtilities/UserDefaults (8.0.2):
    - GoogleUtilities/Logger
    - GoogleUtilities/Privacy
  - nanopb (3.30910.0):
    - nanopb/decode (= 3.30910.0)
    - nanopb/encode (= 3.30910.0)
  - nanopb/decode (3.30910.0)
  - nanopb/encode (3.30910.0)
  - PromisesObjC (2.4.0)
  - PromisesSwift (2.4.0):
    - PromisesObjC (= 2.4.0)

DEPENDENCIES:
  - Firebase/Crashlytics (= 11.4.0)

SPEC REPOS:
  trunk:
    - Firebase
    - FirebaseCore
    - FirebaseCoreExtension
    - FirebaseCoreInternal
    - FirebaseCrashlytics
    - FirebaseInstallations
    - FirebaseRemoteConfigInterop
    - FirebaseSessions
    - GoogleDataTransport
    - GoogleUtilities
    - nanopb
    - PromisesObjC
    - PromisesSwift

SPEC CHECKSUMS:
  Firebase: cf1b19f21410b029b6786a54e9764a0cacad3c99
  FirebaseCore: e0510f1523bc0eb21653cac00792e1e2bd6f1771
  FirebaseCoreExtension: f1bc67a4702931a7caa097d8e4ac0a1b0d16720e
  FirebaseCoreInternal: 35731192cab10797b88411be84940d2beb33a238
  FirebaseCrashlytics: 41bbdd2b514a8523cede0c217aee6ef7ecf38401
  FirebaseInstallations: 6ef4a1c7eb2a61ee1f74727d7f6ce2e72acf1414
  FirebaseRemoteConfigInterop: e76f46ffa4d6a65e273d4dfebb6a79e588cec136
  FirebaseSessions: 3f56f177d9e53a85021d16b31f9a111849d1dd8b
  GoogleDataTransport: aae35b7ea0c09004c3797d53c8c41f66f219d6a7
  GoogleUtilities: 26a3abef001b6533cf678d3eb38fd3f614b7872d
  nanopb: fad817b59e0457d11a5dfbde799381cd727c1275
  PromisesObjC: f5707f49cb48b9636751c5b2e7d227e43fba9f47
  PromisesSwift: 9d77319bbe72ebf6d872900551f7eeba9bce2851

PODFILE CHECKSUM: aadfcdf42e8ba46aa5971697eb5d58aec4320186

COCOAPODS: 1.15.2

@paulb777
Copy link
Member

Hmm, what Xcode version are you using? I'm not seeing those errors with 16.1

@VladimirAmiorkovFlutter
Copy link
Author

I am using the latest official Version 16.0 (16A242d).

@paulb777 paulb777 reopened this Oct 24, 2024
@paulb777
Copy link
Member

Your previous issue was reproduced (and fixed) with a slightly different repro (using pod gen). When I follow exactly the repro steps, I see the ongoing issue with 11.4.0 I'll investigate.

@paulb777
Copy link
Member

Confirmed that #13993 fixes this. The plan is to include in the upcoming 11.5.0.

@VladimirAmiorkovFlutter
Copy link
Author

@paulb777 Thank you for the update, looking forward to 11.5.0

@firebase firebase locked and limited conversation to collaborators Nov 29, 2024
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.