web-dev-qa-db-ja.com

iOSデバイスで試行するとFlutter署名が無効になる

TL; DR

以下の回答を参照してください: https://stackoverflow.com/a/60013390/1121497

IOS 13.3で問題があったようです。13.4をインストールしたばかりで、FlutterがiPhoneで動作するようになりました。 :)


IOSデバイス(iPhone XS)で新しいFlutterアプリ(flutter createによって作成されたサンプルアプリ)を実行しようとしています。 Xcodeはそれをインストールできましたが、次のメッセージでクラッシュします。

dyld: Library not loaded: @rpath/Flutter.framework/Flutter
  Referenced from: /private/var/containers/Bundle/Application/BA807438-FA5B-4021-B37D-FC437B2C80CA/Runner.app/Runner
  Reason: no suitable image found.  Did find:
    /private/var/containers/Bundle/Application/BA807438-FA5B-4021-B37D-FC437B2C80CA/Runner.app/Frameworks/Flutter.framework/Flutter: code signature invalid for '/private/var/containers/Bundle/Application/BA807438-FA5B-4021-B37D-FC437B2C80CA/Runner.app/Frameworks/Flutter.framework/Flutter'

flutter runを試してみると、アプリも開いてクラッシュします。そしてコマンドは永遠に待ち続けます:

$ flutter run
Launching lib/main.Dart on Ferran Maylinch’s iPhone in debug mode...

Automatically signing iOS for device deployment using specified development team in Xcode project: 25D86TPBWG
Running Xcode build...                                                  

 ├─Assembling Flutter resources...                           4.3s
 └─Compiling, linking and signing...                        13.3s
Xcode build done.                                           21.0s
Installing and launching...                                             
(This is taking an unexpectedly long time.)       ⢿

Xcodeでチーム(個人チーム)を構成し、Hello world Swiftプロジェクトをデバイスにインストールできるため、署名証明書(Apple Development証明書)は問題ないようです。

注:Apple Developer Programのアカウントを支払っていません。FlutterアプリをiOSデバイス?

私は macOSの指示 に従い、flutter doctorはiOSに必要なすべてのものを持っていると言います:

[✓] Flutter (Channel stable, v1.12.13+hotfix.5, on Mac OS X 10.15.2 19C57, locale en-ES)

[!] Android toolchain - develop for Android devices (Android SDK version 28.0.3)
    ! Some Android licenses not accepted.  To resolve this, run: flutter doctor --Android-licenses
[✓] Xcode - develop for iOS and macOS (Xcode 11.3)
[!] Android Studio (version 3.5)
    ✗ Flutter plugin not installed; this adds Flutter specific functionality.
    ✗ Dart plugin not installed; this adds Dart specific functionality.
[✓] IntelliJ IDEA Ultimate Edition (version 2019.3.1)
[!] VS Code (version 1.41.1)
    ✗ Flutter extension not installed; install from
      https://marketplace.visualstudio.com/items?itemName=Dart-Code.flutter
[✓] Connected device (1 available)

! Doctor found issues in 3 categories.

ご覧のとおり、私は安定したチャネルを使用してベータチャネルの問題を破棄しましたが、通常はベータチャネルで作業して flutter for web (正常に動作します)を構築します。

IOSシミュレーターでもアプリは正常に動作します。

最近、ios/Podfileファイルがないことに気付きました。私は この投稿 について話しているのを見つけました。私の場合、これが重要かどうかはわかりませんが、手動で追加しようとしました Podfile 。とにかく、同じ署名エラーが発生します。

これにイライラして、とりあえず NativeScript に切り替えました。

11
Ferran Maylinch

編集:これをテストしたところ、iOS 13.4ベータ3で修正されたようです。 ベータプロファイル をインストールするか、iOS 13.4のリリースを待つことができます。

これは、Flutterとは無関係のiOS 13.3.1の回帰です。新しいXcodeプロジェクトを作成し、フレームワークターゲットを追加し、パーソナルチームのプロビジョニングプロファイルを選択することで、FlutterやCocoaPodsのコードなしでクラッシュを再現できました。

GitHubの問題 https://github.com/flutter/flutter/issues/49504#issuecomment-581554697 を参照してください。

バグは、既に署名され、App Storeで配布されている開発者アカウントチームのプロビジョニングプロファイルまたはアプリに影響を与えません。

残念ながら、唯一の回避策は、これが解決されるまで開発デバイスを13.3.1にアップグレードしないことです。

5
Jenn

私の知る限り、これはiOS 13.3.1でのFlutterの互換性の問題です。私の場合、私のアプリはiOS 13.3を搭載したiPhone XRでは完全に正常に動作しますが、iOS 13.3.1を搭載した別のiPhone XRで起動するとクラッシュします。カメラアプリなのでシミュレータでテストすることはできませんが、物理的なAndroidデバイスとAndroidエミュレータの両方で機能します。

4
Rookie
  1. Xcodeライセンス契約に同意しましたか?そうでない場合は、Sudo xcodebuild -licenseを試してください。
  2. ポッドは更新されていますか?そうでない場合は、ターミナルのflutterプロジェクトのiosフォルダに移動し、pod install、次にpod updateと入力します

これが機能しない場合は、flutterプロジェクトのiosフォルダーに移動し、Runner.xcworkspaceをダブルタップして開きます。次のようになります。

enter image description here

Xcodeが開いたら、左上のRunnerをクリックします。

enter image description here

次に、[署名と機能]に移動し、[チーム]ドロップダウンでフィールドを選択します。存在しない場合は、アカウントを作成します。

enter image description here

次に、「バンドルID」に、アプリのバンドル名が表示されます。最後に.appを追加します。たとえば、「com.example.yourapp」の場合、「com.example.yourapp.app」にしてEnterキーを押します。

