web-dev-qa-db-ja.com

iOSのCrashlyticsは、Fabricアプリの「Build Your Project」を超えて進みません。

IOSアプリにCrashlyticsをインストールしています。サイトリンクからダウンロードし、フレームワークの統合、実行スクリプトの追加などのすべての手順を実行しました。

問題が発生していたので、フレームワークを削除し、最初からやり直して新規インストールを試みることにしました。しかし、Fabricアプリは新しいバージョンに更新され、Crashlyticsをアプリに再インストールしようとすると、フレームワークを再インストールするオプションが提供されません。 「インストール」をクリックしてから、「プロジェクトのビルド」画面に進みます。

プロジェクトの構成を支援するには、nowBを押してビルドしてください。

押す ⌘B、ビルドし、何も起こりません。この問題は、プロジェクトからCrashlyticsおよびFabricフレームワークを削除したためだと思いますが、それらを再び追加する方法がわかりません。 Fabricアプリはそのオプションを提供しません。

74
wanderingme

コメントから回答への移行。

ファブリックのマイクはこちら。 Macアプリを使用してバックアップする場合は、左上の矢印をクリックし、[+新しいアプリ]をクリックして、すべてを再追加します。

70
Mike Bonnell

ターゲットのビルド設定に移動します。 「デバッグ情報形式」を見つけます。デバッグとリリースの両方で「DWARF」から「dSYMファイルを使用したDWARF」に設定します

160
Stigblue

リソースナビゲータを確認すると、次のメッセージが表示される場合があります。

「DEBUG_INFORMATION_FORMATは、すべての構成でdwarf-with-dsymに設定する必要があります。これもタイミングの問題である可能性があります。 。パスでeCreditWebWrapper.app.dSYMを処理できません」

ビルド設定に移動し、「デバッグ情報形式」を検索します。 [デバッグ]が[dSYMファイルを使用したDWARF]に設定されていることを確認します。

DSYMファイルがないと、Fabricは機能しません。

25
Andrew Kozlik

次の方法でこの問題を解決しました。上記のアドバイスに従って、crashlyticsに新しいアプリを追加し始めました。新しい「スクリプトの実行」ビルドフェーズの追加に到達したとき、そのテキストをコピーして、前のテキスト(Crashlyticsで作成)に貼り付けました。 「インストール時にのみスクリプトを実行する」のチェックも外しました。

この後、新しいアプリの追加をキャンセルし、アップグレードに戻りました。この時点で、アプリを構築すると、次のステップに進むことができ、その画面でもう動けなくなります。

5
Oleg Danu

私もビルド段階で立ち往生しました。

また、"Run script only when installing"のチェックを外し、command + Bをもう一度押して、次のステップに進みました。

5
Ricardo

スクリプトが実行されていない場合は、スクリプトの実行セクションで「インストール時にのみスクリプトを実行」をチェックしている可能性があります。私はそれが役立つことを願っています

4
Picsou

TL; DR

スキームをタップ->スキームを編集->ビルド構成を「リリース」に設定

説明:

最も投票された答え 正しいと思われますが、デバッグビルドでcrashlyticsを必要としない状況があります(コードを開発して実験するときにクラッシュを送信したいのは誰ですか?)。この場合、デバッグコンパイルフラグ(この回答の範囲外)をチェックすることでcrashlyticsを無効にし、インストール中に初めてアプリをリリースするときにアプリをビルドしたことをcrashlyticsに通知する必要があります。

3
Fyodor Volchyok

Xcode 10.2.1に関しては、Fabric Macアプリによる自動インストールはもう機能しません。新しいアプリは、新しいアプリのステップバイステップガイドから追加できません

手動インストール手順 に従う必要があります。 2つのフレームワークをダウンロードしてXcodeワークスペースに追加し、ビルドスクリプトの実行フェーズ(および関連するファブリックコード)を追加して、アプリをビルドします。最後(非常に重要)、実際のデバイスでアプリを実行します

アプリが正常に起動すると、FabricダッシュボードとFabric Macアプリで新しいアプリ情報が利用可能になります(新しいアプリを表示するにはアプリを再起動する必要があります)。


手順は次のとおりです。

  1. 2つのフレームワークをダウンロードする
  2. アプリのデリゲートがあるプロジェクトにドラッグします(「必要に応じてアイテムをコピーする」にチェックを入れてください)
  3. Xcodeでプロジェクト/ワークスペースをコンパイルします
  4. 指示に従って「スクリプトフェーズの実行」を追加します here ; Xcode 10以降では、Input Filesで追加の設定が必要です。
  5. App Delegateに必要なimportおよび初期化コードを追加します
  6. Info.plistにFabric APIキーを追加します
  7. もう一度コンパイルする
  8. 実際のデバイスでアプリを実行します。 XcodeログにCrashlyticsという行が表示されます。ログが表示されない場合、アクティブなスキームにOS_ACTIVITY_MODE設定が含まれているかどうかを確認します。現在の設定がdefaultの場合、disabledに設定します。
  9. Crashlytics行が表示された場合、手動インストールが機能していることを意味します。 Fabricオンラインダッシュボードにアプリが表示されます。
