簡體   English   中英

由於sqlite鎖定,JIRA Mobile Connect for ios中的雙向通信使應用程序崩潰

[英]Two way communication in JIRA Mobile Connect for ios crashes the app due to sqlite locking

我正在使用名為“ tip”的最新標簽,並且正在按需使用JIRA。

我剛剛將JIRA移動連接並入了我的ios應用程序,它的運行方式有些奇怪,即它陷入無限循環並掛起了我的應用程序。 打開調試模式並進行更深入的研究后,我發現此問題的根源是sqlite數據庫表已鎖定。

事件的順序如下:-

  1. 我是第一次啟動我的應用程序
  2. 我使用JIRA移動連接成功創建了一個問題
  3. 我關閉了我的應用程序
  4. 我通過Web界面在線添加JIRA中的注釋來更新此問題(以模擬雙向通信場景)
  5. 我重新啟動了ios應用
  6. JMC使用https://xxxx.atlassian.net/rest/jconnect/1.0/issue/updates?從JIRA rest api獲取更新嗎?sinceMillis = 1408380024967 uuid = 9371F70F-12CD-47EC-AB3E-4B0398FF453E apikey = YYY project = AAA-能夠找到我在步驟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還是只是從頭開始並放棄它。

整個問題源於JIRA Mobile Connect集成過程中的文檔錯誤, 特別是此處的第9步,在步驟中 ,他們要求從使用ARC中排除所有JMC文件-我已經這樣做了。 這是問題的根本原因。

在瀏覽《憤怒的書呆子》樣本文件並將其與我自己的文件進行比較之后,我意識到它們是完全相同的,但是《憤怒的書呆子》樣本仍然有效,而我的卻沒有。

我回溯了所有集成步驟,到達步驟9時,我感到很驚訝,當我遍歷代碼時,沒有任何手動釋放語句的跡象-如果代碼確實未使用ARC,這是很奇怪的。

我從所有JMC文件中刪除了所有-fno-objc-arc標志。 嘿,presto! 崩潰的問題不再存在。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM