簡體   English   中英

在啟動完成之前,企業分布式iOS應用程序崩潰不一致

[英]Enterprise Distributed iOS App Crashes Inconsistently Before Launch Finishes

我正在使用企業版程序分發iPhone應用程序。 用戶從一個私有位置下載該應用程序,並且尚未報告安裝該應用程序的任何問題。 該應用對於大多數人來說運行良好。

但是,一些用戶抱怨該應用在啟動完成之前崩潰(他們點擊該圖標,它會放大以啟動,然后立即返回主屏幕)。 我已經親自觀察了幾次。 對於大多數人來說,刪除該應用程序並重新安裝它並不能解決問題。

此問題曾在我自己的設備上發生過一次,但是在我的情況下,刪除並重新安裝該應用程序可以解決此問題。 在設備上沒有日志引用該問題。

最初,我以為application:didFinishLaunchingWithOptions:花費的時間太長,導致應用程序無法正確加載,但是我從該方法中刪除了所有可能阻塞的代碼,並使其后台無效。

我懷疑這是一個代碼簽名問題,因此我重新構建並提供了具有新配置文件的新副本。 這也沒有效果。

考慮到沒有日志(由Google Analytics(分析)報告或直接在設備上記錄),我的印象是該應用程序根本沒有啟動,這與應用程序的准備方式有關。

任何見識將不勝感激!

我經歷過這樣的事情。

在這使我發瘋之后,我意識到了錯誤正在更改Xcode上的Run操作的方案。

將配置切換為“發布”使我可以在與企業版或臨時版發布時完全相同的條件下在設備上啟動應用程序。

在崩潰點,我能夠獲得確切的代碼行並解決了問題。

自正確安裝以來,這不會是codeSigning問題,您是否在didFinishLaunching中執行任何服務器請求,或者是否已鏈接了一些靜態庫,它們可能是導致此問題的原因,無論是什么,它都是直接從您發生的didFininshLaunchingWithOptions方法中的AppDelegate

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

另外,請確保權利文件上的捆綁包ID與用於對應用程序進行簽名的供應配置文件中的ID匹配。

暫無
暫無

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

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