3
Raptor

「Fabricの最小iOSバージョンは6.0」であるため、展開対象バージョンを確認する必要があります

2
Taruna

今日も同じ問題がありました。問題は、実行スクリプトがなかったことです:

./Fabric.framework/run <api key>

私のプロジェクトで。これを元に戻すと、すべて完全に機能しました。また、念のためにプロジェクトをクリーンアップし、派生データを削除しました。

2
Swinny89

ビルドターゲットを「Generic iOS Device」に設定し、[Product]> [Archive]メニューからアーカイブを作成した後にのみ、Fabricアプリにインストールプロセスを続行させることができました。

アプリをビルドするか、エミュレータで実行するだけでは、Fabric Appが処理を開始することはありません。

2
ZardozSpeaks

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
Eddie Gasparian

Xcode 10を使用する場合。

Project Navigator->プロジェクト->ターゲット->ビルドフェーズ->ファブリックの実行スクリプト->入力ファイル-> "+"(入力ファイルの追加)->フィールドをクリアしてこの行を過ぎます。

$(BUILT_PRODUCTS_DIR)/$(INFOPLIST_PATH)

必ずremoveを削除してください:$(SRCROOT)/

enter image description here

1
maxwell

私の状況では、すべてのステップを正しく実行していましたが、「ビルドフェーズの追加」ステップでスタックしました。それから私はちょうどファブリックを再起動したそしてすべてはうまく働く

また、他にも考えられるアクションがいくつかあります。

1)Fabric、Xcode、お使いのMacを再起動するだけです。 2)また、Cocoapodsを使用する場合は、ビルドフェーズラインを

./Crashlytics.framework/run [yourAPIKey] 

"${PODS_ROOT}/Fabric/run" [yourAPIKey]

3)Fabricが応答を停止する場合、プロジェクトをビルドした後、しばらくお待ちください。 Macでは約1分かかりました。

1

おかげで、フォルダを削除することで問題を解決しました:

~ / Library / Caches / com.crashlytics.data
~ / Library / Caches / com.crashlytics.mac
0
Zahur

Uがテストターゲットに追加する場合、追加する実行スクリプトが実際のターゲットにあることを相互検証します。実際のターゲットに追加するまで続行しません。

0
user6229371

Fabricで新しいプロジェクトを作成するための十分な権限がなかったことがわかりました。 MemberからAdminにアップグレードすると、問題は解決しました。

0
Stacy Smith

複数のターゲットがある場合、

プロジェクトをビルドする前に、スキーマの選択が正しいことを確認してください。

0
lee cc

Xcode 10の場合、ビルドフェーズの入力ファイルフィールドにアプリのビルドされたInfo.plistの場所を追加します。

$(BUILT_PRODUCTS_DIR)/ $(INFOPLIST_PATH)

これで私の問題が解決しました。他の問題を解決できるといいのですが。

0
S. Bharti

ターゲットを複製する場合は、実行スクリプトをビルドフェーズから削除し、再度追加して問題を解決します。

0
sahiljain

ここでの解決策はどれも役に立たなかった。私にとってのシナリオは、他の誰かが私たちのプロジェクトにFabricフレームワークを追加し、それをリポジトリにコミットしたことです。コンピューターの実行スクリプトがFabricプラグインを起動/トリガーしましたが、エラーは報告しませんでしたが、私のスクリプトは起動/トリガーしませんでした。

解決策は、同じバージョンのFabricをダウンロードするCocoapodsを使用して別のプロジェクトを作成し、プロジェクト/レポの実行スクリプト(およびターゲットの実行スクリプトで参照されるスクリプト)をCocoapodsからダウンロードしたバージョンに置き換えることでした。再構築すると、プラグインが応答します。

2つの実行スクリプトファイルを比較すると、両者は大きく異なりますが、Cocoapodsの実行スクリプトはフラットテキストファイルではなく、判読できませんでした。そのため、スクリプト間で何が違うのかはわかりませんが、同じバージョンのFabricを使用しているときに、どういうわけかスクリプトの異なるバージョンを取得しました。

0
Matt W.

私が間違ったことは、スクリプトをメインプロジェクトビルドフェーズの代わりにポッドプロジェクトビルドフェーズに追加し、メインプロジェクトのビルドフェーズに追加して問題を解決したことです。

0
Menno