[英]Swift Project Builds and runs but fails to Archive
我有一個xcode項目並在設備上運行,調試構建一切都很好。
但是,當我嘗試歸檔項目時,我從Swift編譯器獲取段錯誤:
0 swift 0x0000000105c36608 llvm::sys::PrintStackTrace(__sFILE*) + 40
1 swift 0x0000000105c36af4 SignalHandler(int) + 452
2 libsystem_platform.dylib 0x00007fff852705aa _sigtramp + 26
3 libsystem_platform.dylib 0x0000000000000002 _sigtramp + 2061040242
4 swift 0x0000000105f51896 swift::TypeBase::getTypeOfMember(swift::Module*, swift::ValueDecl const*, swift::LazyResolver*, swift::Type) + 534
5 swift 0x00000001050eee38 swift::SILType::getFieldType(swift::VarDecl*, swift::SILModule&) const + 56
6 swift 0x00000001051a1252 (anonymous namespace)::SILSROA::run() + 3602
7 swift 0x000000010516b116 swift::SILPassManager::runFunctionPasses(llvm::ArrayRef<swift::SILFunctionTransform*>) + 310
8 swift 0x000000010516b6f9 swift::SILPassManager::runOneIteration() + 761
9 swift 0x000000010516b92b swift::SILPassManager::run() + 251
10 swift 0x000000010516afbc swift::runSILOptimizationPasses(swift::SILModule&, swift::SILOptions const&) + 1644
11 swift 0x0000000104ffb141 frontend_main(llvm::ArrayRef<char const*>, char const*, void*) + 3537
12 swift 0x0000000104ffa35d main + 1533
13 libdyld.dylib 0x00007fff885d75fd start + 1
14 libdyld.dylib 0x0000000000000052 start + 2007140950
我見過人們談論某些可能導致這種錯誤的synta,但是有沒有人知道如何嘗試並追蹤代碼的哪個位導致了段錯誤?
我有一個類似的問題,“解決方案”是在發布配置的構建設置-Onone
swift編譯器代碼生成優化級別轉換為-Onone
。 這是Xcode 6.0.1的一部分。
在降低優化級別之前(這絕對不是解決編譯問題的方法,除非你使用一些非常簡潔的低級別的東西或一些專業)。
只需看看編譯器試圖告訴你什么 - 是的。 它還不是人類可讀的日志。 但是你可以閱讀,不是嗎?:)
我遇到了這樣的問題。
While running pass #1059521 SILFunctionTransform "Constant Propagation" on SILFunction "@_TTSg5VSC29UIApplicationLaunchOptionsKeyS_s8Hashable5UIKit_P__CSo8NSObjectS2_S0_10ObjectiveC_Ps9AnyObject____TFs17_dictionaryUpCastu2_Rxs8Hashable0_S_rFGVs10Dictionaryxq__GS0_q0_q1__".
如果你仔細觀察那個混亂局面,你會發現你正在進行某種向上轉換,這是不允許的。
這是什么意思? 看看你的功能
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?)
並找到一個將launchOptions
為[NSObject : AnyObject]?
在swift 3中,它已變為[UIApplicationLaunchOptionsKey: Any]?
。 刪除該launchOptions
並將等待launchOptions
的代碼更新為[NSObject : AnyObject]?
。
如果這有幫助,只需打開驚人的快速整個模塊優化回來+如果您不知道整個模塊優化是什么 - >閱讀本文:
我也有這個問題,我發現代碼中的某些結構似乎會導致編譯器崩潰。
其中一個結構是當你使用太多[weak self]
:
whatever { [weak self] in
whatever2 { [weak self] in
}
}
第二個[weak self]
是不必要的,導致編譯器崩潰。
在從另一家開發公司繼承的項目中,我們遇到了同樣的錯誤。 我們注意到有一些與Swift語言版本和C ++語言方言相關的自定義構建設置(在Apple LLVM部分中)。 以下是我們要解決的問題:
pod update
了pod update
並修復了一些新警告 然后我們能夠構建和歸檔項目。
此外,當您將設備設置為通用iOS設備時 ,請按照以下順序執行以下步驟:
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.