尝试将我的应用程序从 UIKit 迁移到 SwiftUI 后,我在 Xcode 项目中遇到持续的构建错误。尽管采取了一些故障排除步骤,但问题仍未解决。以下是问题的详细信息、错误消息以及我迄今为止尝试修复该问题所采取的步骤。
### 错误消息:
Build input file cannot be found: '/Users/rgf10hotmail.es/Desktop/Developer/Recipeas2024/CocinArtGit/Recipeas/Info.plist'. Did you forget to declare this file as an output of a script phase or custom build rule which produces it?
### 项目背景:
迁移: 将应用程序从 UIKit 转换到 SwiftUI。
Xcode 版本: 最新版本(截至 2024 年 12 月 3 日)。
SwiftUI 设置: 在迁移过程中删除了
AppDelegate
和 SceneDelegate
。
Info.plist: 在
Info.plist
创建了一个新的 Recipeas/Info.plist
文件。
解决问题所采取的步骤:
在项目设置中验证Info.plist路径:
在构建设置→打包→Info.plist文件下检查。
更新了新
Info.plist
位置的路径 (Recipeas/Info.plist
)。
检查构建阶段:
审查了构建阶段→复制捆绑资源以确保包含
Info.plist
。
已验证没有自定义构建脚本引用旧的
Info.plist
路径。
清理构建文件夹并删除派生数据:
已执行产品>清理构建文件夹。
已从
~/Library/Developer/Xcode/DerivedData
手动删除派生数据。
删除了过时的参考文献:
确保项目导航器中没有对旧
Info.plist
路径的引用。
删除了所有指示丢失文件的红色突出显示的文件引用。
直接更新项目文件:
打开
project.pbxproj
以搜索对旧 Info.plist
路径的任何残留引用。
进行了必要的更正,确保没有绝对路径指向已删除的位置。
已验证的搜索路径:
将Info.plist重新添加到项目中:
Info.plist
引用并重新添加它,以确保 Xcode 正确识别新文件。重新启动 Xcode 和系统:
多次重启Xcode。
重新启动我的 Mac 以确保清除所有缓存。
检查多个目标:
Info.plist
。确保相对路径:
### 附加说明:
错误消息引用已删除的路径:
/Users/rgf10hotmail.es/Desktop/Developer/Recipeas2024/CocinArtGit/Recipeas/Info.plist
。
我已确保没有脚本或构建规则尝试访问此旧路径。
在从 UIKit 迁移到 SwiftUI 之前,该项目运行正常。
### 到目前为止我尝试过的:
清理构建文件夹并删除派生数据。
更新项目设置中的
Info.plist
路径。
删除
Info.plist
文件并将其重新添加到项目中。
在整个项目中搜索对旧
Info.plist
路径的任何引用。
确保更新所有构建阶段和脚本以使用新的
Info.plist
路径。
重新启动 Xcode 和我的电脑。
尽管做出了这些努力,构建过程仍然失败并出现相同的错误。我不确定构建系统在哪里仍在引用旧的
Info.plist
路径。
提前致谢。
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<!-- Google Mobile Ads SDK -->
<key>GADApplicationIdentifier</key>
<string>ca-app-pub-9021089007171782~8539445706</string>
<!-- App Transport Security -->
<key>NSAppTransportSecurity</key>
<dict>
<key>NSAllowsArbitraryLoads</key>
<true/>
</dict>
<!-- Custom Fonts -->
<key>UIAppFonts</key>
<array>
<string>Montserrat-Black.ttf</string>
<string>Montserrat-Bold.ttf</string>
<string>Montserrat-ExtraBold.otf</string>
<string>Montserrat-ExtraLight.ttf</string>
<string>Montserrat-Light.ttf</string>
<string>Montserrat-Medium.ttf</string>
<string>Montserrat-Regular.ttf</string>
</array>
<!-- User Interface Style -->
<key>UIUserInterfaceStyle</key>
<string>Light</string>
</dict>
</plist>
import SwiftUI
struct ContentView: View {
var body: some View {
NavigationView {
HomeView()
.navigationTitle("Recipeas")
}
}
}
import SwiftUI
import GoogleMobileAds
@main
struct NameApp: App {
// Initialize Google Mobile Ads SDK
init() {
GADMobileAds.sharedInstance().start(completionHandler: nil)
}
var body: some Scene {
WindowGroup {
ContentView()
}
}
}
Info.plist 不作为单独的文件可见,除非您向其中添加非标准值