2012-11-29 106 views
1

我試圖將我的應用程序的用戶帶到AppStore以獲得多種不同的功能 - 例如升級到完整版本,評估/評論或僅查看另一個應用程序發達。但是,所有這些都會導致我的應用程序在設備上啓動iTunes時終止。我使用了一些簡單的代碼,並嘗試了很多URL組合,所有這些組合都成功地到達了他們要去的地方。這裏是行爲:ios從我的應用程序啓動應用程序導致我的應用程序終止

  • 用戶點擊率應用
  • 代碼通過引導他們到網上:

    [[UIApplication sharedApplication] openURL: 
    [NSURL URLWithString:[[MyApp defaultApp] itunesLink]]]; 
    
  • 我的應用轉到後臺,我委託的applicationDidEnterBackground調用成功

  • 隨着iTunes的到來,我的應用程序終止。無論我是通過X-Code還是直接在設備上運行。
  • 當我退出商店並查看設備上正在運行的進程時,我的應用程序仍顯示在那裏。我知道它已經從X-Code控制檯終止,當我嘗試重新啓動它時,它會重新開始。

我已經嘗試itunesLink作爲itms://itunes.apple.com/app/或使用http - 所有這些都得到正確的結束點。如果我使用www.google.com,它工作正常,我的應用程序不會終止,只是發送到後臺,網站顯示OK。

其他問題是,當我通過模擬器運行時,openURL調用返回失敗並且不打開任何URL。

任何有關爲什麼我的應用程序將終止的見解?它的行爲像iOS安全功能或者是關閉我的應用程序,但我認爲我正在做的是非常標準的東西。

如果有人看到類似的東西,我會非常感謝有關情況的建議。

+2

請注意,圖標的雙擊主頁按鈕列表不顯示*正在運行的應用程序*,而只是您啓動的應用程序的歷史記錄。它不會告訴你哪些應用程序正在運行。 –

+0

另外,請不要通過列表中的「x」來清除手機內存。這不行! –

回答

1

您的應用可能因多種原因被終止。最好的辦法是使用Xcode的組織者看設備控制檯:

enter image description here

你的應用程序可以簡單地被終止爲低內存通知的結果。一旦它移動到背景並且應用程序商店啓動(iTunes和應用程序商店都使用大量內存),它可以被釋放以釋放內存。在這種情況下,你會從「投棄」像這樣的一組消息:

<Notice>: jetsam: kernel termination snapshot being created 
<Warning>: Application 'UIKitApplication:com.yourapp[0x6337]' exited abnormally with signal 9: Killed: 9 

您應該使用活動監視器儀器看到您的應用程序使用多少內存。 iOS將首先終止最佔用大量內存的應用程序,因此您應該嘗試減少應用程序的內存佔用。

+0

右鍵。在控制檯中是我的應用程序和當時正在被殺的另一個消息。還有一些殺死其他一些進程: com.apple.accountsd, com.apple.timed, com.apple.mobile。assertion_agent, com.apple.crashreportcopymobile, com.apple.CommCenter, com。 。 而我的應用程序會獲得您提到的kill -9警告消息。 – jpporterVA

+0

這些錯誤發生在iPod Touch(4G)上。我只是在其他兩個設備(iPad,iPad2)上測試過它,它運行良好。從我看到的,他們都應該有256MB。另一件事是我使用iPod Touch查看舊版本下載的應用程序,這導致我在測試應用程序內購買時遇到問題(包括沙盒等),儘管我前一段時間刪除了這些應用程序以專注於測試這個版本。 – jpporterVA

相關問題