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 に切り替えました。
編集:これをテストしたところ、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にアップグレードしないことです。
私の知る限り、これはiOS 13.3.1でのFlutterの互換性の問題です。私の場合、私のアプリはiOS 13.3を搭載したiPhone XRでは完全に正常に動作しますが、iOS 13.3.1を搭載した別のiPhone XRで起動するとクラッシュします。カメラアプリなのでシミュレータでテストすることはできませんが、物理的なAndroidデバイスとAndroidエミュレータの両方で機能します。
Sudo xcodebuild -license
を試してください。pod install
、次にpod update
と入力しますこれが機能しない場合は、flutterプロジェクトのiosフォルダーに移動し、Runner.xcworkspaceをダブルタップして開きます。次のようになります。
Xcodeが開いたら、左上のRunnerをクリックします。
次に、[署名と機能]に移動し、[チーム]ドロップダウンでフィールドを選択します。存在しない場合は、アカウントを作成します。
次に、「バンドルID」に、アプリのバンドル名が表示されます。最後に.appを追加します。たとえば、「com.example.yourapp」の場合、「com.example.yourapp.app」にしてEnterキーを押します。
左上の再生ボタンを押して、選択したデバイスでアプリを実行します。
1つずつ手順を実行できますか
flutter channel master
flutter upgrade
flutter clean
flutter build ios
この投稿は答えではありません私はこの問題にも苦労していて、修正が行われていないのでこれを書いているので
ここでOPと他のメンバーに詳細を提供するだけです。 OPが述べたように私はすべてを持っています。
これは私が試したものです:
Podfileは(シミュレーターなどで実行した後でも)作成されないため、Flutter Githubのflutterサンプルアプリから1つ含めようとしました。
したがって、これらの手順では以下が生成されます。 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アプリをビルドしました
それは意図したとおりに実行され、すべてが大丈夫です。
要約すると:
ところですべては、Catalina 10.15.3がインストールされ、Xcode 11.3.1がインストールされたMacBook Pro 13で実行されていました。
すべての実行は-vフラグで行われ、ビルド中にログに疑わしいものは見つかりませんでした
再び。この投稿を間違って投稿した場合は申し訳ありませんが、この投稿はかなり長いため、この問題を複製したり、編集を提案したりしたくありませんでした。
flutter channel stable
を介して安定したチャネルに切り替え、flutter upgrade
を実行してから、アプリプロジェクトに移動してflutter run
を実行してみてください
Xcodeを開き、Product -> Clean
または(CMD
-Shift
-K
)をクリックします。それがうまくいかなかった場合は、以下を試してください: https://macpaw.com/how-to/clear-xcode-cache
それでも機能しない場合は、お知らせください。
希望する出力が得られる可能性があるこのリンクをチェックしましたか https://github.com/flutter/flutter/issues/16507 。それが機能するかどうかが署名の問題である可能性がある場合は、私に知らせてください。この投稿では、何がうまくいかないかについてのアイデアが得られます。ありがとう
答えを作成する時間があります:
Subaharan Vel answer 、質問: iosディレクトリに作成されていないFlutter PodfileおよびPodsフォルダー および iOSシミュレーター用のビルドを示唆する回答 に基づいてpodfileを作成できます正しくない場所にあります(iOSディレクトリに直接自動的に作成されます。そのため、Podfileがどこかに存在する可能性があります。Podfileを見つけるか、iOSディレクトリ全体を削除して、プロジェクトをクリーンアップして再作成してください。また、これが正しくないことを確認してください。ケース Flutterプラグインを追加する前にiOSポッドを追加するためにPodfileを作成すると、既存のPodfileのプラグインポッドがフックされることはありません 。
幸運を祈ります。
アプリをデバッグモードで実行するだけで、Apple有料アカウントは必要ありません。1)そのプロジェクトのxCodeを開き、デバイスを選択して実行します。
そのプロジェクトのXCodeを開き、FLUTTER_ROOTパスが正しいのでビルド設定を確認します。ない場合はフラッタールートを作成してパスを指定します。
理想的な解決策ではありませんが、以下がうまくいきました。
ただし、エラーがスローされた後にプロセスが終了するため、デバッグウィンドウには何も表示されません。これは理想的なソリューションではありませんが、次のXcodeの更新を取得するまでの回避策です。