![](/img/trans.png)
[英]Is it possible to change when the (Project)-Swift.h header is generated?
[英]Regenerating the Bridging-Header and -Swift.h files after project name change
我之前構建了一個包含 Swift 和 Objective C 組件的鍵盤擴展項目。我想基於我以前的應用程序構建一個新的鍵盤應用程序,其簡單目標是更改名稱、鍵盤 UI 和一些鍵盤機制。
我遵循的准則在這里上復制和重命名XCode項目。 我什至設法在更改 Bundle ID(對於容器應用程序和底層鍵盤)后編譯項目。 但是,由於目標的名稱現在已更改,我收到以下文件的錯誤:
#import "NewNameContainerApp-Swift.h"
#import "NewNameContainerApp-Bridging-Header.h"
無法找到(這些錯誤仍然存在,盡管我手動更改OldNameContainerApp-Bridging-Header.h
到NewNameContainerApp-Bridging-Header.h
。看來這個項目還沒有再生一套新橋接報頭和-Swift.h
相匹配的文件名我的新目標。
我的問題是 - 有沒有辦法強制 XCode 重新生成一組新的這些文件? 如果沒有,我在哪里可以找到OldNameContainerApp-Swift.h
以便我可以手動將其更改為NewNameContainerApp-Swift.h
?
謝謝!
在構建部分中檢入應用程序Define-Module
。 將其更新為您最新的項目名稱。 要輕松找到它,只需搜索Defines-Module
並查看是否需要更新。 如果已更新,請嘗試清理項目或刪除Derived Data
我發現無法強制 Xcode 重新生成這些文件。 刪除它們只會導致構建失敗。 唯一可靠的方法是進行干凈的構建,或者刪除 DerivedData 並重新構建(實際上是相同的解決方案)。
重命名 Objective-C/Swift 混合應用程序時,必須執行以下附加更改才能成功構建。
Swift to Objective-C 頭文件取決於模塊名稱:
<ModuleName>-Swift.h
因此,如果模塊名稱更改,則需要更改代碼中的import
。 在構建設置中搜索Product Module Name
以查找正在使用的模塊名稱。
Objective-C 到 Swift 橋接頭名稱取決於構建設置Objective-C Bridging Header
。 檢查 Xcode 目標構建設置並修改以匹配您的新名稱。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.