IOSアプリにCrashlyticsをインストールしています。サイトリンクからダウンロードし、フレームワークの統合、実行スクリプトの追加などのすべての手順を実行しました。
問題が発生していたので、フレームワークを削除し、最初からやり直して新規インストールを試みることにしました。しかし、Fabricアプリは新しいバージョンに更新され、Crashlyticsをアプリに再インストールしようとすると、フレームワークを再インストールするオプションが提供されません。 「インストール」をクリックしてから、「プロジェクトのビルド」画面に進みます。
プロジェクトの構成を支援するには、nowBを押してビルドしてください。
押す ⌘B、ビルドし、何も起こりません。この問題は、プロジェクトからCrashlyticsおよびFabricフレームワークを削除したためだと思いますが、それらを再び追加する方法がわかりません。 Fabricアプリはそのオプションを提供しません。
コメントから回答への移行。
ファブリックのマイクはこちら。 Macアプリを使用してバックアップする場合は、左上の矢印をクリックし、[+新しいアプリ]をクリックして、すべてを再追加します。
ターゲットのビルド設定に移動します。 「デバッグ情報形式」を見つけます。デバッグとリリースの両方で「DWARF」から「dSYMファイルを使用したDWARF」に設定します
リソースナビゲータを確認すると、次のメッセージが表示される場合があります。
「DEBUG_INFORMATION_FORMATは、すべての構成でdwarf-with-dsymに設定する必要があります。これもタイミングの問題である可能性があります。 。パスでeCreditWebWrapper.app.dSYMを処理できません」
ビルド設定に移動し、「デバッグ情報形式」を検索します。 [デバッグ]が[dSYMファイルを使用したDWARF]に設定されていることを確認します。
DSYMファイルがないと、Fabricは機能しません。
次の方法でこの問題を解決しました。上記のアドバイスに従って、crashlyticsに新しいアプリを追加し始めました。新しい「スクリプトの実行」ビルドフェーズの追加に到達したとき、そのテキストをコピーして、前のテキスト(Crashlyticsで作成)に貼り付けました。 「インストール時にのみスクリプトを実行する」のチェックも外しました。
この後、新しいアプリの追加をキャンセルし、アップグレードに戻りました。この時点で、アプリを構築すると、次のステップに進むことができ、その画面でもう動けなくなります。
私もビルド段階で立ち往生しました。
また、"Run script only when installing"
のチェックを外し、command + Bをもう一度押して、次のステップに進みました。
スクリプトが実行されていない場合は、スクリプトの実行セクションで「インストール時にのみスクリプトを実行」をチェックしている可能性があります。私はそれが役立つことを願っています
TL; DR
スキームをタップ->スキームを編集->ビルド構成を「リリース」に設定
説明:
最も投票された答え 正しいと思われますが、デバッグビルドでcrashlyticsを必要としない状況があります(コードを開発して実験するときにクラッシュを送信したいのは誰ですか?)。この場合、デバッグコンパイルフラグ(この回答の範囲外)をチェックすることでcrashlyticsを無効にし、インストール中に初めてアプリをリリースするときにアプリをビルドしたことをcrashlyticsに通知する必要があります。
Xcode 10.2.1に関しては、Fabric Macアプリによる自動インストールはもう機能しません。新しいアプリは、新しいアプリのステップバイステップガイドから追加できません。
手動インストール手順 に従う必要があります。 2つのフレームワークをダウンロードしてXcodeワークスペースに追加し、ビルドスクリプトの実行フェーズ(および関連するファブリックコード)を追加して、アプリをビルドします。最後(非常に重要)、実際のデバイスでアプリを実行します。
アプリが正常に起動すると、FabricダッシュボードとFabric Macアプリで新しいアプリ情報が利用可能になります(新しいアプリを表示するにはアプリを再起動する必要があります)。
手順は次のとおりです。
Input Files
で追加の設定が必要です。import
および初期化コードを追加しますInfo.plist
にFabric APIキーを追加しますCrashlytics
という行が表示されます。ログが表示されない場合、アクティブなスキームにOS_ACTIVITY_MODE
設定が含まれているかどうかを確認します。現在の設定がdefault
の場合、disabled
に設定します。「Fabricの最小iOSバージョンは6.0」であるため、展開対象バージョンを確認する必要があります
今日も同じ問題がありました。問題は、実行スクリプトがなかったことです:
./Fabric.framework/run <api key>
私のプロジェクトで。これを元に戻すと、すべて完全に機能しました。また、念のためにプロジェクトをクリーンアップし、派生データを削除しました。
ビルドターゲットを「Generic iOS Device」に設定し、[Product]> [Archive]メニューからアーカイブを作成した後にのみ、Fabricアプリにインストールプロセスを続行させることができました。
アプリをビルドするか、エミュレータで実行するだけでは、Fabric Appが処理を開始することはありません。
Run Scriptビルドフェーズでは、呼び出しがあります。
./Crashlytics.framework/run <your_api_key_here>
次のような特定のビルドでのみトリガーする条件を追加した可能性があります。
releaseConfig="Release"
if [ "$releaseConfig" = "${CONFIGURATION}" ]; then
echo "Running Crashlytics"
./Crashlytics.framework/run <your_api_key_here>
fi
⌘Bでトリガーするだけではないように
https://dev.Twitter.com/crashlytics/ios/advanced-setup を参照してください
私の状況では、すべてのステップを正しく実行していましたが、「ビルドフェーズの追加」ステップでスタックしました。それから私はちょうどファブリックを再起動したそしてすべてはうまく働く
また、他にも考えられるアクションがいくつかあります。
1)Fabric、Xcode、お使いのMacを再起動するだけです。 2)また、Cocoapodsを使用する場合は、ビルドフェーズラインを
./Crashlytics.framework/run [yourAPIKey]
に
"${PODS_ROOT}/Fabric/run" [yourAPIKey]
3)Fabricが応答を停止する場合、プロジェクトをビルドした後、しばらくお待ちください。 Macでは約1分かかりました。
おかげで、フォルダを削除することで問題を解決しました:
~ / Library / Caches / com.crashlytics.data
~ / Library / Caches / com.crashlytics.mac
Uがテストターゲットに追加する場合、追加する実行スクリプトが実際のターゲットにあることを相互検証します。実際のターゲットに追加するまで続行しません。
Fabricで新しいプロジェクトを作成するための十分な権限がなかったことがわかりました。 Member
からAdmin
にアップグレードすると、問題は解決しました。
複数のターゲットがある場合、
プロジェクトをビルドする前に、スキーマの選択が正しいことを確認してください。
Xcode 10の場合、ビルドフェーズの入力ファイルフィールドにアプリのビルドされたInfo.plistの場所を追加します。
$(BUILT_PRODUCTS_DIR)/ $(INFOPLIST_PATH)
これで私の問題が解決しました。他の問題を解決できるといいのですが。
ターゲットを複製する場合は、実行スクリプトをビルドフェーズから削除し、再度追加して問題を解決します。
ここでの解決策はどれも役に立たなかった。私にとってのシナリオは、他の誰かが私たちのプロジェクトにFabricフレームワークを追加し、それをリポジトリにコミットしたことです。コンピューターの実行スクリプトがFabricプラグインを起動/トリガーしましたが、エラーは報告しませんでしたが、私のスクリプトは起動/トリガーしませんでした。
解決策は、同じバージョンのFabricをダウンロードするCocoapodsを使用して別のプロジェクトを作成し、プロジェクト/レポの実行スクリプト(およびターゲットの実行スクリプトで参照されるスクリプト)をCocoapodsからダウンロードしたバージョンに置き換えることでした。再構築すると、プラグインが応答します。
2つの実行スクリプトファイルを比較すると、両者は大きく異なりますが、Cocoapodsの実行スクリプトはフラットテキストファイルではなく、判読できませんでした。そのため、スクリプト間で何が違うのかはわかりませんが、同じバージョンのFabricを使用しているときに、どういうわけかスクリプトの異なるバージョンを取得しました。
私が間違ったことは、スクリプトをメインプロジェクトビルドフェーズの代わりにポッドプロジェクトビルドフェーズに追加し、メインプロジェクトのビルドフェーズに追加して問題を解決したことです。