左上の再生ボタンを押して、選択したデバイスでアプリを実行します。

3

1つずつ手順を実行できますか

flutter channel master
flutter upgrade
flutter clean
flutter build ios
1
Dev

この投稿は答えではありません私はこの問題にも苦労していて、修正が行われていないのでこれを書いているので

ここでOPと他のメンバーに詳細を提供するだけです。 OPが述べたように私はすべてを持っています。

これは私が試したものです:

  1. Podfileは(シミュレーターなどで実行した後でも)作成されないため、Flutter Githubのflutterサンプルアプリから1つ含めようとしました。

    • クリアされたiOSディレクトリ
    • ポッドファイルを追加しました
    • ポッドの更新を実行しました。
    • 修正された警告(Podデバッグとリリース構成をXcodeに提供)
    • ユーザー定義の設定にFLUTTER_ROOTが追加され(不在の場合)、Xcode-backend.shエラーが発生しました(正確には覚えていません、申し訳ありません)
    • 建てられた

したがって、これらの手順では以下が生成されます。 this Simulatorのエラー。物理デバイスにポッドがない場合と同じ署名エラー

  • キーチェーンアクセスからすべての証明書を削除し、Xcode経由で復元しました。

    結果:変更なし

  • Xcode、Pod、およびそれに関連する設定を削除しました。証明書を削除しました。再起動後にすべてを復元(新規インストール)

    結果:繰り返しますが、ポッドでビルドしたり、と同じエラーを提供したりせずにビルドしてください

  • Flutterを開発チャネル(1.14.1)にアップグレードし、flutter create .を使用してプロジェクトを再生成しました

    Reranビルド。ポッドありとなし。まだ同じ

  • また、私は署名をApple Developerからすべてのターゲット(Podを含む)でiOS Developerに変更しました

    これで、Pods-Runnerに署名しようとしたため、いくつかエラーが発生しました(少し希望がありました)。しかし、全体的に新しいものはありません。

  • IOS 13.3.1 Betaでデバイスを実行しているときに、Targetを13.2にアップグレードしました(現在、最大数を利用できますか?)。

    いいえ

  • MacOSビルドを有効にし、Macアプリをビルドしました

    それは意図したとおりに実行され、すべてが大丈夫です。

要約すると:

  • この問題は、ポッド/非ポッドプロジェクトに依存していません。
  • 最新の安定したフラッターと最新の開発者の間でこの問題に関して何も変更されていません(投稿されたとおり)
  • このバグはXcodeの再インストールでは修正されず、キーチェーン証明書とは関係ありません
  • 物理的なiOSデバイス(私の場合はiPhone X)のみをビルドする場合にのみ、問題がポップアップします。シミュレータ(ポッドなし)は問題なく動作します。

ところですべては、Catalina 10.15.3がインストールされ、Xcode 11.3.1がインストールされたMacBook Pro 13で実行されていました。

すべての実行は-vフラグで行われ、ビルド中にログに疑わしいものは見つかりませんでした

再び。この投稿を間違って投稿した場合は申し訳ありませんが、この投稿はかなり長いため、この問題を複製したり、編集を提案したりしたくありませんでした。

1
Emin Guliev

flutter channel stableを介して安定したチャネルに切り替え、flutter upgradeを実行してから、アプリプロジェクトに移動してflutter runを実行してみてください

0
Gioele Pannetto

Xcodeを開き、Product -> Cleanまたは(CMD-Shift-K)をクリックします。それがうまくいかなかった場合は、以下を試してください: https://macpaw.com/how-to/clear-xcode-cache

それでも機能しない場合は、お知らせください。

0
Blasanka

希望する出力が得られる可能性があるこのリンクをチェックしましたか https://github.com/flutter/flutter/issues/16507 。それが機能するかどうかが署名の問題である可能性がある場合は、私に知らせてください。この投稿では、何がうまくいかないかについてのアイデアが得られます。ありがとう

0
sagar acharya

答えを作成する時間があります:

Subaharan Vel answer 、質問: iosディレクトリに作成されていないFlutter PodfileおよびPodsフォルダー および iOSシミュレーター用のビルドを示唆する回答 に基づいてpodfileを作成できます正しくない場所にあります(iOSディレクトリに直接自動的に作成されます。そのため、Podfileがどこかに存在する可能性があります。Podfileを見つけるか、iOSディレクトリ全体を削除して、プロジェクトをクリーンアップして再作成してください。また、これが正しくないことを確認してください。ケース Flutterプラグインを追加する前にiOSポッドを追加するためにPodfileを作成すると、既存のPodfileのプラグインポッドがフックされることはありません

幸運を祈ります。

0
Adam Tucholski

アプリをデバッグモードで実行するだけで、Apple有料アカウントは必要ありません。1)そのプロジェクトのxCodeを開き、デバイスを選択して実行します。

そのプロジェクトのXCodeを開き、FLUTTER_ROOTパスが正しいのでビルド設定を確認します。ない場合はフラッタールートを作成してパスを指定します。

0
balaji ks

理想的な解決策ではありませんが、以下がうまくいきました。

  1. デバイスをiOS 13.4ベータにアップグレードします。
  2. フラッターランを実行する
  3. ビルドは成功するはずです。
  4. 「iOSバージョンに対してXcodeバージョンが古すぎる可能性があります」エラーがスローされます。
  5. アプリケーションがデバイスにインストールされます。 注:プロセスが終了しても、アプリケーションは自動的に起動しません。
  6. デバイスにインストールされているアプリのアイコンをクリックして、アプリを起動します。

ただし、エラーがスローされた後にプロセスが終了するため、デバッグウィンドウには何も表示されません。これは理想的なソリューションではありませんが、次のXcodeの更新を取得するまでの回避策です。

0