firebase-ios-sdk: dSYM upload script not working with XCode 15 archive

Description

I just upgraded to XCode 15, and the script to upload dSYM no longer works with this error:

Could not get GOOGLE_APP_ID in Google Services file from build environment

This only happens when I archive. When building and running, this works just fine, even with the Any iOS Device (arm64) destination. I have all 5 files in the Input Files. I tried removing the $(BUILT_PRODUCTS_DIR)/$(UNLOCALIZED_RESOURCES_FOLDER_PATH)/GoogleService-Info.plist when building and it fails with the same error. So for some reason, it doesn’t seem to recognize GOOGLE_APP_ID when archiving.

Reproducing the issue

Standard setup from the Get started with Firebase Crashlytics page and in XCode: Product/Archive

Firebase SDK Version

10.15.0

Xcode Version

15.0

Installation Method

Swift Package Manager

Firebase Product(s)

Crashlytics

Targeted Platforms

iOS

Relevant Log Output

No response

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

{ “pins” : [ { “identity” : “abseil-cpp-binary”, “kind” : “remoteSourceControl”, “location” : “https://github.com/google/abseil-cpp-binary.git”, “state” : { “revision” : “bfc0b6f81adc06ce5121eb23f628473638d67c5c”, “version” : “1.2022062300.0” } }, { “identity” : “firebase-ios-sdk”, “kind” : “remoteSourceControl”, “location” : “https://github.com/firebase/firebase-ios-sdk”, “state” : { “revision” : “8a8ec57a272e0d31480fb0893dda0cf4f769b57e”, “version” : “10.15.0” } }, { “identity” : “flanimatedimage”, “kind” : “remoteSourceControl”, “location” : “https://github.com/Flipboard/FLAnimatedImage.git”, “state” : { “revision” : “d4f07b6f164d53c1212c3e54d6460738b1981e9f”, “version” : “1.0.17” } }, { “identity” : “googleappmeasurement”, “kind” : “remoteSourceControl”, “location” : “https://github.com/google/GoogleAppMeasurement.git”, “state” : { “revision” : “03b9beee1a61f62d32c521e172e192a1663a5e8b”, “version” : “10.13.0” } }, { “identity” : “googledatatransport”, “kind” : “remoteSourceControl”, “location” : “https://github.com/google/GoogleDataTransport.git”, “state” : { “revision” : “aae45a320fd0d11811820335b1eabc8753902a40”, “version” : “9.2.5” } }, { “identity” : “googleutilities”, “kind” : “remoteSourceControl”, “location” : “https://github.com/google/GoogleUtilities.git”, “state” : { “revision” : “c38ce365d77b04a9a300c31061c5227589e5597b”, “version” : “7.11.5” } }, { “identity” : “grpc-binary”, “kind” : “remoteSourceControl”, “location” : “https://github.com/google/grpc-binary.git”, “state” : { “revision” : “f1b366129d1125be7db83247e003fc333104b569”, “version” : “1.50.2” } }, { “identity” : “gtm-session-fetcher”, “kind” : “remoteSourceControl”, “location” : “https://github.com/google/gtm-session-fetcher.git”, “state” : { “revision” : “d415594121c9e8a4f9d79cecee0965cf35e74dbd”, “version” : “3.1.1” } }, { “identity” : “interop-ios-for-google-sdks”, “kind” : “remoteSourceControl”, “location” : “https://github.com/google/interop-ios-for-google-sdks.git”, “state” : { “revision” : “2d12673670417654f08f5f90fdd62926dc3a2648”, “version” : “100.0.0” } }, { “identity” : “leveldb”, “kind” : “remoteSourceControl”, “location” : “https://github.com/firebase/leveldb.git”, “state” : { “revision” : “0706abcc6b0bd9cedfbb015ba840e4a780b5159b”, “version” : “1.22.2” } }, { “identity” : “nanopb”, “kind” : “remoteSourceControl”, “location” : “https://github.com/firebase/nanopb.git”, “state” : { “revision” : “819d0a2173aff699fb8c364b6fb906f7cdb1a692”, “version” : “2.30909.0” } }, { “identity” : “promises”, “kind” : “remoteSourceControl”, “location” : “https://github.com/google/promises.git”, “state” : { “revision” : “e70e889c0196c76d22759eb50d6a0270ca9f1d9e”, “version” : “2.3.1” } }, { “identity” : “swift-markdown-ui”, “kind” : “remoteSourceControl”, “location” : “https://github.com/gonzalezreal/swift-markdown-ui”, “state” : { “revision” : “12b351a75201a8124c2f2e1f9fc6ef5cd812c0b9”, “version” : “2.1.0” } }, { “identity” : “swift-protobuf”, “kind” : “remoteSourceControl”, “location” : “https://github.com/apple/swift-protobuf.git”, “state” : { “revision” : “cf62cdaea48b77f1a631e5cb3aeda6047c2cba1d”, “version” : “1.23.0” } }, { “identity” : “zipfoundation”, “kind” : “remoteSourceControl”, “location” : “https://github.com/weichsel/ZIPFoundation.git”, “state” : { “revision” : “43ec568034b3731101dbf7670765d671c30f54f3”, “version” : “0.9.16” } } ], “version” : 2 }

If using CocoaPods, the project’s Podfile.lock

Expand Podfile.lock snippet

Replace this line with the contents of your Podfile.lock!

About this issue

  • Original URL
  • State: closed
  • Created 9 months ago
  • Reactions: 4
  • Comments: 20 (5 by maintainers)

Most upvoted comments

Doesn’t seem to be minor for the continuous deployment.

Hey folks,

Here is the input files should work for both build and archive. We will update the public doc shortly, thank you for the patient!

$(TARGET_BUILD_DIR)/$(UNLOCALIZED_RESOURCES_FOLDER_PATH)/GoogleService-Info.plist
$(TARGET_BUILD_DIR)/$(EXECUTABLE_PATH)
${DWARF_DSYM_FOLDER_PATH}/${DWARF_DSYM_FILE_NAME}
${DWARF_DSYM_FOLDER_PATH}/${DWARF_DSYM_FILE_NAME}/Contents/Info.plist
${DWARF_DSYM_FOLDER_PATH}/${DWARF_DSYM_FILE_NAME}/Contents/Resources/DWARF/${PRODUCT_NAME}

Hey @ndson040496,

Could you try adding $(INSTALL_DIR)/$(UNLOCALIZED_RESOURCES_FOLDER_PATH)/GoogleService-Info.plist to your input file and try archive again see if problem get resolved? I inspected derived data a bit. When archive a build, your application binary has an alias under $(BUILT_PRODUCTS_DIR)/$(UNLOCALIZED_RESOURCES_FOLDER_PATH), but the real application binary is created within a folder called InstallationBuildProductsLocation/ and it gets deleted once your application finishes build. We probably need to add that to input file list as well in order to allow the read access for user run script when archiving. Screenshot 2023-09-27 at 5 20 37 PM

I took all input file specifications from the docs: https://firebase.google.com/docs/crashlytics/get-started?hl=en&platform=ios#set-up-dsym-uploading and added $(INSTALL_DIR)/$(UNLOCALIZED_RESOURCES_FOLDER_PATH)/GoogleService-Info.plist, which is working for me in debug runs and Xcode Cloud builds. Without $(INSTALL_DIR)/$(UNLOCALIZED_RESOURCES_FOLDER_PATH)/GoogleService-Info.plist, Xcode Cloud builds failed with Could not get GOOGLE_APP_ID in Google Services file from build environment.

Edit: This is how my input files looks now: Screenshot 2023-10-04 at 16 03 29 Edit 2: I’m on the latest Xcode Version 15.0 (15A240d) with a iOS 17.0 project.

That did the trick for me as well. Thank you @abegehr!

@themiswang, $(INSTALL_DIR)/$(UNLOCALIZED_RESOURCES_FOLDER_PATH)/GoogleService-Info.plist solved it for me! Should be in the docs: https://firebase.google.com/docs/crashlytics/get-started?hl=en&platform=ios

I have the same issue.