0

我正在使用名为“tip”的最新标签,并且我正在按需使用 JIRA。

我刚刚将 JIRA 移动连接合并到我的 ios 应用程序中,它的行为有点奇怪,即它进入无限循环并挂起我的应用程序。开启调试模式,再深入一点,发现这个问题的根源是sqlite数据库表被锁定了。

事件的顺序如下:-

  1. 我第一次启动我的应用程序
  2. 我使用 JIRA 移动连接成功创建了一个问题
  3. 我关闭了我的应用
  4. 我通过 Web 界面在 JIRA 中在线添加评论来更新问题(以模拟 2 路通信场景)
  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. 由于它发现更改,JMCIssueStore.m调用updateWithData其中包含逻辑的方法,即[self createSchema:YES]尝试删除现有的 2 个表并重新创建模式。
  8. 在第一次尝试删除[db executeUpdate:@"DROP table if exists ISSUE"]表时,即发现数据库表被锁定,JMC 进入无限循环重试执行该语句。

我无法在 Atlassian Q&A 门户网站或网络上找到任何答案,我感到很惊讶,因为使用它的其他人肯定会遇到同样的问题,或者我在尝试整合它时做了一些明显错误的事情。

有没有人遇到过这个或类似的事情?由于这是我使用 JIRA Mobile Connect 的关键功能之一,我真的需要弄清楚是否值得为此调试 Jira Mobile Connect,或者只是放弃并从头开始。

4

1 回答 1

0

整个问题源于 JIRA Mobile Connect 集成过程中的文档错误,特别是此处的第 9 步,他们要求从使用 ARC 中排除所有 JMC 文件——我已经这样做了。这是问题的根本原因。

在浏览了 Angry Nerds 样本文件并将其与我自己的文件进行比较后,我意识到它们完全相同,但 Angry Nerds 样本仍然有效,而我的则没有。

我回顾了我所有的集成步骤,并在到达第 9 步时,令我震惊的是,当我浏览代码时,没有任何手动发布声明的迹象——如果代码确实没有使用 ARC,这很奇怪。

-fno-objc-arc 从所有 JMC 文件中删除了我的所有标志。嘿,快!崩溃的问题不再存在。

于 2014-08-21T06:23:41.103 回答