在项目名称更改后重新生成Bridging Header和-Swift.h文件



我之前构建了一个键盘扩展项目,该项目包含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到Objective-C的头文件取决于模块名称:

<ModuleName>-Swift.h

因此,如果Module名称发生更改,则需要更改代码中的import。在内部版本设置中,搜索Product Module Name以查找正在使用的模块名称。

Objective-C到Swift的桥接头名称取决于构建设置Objective-C Bridging Header。检查Xcode目标生成设置并进行修改以匹配您的新名称。

最新更新