2

TestFlight を MonoTouch アプリ (Monotouch 5、IOS5) で動作させるのに苦労していますが、TestFlight の MonoTouch ドキュメントが見つかりません。

これが私がこれまでに試したことです。

  1. https://github.com/mono/monotouch-bindings/tree/master/TestFlightからダウンロードした TestFlight バインディング- これを参照として追加した後、TestFlight メソッドは実際にはまったく公開されていないように見えたので、別のセットを探しましたバインディングの。

  2. ayoung の TestFlight バインディングをhttps://github.com/ayoung/monotouch-testflightからダウンロードしました。Make で monotouch-testflight.dll をビルドし、それをプロジェクトにコピーして参照に追加しました。今回は、TestFlight メソッドがすべて表示されていました。

  3. BuildAction を Nothing に設定して、MonoTouch プロジェクトの Lib フォルダーに libTestFlight.a を追加しました。(そこには RedLaser もあります)。

  4. ayoung によると、LLVM コンパイラ (ARMv7 を使用) を有効にしました。ayoung はそれが必要であると述べています。[プロジェクト オプション] -> [iPhone ビルド] で、追加の mtouch 引数は次のとおりです。

    -cxx -nosymbolstrip -nostrip -gcc_flags "-lgcc_eh -framework SystemConfiguration -framework CFNetwork -framework CoreVideo -framework CoreMedia -framework AVFoundation -framework OpenGLES -framework Security -L${ProjectDir}/Lib -ltestflight -RedLaserSDK -ObjC"

注: TestFlight がプロジェクトに追加される前は、アプリは RedLaser で正常に動作していました。

ここで -lgcc_eh は ayoung のとおりです。それが何であるか、または何のためにあるのかを見つけることができませんでした。おそらく、gcc_eh.dll (?) を持っている必要がありますが、私は知りませんし、そのようなものをどこで見つけることができるかわかりません。

  1. Main.cs に追加しました

    TestFlightSdk の使用;

そして FinishedLaunching に追加しました

TestFlight.TakeOff( "(downloaded team token is here)" );
  1. エラーなしでコンパイルおよびインストールされました (Release|iPhone)。

  2. デバイスでアプリを実行すると、発見できる診断なしですぐに終了します。

  3. Debug|iPhone にコンパイルされた場合も、アプリはすぐに終了します。ただし、この場合、ayoung の制限にもかかわらず LLVM をオフにすると、アプリケーション出力に次のように表示されます。

    TestFlight: 開始されたセッション TestFlight: クラッシュ ハンドラーがインストールされています スレッドが開始されました: スレッドが開始されました: TestFlight: チーム トークンが認識されました TestFlight: セッションの終了 TestFlight: TestFlight との通信は現在無効になっています。

これは、アプリの .ipa ファイルを TestFlight にまだアップロードしていないためでしょうか?? (ただし、この場合、アプリは起動します。)

  1. .ipa ファイルを生成する方法を見つけようとしています。TestFlight のドキュメントには、XCode からこれを行う方法が示されていますが、私のアプリはコードのみで .xib がないため、そのオプションはアウトのように見えますか? TestFlight のドキュメントには、.app ファイルから .ipa を生成する方法も示されています。ここで私の問題は、デバイス ビルド用の .app ファイルをどのように手に入れることができるかということです。

これらの問題について何か助けていただければ幸いです。

4

4 に答える 4

5

-lgcc_ehは、例外処理 GCC ライブラリを含めるために必要です。これは、C++ ライブラリとリンクする場合に必要になることがよくあります。

また、必要と思われない多くの-frameworkオプションがあります (MonoTouch は既にそれらを追加しています) -しかし、それは問題の原因にはなりません。コンパイル時にmtouchが使用/提供するものに興味がある場合は、プロジェクト オプションの「追加のタッチ引数」に「-v -v -v」を追加できます (ビルド出力を確認します)。

主な問題については、TestFlight ハンドラーが (現在) MonoTouch (5.0) と互換性がないという事実に関連していると思います。MonoTouch の例外処理では、独自のクラッシュ ハンドラ (例: for NullReferenceException) が既に提供されており、他のハンドラの追加は注意して行う必要があります (どのように、いつ行うかが非常に重要です)。これが、monotouch-bindingsの現在のバインディングに testflight で利用可能なすべての機能が含まれていない理由と考えられます。

bugzilla.xamarin.com でバグ レポートを開くことをお勧めします。そうすれば、進行状況に関する最新情報が電子メールで届きます (また、機能がいつ利用可能になるかを正確に知ることができます)。

ps 問題をいくつかの (スタック オーバーフロー) 質問に分割しようとします。すべての質問に対するすべての回答を誰もが知っているわけではないため、その方法で回答を受け取る可能性が高くなります :-)

于 2011-10-23T15:27:03.950 に答える
2

私は完全に間違った道を進んでいました。最後に、TestFlightの組み込みサポートを説明するMonoTouchドキュメントを見つけました。

http://docs.xamarin.com/ios/tutorials/TestFlight_Support

これを試してみます、それは問題を解決するはずです。

于 2011-10-23T22:46:07.647 に答える
2

testflightapp を介して配布することは、アプリで testflightsdk を使用することとは異なります。

1 つ目は、メニューの [testflight にアップロード] ボタンをクリックすることです。

2 つ目は、実際の sdk を含めることです。ここ数日、彼ら (xamarin) は新しい testflight sdk バインディングをリリースしました。mtouch パラメータを変更する必要はありません。したがって、それを含める方がはるかに簡単なはずです。

個人的には、testflight sdk が本当に気に入っています... アプリのテストをより適切に (させて) くれます。

于 2011-11-13T12:51:56.387 に答える
0

このXamarin バグ レポートの音からすると、TestFlight SDK ネイティブ ライブラリをMonoTouch バインディングで動作させたり、自分でリンクしたりしても、TestFlight が適切に処理しないという問題が残るようです。 NullReference 例外に遭遇すると、単にアプリをクラッシュさせます。これにより、a) MonoTouch がそれに対処するために再ツール化されるか、b) TestFlight が管理された Mono ライブラリをリリースするまで、TestFlight SDK の要点全体が無意味になります。

誤解しないでほしいのですが、MonoTouch で TestFlight SDK を使用できるようになりたいと本当に思っています。私は一日中それを機能させようとして壁に頭をぶつけてきました。TestFlight.TakeOff("MyKey") メソッドを呼び出すと、何かが失敗します。コントロールはメソッドから戻りますが、その後すぐにクラッシュします...呼び出されてから約1秒後。変。

他の誰かがそれを機能させた場合、私はあなたの経験について聞きたいです. ありがとう。

于 2012-04-24T21:20:47.477 に答える