web-dev-qa-db-ja.com

Xcode 10ベータ版のGoogle Fabric

Xcode 10 Beta 6をインストールし、すべてを更新していますが、このプロセスでFabricの小さな問題に遭遇しました。 FabricのウェブサイトにはXcode 10の特別な指示があります:

Xcode 10 Instructions

Xcode 10を使用している場合、Fabricキーを持つRun ScriptのBuild Phasesに移動し、Input Fieldsセクションの下に+記号があります

+をクリックすると、自動的に$(SRCROOT)/newInputFileが生成されます。newInputFileは自動的に強調表示されます。

Fabricの指示を理解していません。 $(BUILT_PRODUCTS_DIR)/$(INFOPLIST_PATH)の後に$(SRCROOT)/をコピーしますか?INFOPLIST_PATHをinfo.plistへのファイルパスに置き換えますか?

これらすべてのオプションを試しましたが、Xcode 10でFabricがクラッシュします。AppDelegateのdidFinishLaunchingWithOptionsFabric.with([Crashlytics.self])をコメントアウトしたため、Fabricであることがわかります。

18
RubberDucky4444

私は、Mahdi RBが推奨したとおりのことを行いました。 公式マニュアルガイド の手順に従っても機能しませんでした。

XCodeを使用してビルドすると、約2kのタスクが処理されます。ファブリックビルドは通常、マシンを起動し、xcodeを開いてアーカイブを実行すると機能します。その後、ほとんどの場合、ビルドが中断し始めます。 03/OCT/18にダウンロードした最新のファブリックとcrashlyticsを使用しています。私の他のプロジェクトで機能するのは本当に奇妙で、失敗したのはこれだけです。これは、XCode 10-バージョン10.0(10A255)で始まりました。以前のXCode 9で動作していました。

これは私が話していることの証拠です。

XCode pic

私の回避策は、fabricコマンドを呼び出す前にこのコマンドを追加することでした。例えば

sleep 15
"${PROJECT_DIR}/Fabric.framework/run" aaaaa aaaa

Macコンソールアプリでこのエラーが大量に発生していることに気づきましたが、関連があるかどうかはわかりません。

IBAgent-iOS - assertion failed - libxpc.dylib - and some numbers here.

XCodeのエラー

2018-10-03 13:53:58.698 uploadDSYM[46168:550157] Fabric.framework/run 1.7.2 (210)
2018-10-03 13:53:58.704 uploadDSYM[46168:550157] Using API Key: "123"
2018-10-03 13:53:58.704 uploadDSYM[46168:550157] Launched uploader in validation mode
error: Fabric: Info.plist Error

Unable to process Info.plist at path /Users/someuser/Library/Developer/Xcode/DerivedData/SampleApp-amwweapikvrbgafmmnyeyorkiufq/Build/Intermediates.noindex/ArchiveIntermediates/SampleApp/BuildProductsPath/Release-iphoneos/SampleApp.app/Info.plist
This could be a timing issue, make sure the Fabric run script build phase is the last build phase and no other scripts have moved Inspector.app from the location Xcode generated it. You can also add '$(BUILT_PRODUCTS_DIR)/$(INFOPLIST_PATH)' as an "Input Files" dependency for your Fabric run script build phase.

そのplistリンクを開こうとしましたが、それはショートカットを指し、そのショートカットは実際のファイルを指しています。なぜ失敗するのかはわかりません。私の推測では、スクリプトの実行時にファイルが存在しなかったことと関係があります。遅延は問題を修正します。これが役立つことを願っています。

  • プライバシー保護のため、元のアプリ名を削除しました。
5
Danilo Gomes

Xcode 10のみ、ファブリックの最終セットアップで問題に直面するユーザーはプロジェクトです。

Xcode 10から、Build PhaseのInput Filesフィールドでもう1つセットアップを行う必要があります。

これをコピーするだけです$(BUILT_PRODUCTS_DIR)/ $(INFOPLIST_PATH)そしてBuild PhaseのInput Filesフィールドに貼り付けます下の画像のように、Run Scriptの下に表示されます。

enter image description here

このリンクの詳細を参照してください: https://fabric.io/kits/ios/crashlytics/install

16
Hardik Thakkar

Info.plistが次のようにルートディレクトリにある場合、同じ問題が発生しました。

Root directory tree

yoは次のように$(BUILT_PRODUCTS_DIR)/$(INFOPLIST_PATH)を変更する必要があります。

Path image

10
Mahdi RB

ファブリックinfo.plistエラーは、Xcodeワークスペースの設定を変更することで解決できます->ビルド設定->レガシービルドシステム

2
user10375102
  1. ビルドフェーズの最後にスクリプト実行フェーズを追加します。
  2. スクリプトフェーズのシェルを/bin/bashに設定します。
  3. 入力ファイルを次のように設定します。

    (1) $(PROJECT_DIR)/$(INFOPLIST_FILE).
    (2) $(PROJECT_DIR)/Scripts/set_bundle_build_number.sh 
        Change path to path of  script so changes you make to the script 
        cause a re-run.
    (3) $(TARGET_BUILD_DIR)/$(INFOPLIST_PATH) 
         Fixes XCode 10 issues of duplicate output phases.
    

詳細については画像を確認してください

1
shraddha

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

ソース

settings image

1
Savas Adar

「スクリプトの実行」をビルドフェーズの下部に移動することで、この問題を解決しました。もちろん、「dSYMファイルを使用したDWARF」と$(BUILT_PRODUCTS_DIR)/$(INFOPLIST_PATH)に変更しました。

1

私にとって、ビルドシステムを「レガシービルドシステム」に変更すると、アーカイブエラーが修正されました。ビルドシステムを変更するには、[ファイル]-> [ワークスペース設定]に移動し、ビルドシステムをデフォルトの[新しいビルドシステム]から[レガシービルドシステム]に変更します。

0
EsmaGo

上記のどれも私にはうまくいきません。 Cocoapodsを使用している場合は、次の手順を実行します。

  1. $(BUILT_PRODUCTS_DIR)/$(INFOPLIST_PATH)を[スクリプトの実行]セクションの入力ファイルに追加します。

  2. [スクリプトの実行]ボックスで./Fabric.framework/run"${PODS_ROOT}/Fabric/run"に置き換えます。

  3. ビルド設定に移動して、Debug Informationを検索し、DWARF with dSYM Fileに変更します。

少なくとも私にはうまくいきました。

0
Didats Triadi

私にとっての解決策は、丸括弧をこのような中括弧で置き換えることでした

${BUILT_PRODUCTS_DIR}/${INFOPLIST_PATH}

スクリプトフェーズでecho $(BUILT_PRODUCTS_DIR)を呼び出すと、パスが実際に存在するかどうかを確認できます。丸括弧を使用すると、Xcodeビルドコンソール「BUILT_PRODUCTS_DIR:command not found」で次の情報が得られました。丸括弧を中括弧に置き換えると、実際のパスが出力されるため、スクリプトが最終的に機能しました。

0
PatrickDotStar