1. 程式人生 > >IOS除錯正常,打包閃退

IOS除錯正常,打包閃退

今天遇上個奇葩問題,我在真機除錯時,一切都是正常的,但打包成ipa後安裝後,卻發生了閃退。在網上看了一波資料後,發現我們平時真機除錯是用的debug模式,而打包安裝是release模式,而要想在真機除錯時使用release模式,就得進行以下設定。

1,點選停止旁的按鈕,選擇Edit Scheme.

2,在Run裡選擇info,然後在Build Configuration裡選擇Release。
然後就能真機除錯下,發現問題崩潰地點了。 檢查之後,發現問題出現原因竟然是當前控制器請求的網路資料全為空造成的,但列印卻是的確返回了的。一句程式碼一執行,所建立的物件將會立馬變成空。
列印錯誤日誌:

error: Couldn't materialize: couldn't get the value of variable result: variable not available

Errored out in Execute, couldn't PrepareToExecuteJITExpression 

解決辦法是在build settings裡搜尋optimization level,然後將Release改為Nono就可以了



Optimization Level 應該是編譯器的優化程度。 

比較早期的時候,硬體資源是比較缺乏的。為了提高效能,開發編譯器的大師們,都會對編譯器(

c到彙編的編譯過程)加上一定的優化策略。優化後的程式碼效率比較高,但是可讀性比較差,且編譯時間更長。

優化是指編譯器一級的措施,與機器指令比較接近,所以很可能會導致硬體不相容,進而產生了你目前遇到的軟體裝不上的問題。

他是編譯器的行為,與你程式碼理論上不相關的。 蘋果的檢查應該是檢查你的程式碼一級的規範程度,隱私侵權相關的問題。應該是與編譯的過程是無關的。請放心。