[英]app with Objective-C and swift code crash at launch in release mode, debug mode fine
我的項目基於Objective-C,並且具有一些第三方Swift代碼。
該應用程序在調試模式下運行良好,但是,當我將其存檔為發布模式時,該應用程序將在啟動屏幕上崩潰。
將快速優化級別設置為“無”仍然存在相同的問題。 我安裝了crashlytics 3.7,但是它在啟動時崩潰,沒有機會上載崩潰。 我很絕望。 有任何想法嗎?
更新:
我試圖刪除所有快速的東西和存檔,一切都照常進行了。 但是,將快速文件拖到基於Objective-C的項目中后,運行(調試)該應用程序就可以了。 但是,如果將存檔(發布)並安裝在iPhone上,則啟動時會立即崩潰。 有什么我想念的嗎?
好吧,經過數千次存檔和測試,我發現這是由內部發行引起的。
它在證書中添加了一個屬性“ OU”。 我不得不重新創建一個新證書,現在那里有“ OU”。 看起來蘋果在處理采用快速代碼的舊項目時根本沒有提及它。
來自Enterprise Distribution的報價在Swift App中無法與iOS8配合使用
本文詳細解釋了所有內容:
https://www.airsignapp.com/ios-apps-using-swift-crash-when-signed-with-inhouse-certificate/
We can confirm that after create a new cert and .mobileprovision, no more issues.
We found origins that caused this issue, related to a missing attribute in “Subject” field InHouse Certificates :
BEFORE Subject: UID=269J2W3P2L, CN=iPhone Distribution: Company Name, O=Company Name, C=FR
AFTER Subject: UID=269J2W3P2L, CN=iPhone Distribution: Company Name, OU=269J2W3P2L, O=Company Name, C=FR
我將發布此答案,因為我沒有代表來發表評論。 我也遇到過類似的問題,盡管與Swift無關。 可能值得一試。
對我來說,問題與Xcode中的文件刪除有關。 我已經從Xcode項目中刪除了一些文件,但是它們仍然存在於硬盤驅動器的文件夾中。 通過Xcode運行項目時,它們將加載這些文件,就像它們是項目的一部分一樣,但是歸檔時將不包括這些文件。 這使得該應用程序在通過Xcode運行時可以完美運行,但是在運行存檔版本時會崩潰,因為它試圖加載不存在的內容。
因此,要檢查的一件事是啟動應用程序時應加載的文件在Xcode的項目導航器中可見。 希望對您有所幫助!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.