2014-01-13 36 views
0

我有一個iOS項目,它有一個靜態庫,在庫中有一個加密方法,並在該方法中它涉及很多系統加密方法約AES encryption.當我使用release創建靜態庫,它返回了正確的數據。但是當我使用調試模式構建時,它返回nil。靜態庫工作正常與調試,但沒有發佈

  • 什麼是兩種模式之間的差異?
  • 相同的源代碼可以打造出來的作品不同的不同的二進制文件?

幫助我,事先感謝。這是我選擇這兩種模式的地方。

enter image description here

+0

duplicateates http://stackoverflow.com/questions/3784583/xcode-debug-vs-release-build-when-debugging – codercat

回答

0

的主要區別是編譯器優化的水平。選擇項目目標並查看構建設置並將調試與發佈進行比較。

崩潰的一個潛在原因是,代碼有一些內存使用錯誤,通過巧合不會導致代碼優化崩潰,但沒有優化。或者還有一些其他的配置差異。請參閱@iDev的評論。

一個起點是修復編譯器和分析器的所有警告。檢查崩潰日誌以瞭解崩潰。如果您需要幫助,請將問題報告添加到您的問題中。

+0

現在我發現構建靜態庫與調試和發佈之間的差異。但是當我得到將.m或.mm從靜態庫中移出並放入項目中,然後構建它們。結果是.m中的加密方法返回nil。爲什麼相同的代碼會產生不同的結果?當我構建靜態庫幫助我時,這是否意味着優化器?如何在Project中使加密方法正常工作,而不僅僅是在靜態庫中? –

相關問題