Skip to content

Crashlytics run script fails under Xcode User Script Sandboxing with SPM path (Operation not permitted) #16217

Description

@patricks

Description

Hi,

we are seeing a reproducible Crashlytics build failure in CI when using the Firebase iOS SDK via Swift Package Manager and Xcode User Script Sandboxing enabled.

Environment

  • Firebase iOS SDK: via SPM (firebase-ios-sdk checkout in DerivedData/SourcePackages)
  • Xcode: 26.5.0
  • Build system: xcodebuild / Fastlane archive
  • CI: macOS GitHub Actions runner
  • ENABLE_USER_SCRIPT_SANDBOXING = YES

Error

The Crashlytics run script fails with sandbox denial:

error: Sandbox: bash(...) deny(1) file-read-data .../DerivedData/SourcePackages/checkouts/firebase-ios-sdk/Crashlytics/run

and then:

/bin/sh: .../Crashlytics/run: Operation not permitted

Current script phase

We call:

"${BUILD_DIR%/Build/*}/SourcePackages/checkouts/firebase-ios-sdk/Crashlytics/run"

Problem

With script sandboxing enabled, declaring input files is required.
However, paths using shell parameter expansion (like ${BUILD_DIR%/Build/*}) are not interpreted in Input Files, so even when we add corresponding entries, sandbox still blocks Crashlytics/run.

Question

What is the officially supported and sandbox-safe way to reference Crashlytics run (and upload-symbols) for SPM-based integration on modern Xcode with User Script Sandboxing enabled?

A concrete recommended Input Files + script path example would help.

Thanks!

Reproducing the issue

No response

Firebase SDK Version

12.14

Xcode Version

26.5

Installation Method

Swift Package Manager

Firebase Product(s)

Crashlytics

Targeted Platforms

iOS

Relevant Log Output

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

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions