web-dev-qa-db-ja.com

iOSAdHocビルドでFirebaseをデバッグする方法

Firebaseをデバッグする唯一の方法は、起動時に渡される引数に-FIRAnalyticsDebugEnabledを渡すことです。

IOSデバイスが接続された状態でデバッグモードで動作していますが、QAがXcodeなしでテストできるようにAdHocビルドをデプロイしたいと思います。

しかし、Xcodeがビルドをアーカイブするとき、起動時に引数が渡されないようです。

解決策はありますか?ありがとう。

13
Antoine Gamond

これに対するハッキングソリューションを見つけました。アプリケーションで試してみてください:didFinishLaunchingWithOptions:またはAppDelegateのinitをオーバーライドします:

Objective-C:

NSMutableArray *newArguments = [NSMutableArray arrayWithArray:[[NSProcessInfo processInfo] arguments]];
[newArguments addObject:@"-FIRDebugEnabled"];
[[NSProcessInfo processInfo] setValue:[newArguments copy] forKey:@"arguments"];

迅速:

var newArguments = ProcessInfo.processInfo.arguments
newArguments.append("-FIRDebugEnabled")
ProcessInfo.processInfo.setValue(newArguments, forKey: "arguments")
28
Dre Sid

最も上向きの答えへのほんのいくつかの追加:私はこのようなことをします

#if DEBUG
     var newArguments = ProcessInfo.processInfo.arguments
        newArguments.append("-FIRDebugEnabled")
        ProcessInfo.processInfo.setValue(newArguments, forKey: "arguments")
#endif

デバッグのために保持します。これには、ビルド設定の「その他Swiftフラグ」」で-DDEBUGを設定する必要があります(もちろん、これをデバッグ値に設定する必要があります。

そして、Firebaseを初期化する前にコードスニペットを配置することを忘れないでください:-)

1
Nicolai Harbo

現在、AdHocビルドまたはリリースビルドでデバッグモードをオンにする方法はなく、意図的なものです。 DebugViewは開発専用です。アプリをビルドすると、実際のトラフィックのみを確認できます。つまり、実行後2〜4時間です。

0
adbitx

上記の提案に加えて:

  • ビルドモード(デバッグ、アドホック、リリースなど)ごとにxcconfigファイルを追加します: https://www.appcoda.com/xcconfig -ガイド
  • すべての構成ファイルを追加します:_FIREBASE_DEBUG_ENABLED = YES_またはNO(つまり、YESを除くすべての場所でRelease
  • Info.plistファイルに、キー:FirebaseDebugEnabled、文字列値:$(FIREBASE_DEBUG_ENABLED)のエントリを追加します。
  • _AppDelegate.m_のdidFinishLaunchingWithOptionsメソッドに、次のステートメントを追加します。

コード:

_NSString *plistPath = [[NSBundle mainBundle] pathForResource:@"Info" ofType:@"plist"];   
NSDictionary *plistConfig = [[NSDictionary alloc] initWithContentsOfFile:plistPath];

// Firebase   
BOOL isFirebaseDebugEnabled = [[plistConfig valueForKey:@"FirebaseDebugEnabled"] boolValue];

if (isFirebaseDebugEnabled) {
    NSLog(@"Firebase debug enabled.");
    NSMutableArray *newArguments = [NSMutableArray arrayWithArray:[[NSProcessInfo processInfo] arguments]];
    [newArguments addObject:@"-FIRAnalyticsDebugEnabled"];
    [newArguments addObject:@"-FIRDebugEnabled"];
    [[NSProcessInfo processInfo] setValue:[newArguments copy] forKey:@"arguments"];   
}

[FIRApp configure];
_

ターゲットスキームのRunセクションで、使用するビルド構成(デフォルト:Debug)を選択してアプリをビルドできるため、AdhocモードとReleaseモードでアプリを実行してみてください。

0
VincentCATILLON