簡體   English   中英

具有Objective-C的應用程序,在發布模式下啟動時快速代碼崩潰,調試模式良好

[英]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.

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