我有一個專案在使用 Xcode 13.0 時可以毫無問題地構建和運行。但是,如果我關閉 13.0,然后嘗試使用 Xcode 13.3 構建和運行專案,應用程式將構建,但在啟動時立即崩潰并出現以下錯誤:
*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: 'Could not find a storyboard named 'Main' in bundle NSBundle
我根本沒有對專案進行任何更改——唯一的更改是用于構建應用程式的 Xcode 版本。在比較兩個 Xcode 版本之間的構建輸出時,我注意到 13.3 正在跳過“鏈接故事板”步驟。
我嘗試過的一些事情包括:
- 從 .xcodeproj 中洗掉故事板檔案,然后重新添加它。
- 從專案中洗掉所有本地化,認為它可能與此有關。然后我嘗試重新啟用本地化。
- 使用 File > New> File… 選單創建一個全新的故事板。甚至新
.storyboard檔案也沒有鏈接或添加到專案中。 - 洗掉檔案,然后將檔案重新添加
.storyboard到 Copy Bundle Resources 構建階段。 - 將最低部署目標從 iOS 13.0 提高到 14.0
- 將我的源代碼從 Git 克隆到一個新位置并從那里構建。
- 產品 > 清理構建檔案夾并手動洗掉派生資料檔案夾位置的次數超出了我的計算范圍。我正在使用默認的派生資料位置。
(~/Library/Developer/Xcode/DerivedData)
我已經能夠通過在構建成功后檢查 .app 包來驗證故事板檔案沒有包含在完成的應用程式中。我一直復制到應用程式的所有其他資源都在那里,但故事板不在那里。
有沒有其他人看到這個問題,如果有,解決了嗎?我已經被難住了好幾天了,到目前為止,唯一有效的是回滾到 Xcode 13.0。
uj5u.com熱心網友回復:
修復。事實證明,幾年前,CONFIGURATION_TEMP_DIR我們的專案中已經定義了一個用戶定義的構建設定。洗掉此設定并恢復為默認值使我們的專案再次運行,沒有任何問題。我不確定為什么最初定義了這個設定,但顯然 Xcode 13.3 不再喜歡它了。
這條線也影響了我們的另一個專案,它不使用故事板,但確實有一個 Apple Watch 應用程式。在那種情況下,崩潰是相似的,錯誤表明找不到 Interface.plist 檔案。
Apple 的(存檔的)關于設定的檔案。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/457891.html
上一篇:如何使用UINavigationController推送UIViewControlleroverCurrentContext
下一篇:類繼承與匯入——python
