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

Xcode Archive failure with manual code signing when upgrading Firebase from 8.14 #12834

Closed
natemekonnen opened this issue Apr 22, 2024 · 7 comments

Comments

@natemekonnen
Copy link

Description

I recently upgraded the Firebase SDK from version 8.14.0 to the 10.24.0 to utilize the real-time remote config feature in my iOS project. After the upgrade, the functionality works as expected during development. However, when attempting to create an IPA file using manual code signing for release builds, I encountered a compilation failure.

Issue Encountered:

During the archive process, the compilation fails with the following error:

CompileSwift normal arm64 (in target 'FirebaseCoreInternal' from project 'Firebase')
    cd /Users/runner/Library/Developer/Xcode/DerivedData/SourcePackages/checkouts/firebase-ios-sdk/FirebaseCore/Internal/Sources/HeartbeatLogging/HeartbeatsPayload.swift:20:10: error: no such module 'GoogleUtilities'
  import GoogleUtilities
.
.
.
** ARCHIVE FAILED **


The following build commands failed:
	SwiftCompile normal arm64 Compiling\ Heartbeat.swift,\ HeartbeatController.swift,\ HeartbeatStorage.swift,\ HeartbeatsBundle.swift,\ HeartbeatsPayload.swift ....
        CompileSwift normal arm64 (in target 'FirebaseCoreInternal' from project 'Firebase')
(2 failures)

Command used to run archive:

xcodebuild \ 
  -sdk iphoneos \
  -configuration Release \
  -project ./Sample.xcodeproj \
  -scheme Release clean archive SWIFT_ACTIVE_COMPILATION_CONDITIONS=RELEASE 

Important build settings to highlight

CODE_SIGN_STYLE = Manual;
COPY_PHASE_STRIP = YES;
IPHONEOS_DEPLOYMENT_TARGET = 16.0;
SWIFT_COMPILATION_MODE = wholemodule;
SWIFT_OPTIMIZATION_LEVEL = "-O";
SWIFT_VERSION = 5.0;
VALIDATE_PRODUCT = YES;

Expected Behavior:

Interestingly, the archive succeeds when automatic code signing is enabled for DEBUG builds. I expect the archive process for RELEASE builds to succeed with manual code signing enabled, similar to DEBUG builds.

Reproducing the issue

No response

Firebase SDK Version

10.24.0

Xcode Version

15.2

Installation Method

Swift Package Manager

Firebase Product(s)

Messaging, Remote Config

Targeted Platforms

iOS

Relevant Log Output

** ARCHIVE FAILED **


The following build commands failed:
	SwiftCompile normal arm64 Compiling\ Heartbeat.swift,\ HeartbeatController.swift,\ HeartbeatStorage.swift,\ HeartbeatsBundle.swift,\ HeartbeatsPayload.swift ....
        CompileSwift normal arm64 (in target 'FirebaseCoreInternal' from project 'Firebase')
(2 failures)

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

Expand Package.resolved snippet
{
  "object": {
    "pins": [
      {
        "package": "abseil",
        "repositoryURL": "https://github.com/google/abseil-cpp-binary.git",
        "state": {
          "branch": null,
          "revision": "748c7837511d0e6a507737353af268484e1745e2",
          "version": "1.2024011601.1"
        }
      },
      {
        "package": "AppCheck",
        "repositoryURL": "https://github.com/google/app-check.git",
        "state": {
          "branch": null,
          "revision": "7d2688de038d5484866d835acb47b379722d610e",
          "version": "10.19.0"
        }
      },
      {
        "package": "AppCenter",
        "repositoryURL": "https://github.com/microsoft/appcenter-sdk-apple.git",
        "state": {
          "branch": null,
          "revision": "88e65475ffd3a7cf2bbde07df9e62159a1fd60a8",
          "version": "5.0.0"
        }
      },
      {
        "package": "Firebase",
        "repositoryURL": "https://github.com/firebase/firebase-ios-sdk",
        "state": {
          "branch": null,
          "revision": "42eae77a0af79e9c3f41df04a23c76f05cfdda77",
          "version": "10.24.0"
        }
      },
      {
        "package": "GoogleAppMeasurement",
        "repositoryURL": "https://github.com/google/GoogleAppMeasurement.git",
        "state": {
          "branch": null,
          "revision": "51ba746a9d51a4bd0774b68499b0c73ef6e8570d",
          "version": "10.24.0"
        }
      },
      {
        "package": "GoogleDataTransport",
        "repositoryURL": "https://github.com/google/GoogleDataTransport.git",
        "state": {
          "branch": null,
          "revision": "a637d318ae7ae246b02d7305121275bc75ed5565",
          "version": "9.4.0"
        }
      },
      {
        "package": "GoogleUtilities",
        "repositoryURL": "https://github.com/google/GoogleUtilities.git",
        "state": {
          "branch": null,
          "revision": "26c898aed8bed13b8a63057ee26500abbbcb8d55",
          "version": "7.13.1"
        }
      },
      {
        "package": "gRPC",
        "repositoryURL": "https://github.com/google/grpc-binary.git",
        "state": {
          "branch": null,
          "revision": "e9fad491d0673bdda7063a0341fb6b47a30c5359",
          "version": "1.62.2"
        }
      },
      {
        "package": "GTMSessionFetcher",
        "repositoryURL": "https://github.com/google/gtm-session-fetcher.git",
        "state": {
          "branch": null,
          "revision": "0382ca27f22fb3494cf657d8dc356dc282cd1193",
          "version": "3.4.1"
        }
      },
      {
        "package": "InteropForGoogle",
        "repositoryURL": "https://github.com/google/interop-ios-for-google-sdks.git",
        "state": {
          "branch": null,
          "revision": "2d12673670417654f08f5f90fdd62926dc3a2648",
          "version": "100.0.0"
        }
      },
      {
        "package": "leveldb",
        "repositoryURL": "https://github.com/firebase/leveldb.git",
        "state": {
          "branch": null,
          "revision": "0706abcc6b0bd9cedfbb015ba840e4a780b5159b",
          "version": "1.22.2"
        }
      },
      {
        "package": "Lottie",
        "repositoryURL": "https://github.com/airbnb/lottie-ios",
        "state": {
          "branch": null,
          "revision": "79a0b70547f7c40ea54c67487f935fa2f2eaaadc",
          "version": "3.2.3"
        }
      },
      {
        "package": "nanopb",
        "repositoryURL": "https://github.com/firebase/nanopb.git",
        "state": {
          "branch": null,
          "revision": "819d0a2173aff699fb8c364b6fb906f7cdb1a692",
          "version": "2.30909.0"
        }
      },
      {
        "package": "PLCrashReporter",
        "repositoryURL": "https://github.com/microsoft/PLCrashReporter.git",
        "state": {
          "branch": null,
          "revision": "b1a342da19ed9b3af61ea2efa7656c2af30aeb7c",
          "version": "1.11.0"
        }
      },
      {
        "package": "Promises",
        "repositoryURL": "https://github.com/google/promises.git",
        "state": {
          "branch": null,
          "revision": "540318ecedd63d883069ae7f1ed811a2df00b6ac",
          "version": "2.4.0"
        }
      },
      {
        "package": "SwiftProtobuf",
        "repositoryURL": "https://github.com/apple/swift-protobuf.git",
        "state": {
          "branch": null,
          "revision": "0af9125c4eae12a4973fb66574c53a54962a9e1e",
          "version": "1.21.0"
        }
      },
      {
        "package": "TrustKit",
        "repositoryURL": "https://github.com/datatheorem/TrustKit",
        "state": {
          "branch": null,
          "revision": "3c953558d61fdd9b136d981764e3242bd92b2648",
          "version": "1.7.0"
        }
      }
      }
    ]
  },
  "version": 1
}

