invertase / flutterfire_cli

A CLI to help with using FlutterFire in your Flutter applications.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

ios post build script require flutterfire to be available globally

cedvdb opened this issue · comments

Description

When running flutterfire configure (0.3.0-dev.19), post build scripts are added to ios. Those post build scripts require flutterfire to be installed on the machine building the ios application.

This is a problem because the flutterfire installed locally might not be the same version with which configure was run. Currently, for example, I'm using an hard coded version of the flutterfire cli in this github action so the build process can run https://github.com/cedvdb/action-flutter-build-ios/blob/main/action.yml#L54

I'd propose to use flutterfire_cli installed as a dev_dependency instead and fallback to a global one, so everyone, the CI and all developers can use the same version deterministically.

Related:

Reasoning

It should be deterministic

Additional context and comments

No response

I noticed this issue today as well and came up with a manual workaround for building my iOS app via Codemagic. First, here's the error I got on codemagic:

    /Users/builder/Library/Developer/Xcode/DerivedData/Runner-edaimyiflreloheqntgnhkmwcclv/Build/Intermediates.noindex/ArchiveIntermediates/Runner/IntermediateBuildFilesPath/Runner.build/Release-iphoneos/Runner.build/Script-EAEA39BC9122492C49AD1220.sh: line 5: flutterfire: command not found
    Command PhaseScriptExecution failed with a nonzero exit code

This (flutterfire: command not found) makes sense because unlike my local dev environment, Codemagic never ran dart pub global activate flutterfire_cli 0.3.0-dev.20 --overwrite anywhere.

My workround was to manually add dart pub global activate flutterfire_cli 0.3.0-dev.20 --overwrite to the FlutterFire: flutterfire upload-crashlytics-symbols script that flutterfire configure originally created.

Screenshot 2024-03-15 at 22 33 04

I noticed this issue today as well and came up with a manual workaround for building my iOS app via Codemagic. First, here's the error I got on codemagic:

    /Users/builder/Library/Developer/Xcode/DerivedData/Runner-edaimyiflreloheqntgnhkmwcclv/Build/Intermediates.noindex/ArchiveIntermediates/Runner/IntermediateBuildFilesPath/Runner.build/Release-iphoneos/Runner.build/Script-EAEA39BC9122492C49AD1220.sh: line 5: flutterfire: command not found
    Command PhaseScriptExecution failed with a nonzero exit code

This (flutterfire: command not found) makes sense because unlike my local dev environment, Codemagic never ran dart pub global activate flutterfire_cli 0.3.0-dev.20 --overwrite anywhere.

My workround was to manually add dart pub global activate flutterfire_cli 0.3.0-dev.20 --overwrite to the FlutterFire: flutterfire upload-crashlytics-symbols script that flutterfire configure originally created.

Screenshot 2024-03-15 at 22 33 04

Do you need to install firebase tools too? Or upload-crashlytics-symbols doesn't require them?

Do you need to install firebase tools too? Or upload-crashlytics-symbols doesn't require them?

No, flutterfire_cli is enough. I just added pre-build script (in Codemagic):

#!/bin/bash

dart pub global activate flutterfire_cli