0

「tip」という名前の最新のタグを使用しており、JIRA オンデマンドを使用しています。

JIRA モバイル コネクトを iOS アプリに組み込みましたが、動作がおかしくなりました。つまり、無限ループに入り、アプリがハングします。デバッグ モードをオンにして、もう少し詳しく調べたところ、この問題の原因は sqlite データベース テーブルがロックされていることにあることがわかりました。

イベントのシーケンスは次のようになります。

  1. 初めてアプリを起動しました
  2. JIRA モバイル コネクトを使用して問題を作成しました
  3. アプリをシャットダウンしました
  4. Web インターフェイス経由で JIRA online にコメントを追加して問題を更新しました (双方向通信シナリオをシミュレートするため)。
  5. iOSアプリを再起動しました
  6. JMC は、 https: //xxxx.atlassian.net/rest/jconnect/1.0/issue/updates?sinceMillis=1408380024967&uuid=9371F70F-12CD-47EC-AB3E-4B0398FF453E&apikey=YYY & project= AAA- を使用して JIRA REST API から更新を取得します。ステップ 4 で行った更新を見つけることができる
  7. 変更が見つかったので、既存の 2 つのテーブルを削除してスキーマを再作成しようとするロジックを持つメソッドをJMCIssueStore.m呼び出します。updateWithData[self createSchema:YES]
  8. 1 回目のテーブル ドロップ試行[db executeUpdate:@"DROP table if exists ISSUE"]で、データベース テーブルがロックされていることが検出され、JMC はこのステートメントの実行を再試行する無限ループに入ります。

Atlassian Q&A ポータルまたは Web でこれに対する回答を見つけることができません。これを使用している他の人が同じ問題を抱えているはずであるか、統合しようとして明らかに間違ったことをしたので、驚くべきことだと思います。

誰かがこれまたは似たようなことに遭遇しましたか? これは、私が JIRA Mobile Connect を使用している重要な機能の 1 つであるため、JIRA モバイル コネクトをデバッグする価値があるのか​​、それともあきらめて最初からやり直す価値があるのか​​を本当に判断する必要があります。

4

1 に答える 1

0

全体の問題は、JIRA Mobile Connect の統合プロセス、具体的には手順 9 ここで、すべての JMC ファイルを ARC の使用から除外するように求めた場合のドキュメント エラーに起因していました。これが問題の根本原因です。

Angry Nerds のサンプル ファイルを調べて自分のファイルと比較したところ、Angry Nerds のサンプルは機能し、私のサンプルは機能しなかったにもかかわらず、それらはまったく同じであることに気付きました。

すべての統合手順をたどり、手順 9 に到達したときに、コードを調べていたときに、手動リリース ステートメントの兆候がないことに気づきました。これは、コードが実際に ARC を使用していない場合は奇妙です。

-fno-objc-arc すべての JMC ファイルからすべてのフラグを削除しました。そしてちょっとプレスト!クラッシュの問題はもうありません。

于 2014-08-21T06:23:41.103 に答える