0

我正在使用企業程序分發iPhone應用程序。用戶從私人位置下載應用程序,並沒有報告任何安裝它的問題。該應用程序適用於大多數人。企業分佈式iOS應用程序在啓動結束之前不一致崩潰

但是,一些用戶抱怨應用程序在完成啓動之前崩潰(他們點擊圖標,放大圖標啓動,然後立即返回到主屏幕)。我親自觀察過幾次。刪除應用程序並重新安裝它並不能解決大多數人的問題。

這個問題發生在我自己的設備上,但刪除並重新安裝應用程序糾正了它在我的情況。引用該問題的設備上沒有剩餘日誌。

起初,我在想應用中:didFinishLaunchingWithOptions:時間太長,防止正常加載的應用程序,但我把所有的可能阻塞的代碼了該方法,並沒有影響中背景吧。

我懷疑這是一個codeigning問題,所以我重建並提供了一個新的配置文件的新副本。這也不起作用。

考慮到沒有日誌(由Google Analytics(分析)或直接在設備上報告),我的印象是應用程序根本沒有啓動,而且這是應用程序準備的問題。

任何有識之士將不勝感激!

+0

我覺得你很痛苦,但在這樣的事情上前進的方向不是這樣。相反,您必須找到重現問題的方法。 (最佳候選人:早期網絡請求...嘗試強制他們失敗或以非常快或慢的速度完成)。 – danh

+0

我試過了。這就是爲什麼我認爲它是代碼簽名或配置 - 這是發生真正發生之前發生的 – Craig

回答

1

它不能是一個代碼簽名問題,因爲它正確安裝,你在didFinishLaunching中執行任何服務器請求,或者你鏈接了一些靜態庫,他們可能是這個問題的原因,它是什麼,它是什麼發生在你的AppDelegate內didFininshLaunchingWithOptions方法

+0

今天早上發現它是我試圖讀取捆綁版本,它還沒有設置。這個答案是正確的;我最初的假設是錯誤的。 – Craig

1

我注意到這開始發生在我所有的iOS 8+設備上,但iOS 7或6沒有。這個問題的確與代碼簽名有關。首先,我需要將一個Entitlements.plist文件添加到代碼簽名(我使用命令行進行密碼輸入)。沒有權利文件,應用程序將不會安裝在我的任何設備上。但是,對於權利文件,它會在iOS8 +上崩潰。我相信這個錯誤是我在Windows上使用C#創建了一個自動授權文件。 Windows增加了一些蘋果不同意的行結尾。解決方案是使用在Mac上創建的權利文件。

請注意,請確保授權文件上的軟件包ID與用於簽署應用程序的供應配置文件中的軟件包ID匹配。

1

我曾經歷過類似這樣的事情。

在這讓我瘋狂之後,我意識到錯誤在哪裏改變了Xcode上Run動作的方案。

將配置切換到「發佈」使我能夠以與爲企業或專用版本發佈時完全相同的條件在設備上啓動應用程序。

在發生崩潰時,我能夠得到確切的代碼行並解決了問題。

+0

有用的提示,謝謝 – rstk