При двусторонней связи в JIRA Mobile Connect для ios происходит сбой приложения из-за блокировки sqlite

Я использую последний тег с именем "tip" и использую JIRA по требованию.

Я только что включил мобильное соединение JIRA в свое приложение ios, и оно ведет себя немного странно, то есть идет бесконечный цикл и зависает мое приложение. После включения режима отладки и более глубокого изучения я обнаружил, что источником этой проблемы является то, что таблица базы данных sqlite заблокирована.

Последовательность событий выглядит следующим образом:

  1. Я запустил свое приложение в первый раз
  2. Я успешно создал проблему, используя мобильное соединение JIRA
  3. Я закрыл свое приложение
  4. Я обновил проблему, добавив комментарии в JIRA онлайн через веб-интерфейс (для имитации сценария двусторонней связи)
  5. Я перезапустил свое приложение IOS
  6. JMC получает обновления от остальных API JIRA, используя https://xxxx.atlassian.net/rest/jconnect/1.0/issue/updates?sinceMillis=1408380024967&uuid=9371F70F-12CD-47EC-AB3E-4B0398FF453E&apikey=YYY&project=AAA- смог найти обновления, которые я сделал на шаге 4
  7. Поскольку он находит изменения, JMCIssueStore.m звонки updateWithData метод, который имеет логику в нем, т.е.[self createSchema:YES] который пытается отбросить существующие 2 таблицы и воссоздать схему.
  8. На 1-м столе попытка сброса, т.е.[db executeUpdate:@"DROP table if exists ISSUE"]таблица базы данных оказывается заблокированной, и JMC выполняет бесконечный цикл, повторяя попытку выполнить этот оператор.

Я не могу найти какие-либо ответы на этот вопрос на портале вопросов и ответов Atlassian или в Интернете, и я нахожу это удивительным, так как наверняка у других людей, использующих это, должна быть та же проблема, или я сделал что-то явно неправильное в попытке интегрировать ее.

Кто-нибудь сталкивался с этим или с чем-то похожим? Поскольку это одна из ключевых функций, для которых я использую JIRA Mobile Connect, мне действительно нужно выяснить, стоит ли отлаживать Jira Mobile Connect для этого или просто бросить и делать это с нуля.

1 ответ

Решение

Вся проблема возникла из-за ошибки документации в процессе интеграции JIRA Mobile Connect, в частности, на шаге 9, где они попросили исключить все файлы JMC из ARC, что я и сделал. Это коренная причина проблемы.

После просмотра файлов с образцами Angry Nerds и сравнения их с моими, я понял, что они точно такие же, но образец Angry Nerds работал, а у меня - нет.

Я пересмотрел все свои этапы интеграции, и по достижении шага 9 меня поразило, что когда я проходил через код, не было никаких признаков каких-либо операторов ручного освобождения - что было бы странно, если код действительно не использовал ARC.

Я удалил все свои -fno-objc-arc флаги из всех файлов JMC. И эй престо! проблема сбоя больше не существует.

Другие вопросы по тегам