現象
模擬器正常,真機運行顯示舊代碼效果,刪除 App 重裝也無效。
排查步驟(按優先級)
- Clean Build Folder:Xcode 菜單 Product → Clean Build Folder (Shift+Cmd+K),清除所有編譯緩存。
- 刪除 DerivedData:
~/Library/Developer/Xcode/DerivedData/ 刪除對應項目目錄,徹底清除索引、中間產物。
- 真機刪除 App 並重啟設備:長按圖標刪除,關機重啟手機,清除系統級緩存。
- 檢查 Bundle Identifier:確保簽名配置、Provisioning Profile 匹配,無多 Target 衝突。
- 資源文件未更新:圖片、Storyboard、xib 修改後需確認 Target Membership 勾選正確,且未被
.gitignore 忽略導致未同步。
- 增量構建問題:Build Settings →
Enable Incremental Build 設為 NO 試試。
- Watch/Widget Extension 獨立構建:若有 Extension,需單獨 Clean/Build。
終極大招
# 終端執行(項目根目錄)
rm -rf ~/Library/Developer/Xcode/DerivedData/*
xcodebuild clean -alltargets
# 重新打開 Xcode 構建
預防
- 習慣 Cmd+Shift+K 清理後再 Run。
- 使用
xcconfig 管理配置,避免手動改 Build Settings 導致緩存不一致。
- CI/CD 流水線中強制
clean build。