簡體   English   中英

Swift項目構建並運行但無法歸檔

[英]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的一部分。 關閉swift編譯器優化

在降低優化級別之前(這絕對不是解決編譯問題的方法,除非你使用一些非常簡潔的低級別的東西或一些專業)。

只需看看編譯器試圖告訴你什么 - 是的。 它還不是人類可讀的日志。 但是你可以閱讀,不是嗎?:)

我遇到了這樣的問題。

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]?

如果這有幫助,只需打開驚人的快速整個模塊優化回來+如果您不知道整個模塊優化是什么 - >閱讀本文:

https://swift.org/blog/whole-module-optimizations/

我也有這個問題,我發現代碼中的某些結構似乎會導致編譯器崩潰。

其中一個結構是當你使用太多[weak self]

whatever { [weak self] in
    whatever2 { [weak self] in
    }
}

第二個[weak self]是不必要的,導致編譯器崩潰。

在從另一家開發公司繼承的項目中,我們遇到了同樣的錯誤。 我們注意到有一些與Swift語言版本C ++語言方言相關的自定義構建設置(在Apple LLVM部分中)。 以下是我們要解決的問題:

  • 將Swift版本恢復為默認值(之前為2.3)
  • 重置與C ++方言相關的所有選項
  • 使用pod updatepod update並修復了一些新警告

然后我們能夠構建和歸檔項目。

此外,當您將設備設置為通用iOS設備時 ,請按照以下順序執行以下步驟:

  • 產品»清潔
  • 產品»構建
  • 產品»存檔

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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