If using CocoaPods, the project's Podfile.lock

Expand Podfile.lock snippet
Replace this line with the contents of your Podfile.lock!
@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.

@ncooke3
Copy link
Member

ncooke3 commented Apr 22, 2024

This may be a duplicate of #12409 in which it will be fixed in the next Firebase release. At the time, I wasn't able to reproduce the reports in #12409, are you able to provide a minimal, reproducible example?

@natemekonnen
Copy link
Author

Steps to reproduce the bug

on Xcode 15.2

  1. New Project -> iOS -> App
MicrosoftTeams-image (1) MicrosoftTeams-image (2)
  1. Add firebase dependency
MicrosoftTeams-image (3) MicrosoftTeams-image (4)

Add FirebaseRemoteConfig to target
MicrosoftTeams-image (5)

package dependency version state:
MicrosoftTeams-image (6)

  1. Run archive command
xcodebuild \
  -sdk iphoneos \
  -configuration Release \
  -project ./ReproduceFirebaseBug.xcodeproj \
  -scheme ReproduceFirebaseBug clean archive SWIFT_ACTIVE_COMPILATION_CONDITIONS=RELEASE

Faliure log

/Xcode/DerivedData/ReproduceFirebaseBug-aqsvoqcltntrsndflplttyxvojsl/SourcePackages/checkouts/firebase-ios-sdk/FirebaseCore/Internal/Sources/HeartbeatLogging/HeartbeatsPayload.swift:20:10: error: no such module 'GoogleUtilities'
  import GoogleUtilities
         ^
.
.
.
** ARCHIVE FAILED **

The following build commands failed:
                SwiftCompile normal arm64 Compiling\ resource_bundle_accessor.swift,\ Heartbeat.swift,\ HeartbeatController.swift,\ HeartbeatLoggingTestUtils.swift,\ HeartbeatStorage.swift
  .
  .
  ._ObjC_HeartbeatsPayload.swift (in target 'FirebaseCoreInternal' from project 'Firebase')
                CompileSwift normal arm64 (in target 'FirebaseCoreInternal' from project 'Firebase')

(2 failures)

@paulb777
Copy link
Member

Thanks for the repro steps. I reproduced with Xcode 15.3 and continuing to investigate.

@paulb777
Copy link
Member

The build is successful if SWIFT_ACTIVE_COMPILATION_CONDITIONS=RELEASE is removed from the command line. It seems that it causes the SWIFT_PACKAGE to be undefined and the condition here to be compiled wrong. Is the option redundant anyway with the already specified -configuration Release?

@google-oss-bot
Copy link

Hey @natemekonnen. We need more information to resolve this issue but there hasn't been an update in 5 weekdays. I'm marking the issue as stale and if there are no new updates in the next 5 days I will close it automatically.

If you have more information that will help us get to the bottom of this, just add a comment!

@google-oss-bot
Copy link

Since there haven't been any recent updates here, I am going to close this issue.

@natemekonnen if you're still experiencing this problem and want to continue the discussion just leave a comment here and we are happy to re-open this.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

4 participants