2016-08-16 110 views
2

我在AppStore上有一個應用程序,我在兩天前更新了它。在我檢查過的所有手機上效果很好,但是我確實收到了一些用戶的投訴,即應用在開幕後沒有發生碰撞提醒。 我檢查了Xcode的崩潰報告,發現這個錯誤:\UIKit: __45-[UIView(Hierarchy) _postMovedFromSuperview:]_block_invoke + 556,並看到它與UI的東西,但我不知道這是應用程序關閉的原因,因爲我沒有更改版本之間的用戶界面,並且它不是崩潰... 和我沒有退出(0)的代碼。應用程序關閉,沒有崩潰警報

對不起有沒有代碼,在版本之間的應用程序打開沒有任何改變(我剛添加一個QR類,用戶可以打開一個按鈕點擊)。

是否有人知道應用程序關閉的可能原因(或立即轉到 到後臺)而沒有提醒?

編輯:我只是有一個電話這個問題。當我直接安裝應用程序從我的電腦應用程序的工作原理,當我從它關閉商店安裝...

EDIT2: 感謝@ CY-4AH,這裏是logcat的:

kernel[0] <Notice>: xpcproxy[7827] Container: /private/var/mobile/Containers/Data/Application/7E2AA7B7-E2B2-4B2A-A362-BF95D6DFF594 (sandbox) 
<Error>: task_set_exception_ports(B07, 400, D03, 0, 0) failed with error (4: (os/kern) invalid argument) 
<Notice>: ReportCrash acting against PID 7827 
<Warning>: Attempt to read info_array in pid 7827 failed, address was 120045fe8 
<Warning>: Attempt to read info_array in pid 7827 failed, address was 120045fe8 
<Warning>: Attempt to read info_array in pid 7827 failed, address was 120045fe8 
<Warning>: Attempt to read info_array in pid 7827 failed, address was 120045fe8 
<Notice>: Formulating crash report for process TmcSystemsApp[7827] 
com.apple.xpc.launchd[1] (UIKitApplication:com.tmc-systems.TmcSystemsApp[0x578a][7827]) <Notice>: Service exited due to signal: Trace/BPT trap: 5 
<Error>: Not saving crash log because we have reached the limit for logs to store on disk. Sync or otherwise clear logs from /var/mobile/Library/Logs/CrashReporter to save new logs. 
<Error>: Could not save crash report to disk! 
<Error>: Incident Identifier: DBBCA5F0-062B-4430-AFDA-03E4218DE37F 
<Error>: CrashReporter Key: 36ec2d0341c8d9e6a53e387d034dfa76962801d5 
<Error>: Hardware Model:  iPhone7,2 
<Error>: Process:    TmcSystemsApp [7827] 
<Error>: Path:    /private/var/mobile/Containers/Bundle/Application/9C394EDA-BC3A-4AE3-AD6F-E9D9A42D5F37/TmcSystemsApp.app/TmcSystemsApp 
<Error>: Identifier:   TmcSystemsApp 
<Error>: Version:    ??? 
<Error>: Code Type:   ARM-64 (Native) 
<Error>: Parent Process:  launchd [1] 
<Error>: Date/Time:   2016-08-17 12:28:38.078 +0300 
<Error>: Launch Time:   2016-08-17 12:28:38.043 +0300 
<Error>: OS Version:   iOS 8.4.1 (12H321) 
<Error>: Report Version:  105 
<Error>: Exception Type: EXC_BREAKPOINT (SIGTRAP) 
<Error>: Exception Codes: 0x0000000000000001, 0x0000000120019088 
<Error>: Triggered by Thread: 0 
<Error>: Dyld Error Message: 
<Error>: Library not loaded: /System/Library/Frameworks/ContactsUI.framework/ContactsUI 
<Error>: Referenced from: /private/var/mobile/Containers/Bundle/Application/9C394EDA-BC3A-4AE3-AD6F-E9D9A42D5F37/TmcSystemsApp.app/TmcSystemsApp 
<Error>: Reason: image not found 
<Error>: Dyld Version: 353.12 
<Error>: Binary Images: 
<Error>: 0x120018000 - 0x12003ffff dyld arm64 <dddc36a8e70636f7a9fea757477bf90b> /usr/lib/dyld 
SpringBoard[54] <Warning>: Application 'UIKitApplication:com.tmc-systems.TmcSystemsApp[0x578a]' crashed. 
+0

嘗試發現什麼特殊的崩潰設備。也許他們使用較舊的iOS版本。 看看這個:https://stackoverflow.com/questions/21237571/random-uisearchdisplaycontroller-crash-ios-7 –

+0

謝謝,但它不是關於版本,它適用於4s,但發生在6s(在另一個6s它的工作原理也不錯)。 – MorZa

+1

您是否在上次更新和此更新之間向項目添加了資源?我以前遇到過這個問題,因爲我向我的開發目標添加了一個資源,但不會自動將其添加到所有目標,所以我的商店目標沒有在構建的「複製束資源」部分中階段。嘗試訪問未被複制到資源中的資源會導致您描述的確切行爲。 – Kevin

回答

1

您的應用程序鏈接到在iOS 9中添加的框架(ContactsUI),並且您的應用程序在iOS 8.4.1設備上啓動。當dyld嘗試解析框架時,它無法找到並失敗。

您可能需要薄弱環節ContactsUI框架和使用任何從它之前檢查它的存在,或更改分鐘部署目標到iOS 9.0

+0

謝謝,它是contactsUI框架。但是如果問題是版本問題,它是如何在8.4版本的iPhone 4上運行的? – MorZa

0

iOS神奇地殺死了一個應用程序if applicationDidFinishLaunching takes to long to finish,所以我建議您查看該功能並將您爲QR碼支持添加的任何行添加到一些不同的功能中(例如,如果這是我的代碼,也許我會將它放入視圖控制器的viewDidLoad函數中,甚至在dispatch_async塊後面)。

+0

感謝您的回答,它只需不到一秒鐘。我不明白爲什麼要將它移動到viewDidLoad而不是點擊按鈕,在一個按鈕上點擊它根本不需要時間,或者我錯過了什麼?請參閱我的編輯。 – MorZa

+0

你也可以按一下按鈕來做你所需要的。關鍵是要儘可能保持'applicationDidFiinishLaunching'方法的精確性,所以iOS中的內置超時不會神奇地激發。 –

2

如果它沒有生成崩潰報告,那麼你的應用程序被系統關閉。這可能是由以下幾個原因造成的:分配的內存太多,startApplication太長。嘗試在控制檯日誌中找出爲什麼你的應用程序被系統關閉。

+0

謝謝,我不能檢查控制檯日誌中,因爲當我從我的電腦安裝它,它的工作原理,但我會盡力檢查。 – MorZa

+0

@MorZa從appstore安裝並在控制檯中查找。什麼問題? –

+0

那麼現在的主要問題是,我所有的手機都在工作,我有一個電話,這個問題從用戶幾分鐘後:)我會嘗試檢查,當我再次有一個。謝謝。 – MorZa

相關問題