我有一个主要使用 UIKit 构建的应用程序,但我刚刚添加了我的第一个 SwiftUI 视图,但它没有构建。我的 Xcode 项目中有两种不同的方案:MyApp和MyApp_Staging。我正在该MyApp_Staging方案中工作,想看看我的 SwiftUI 预览是什么样子。但是,它不会构建并给出错误:
no such module 'MyApp'
----------------------------------------
CompileDylibError: Failed to build ImagePickerView.swift
Compiling failed: no such module 'MyApp'
/Users/Me/Library/Developer/Xcode/DerivedData/MyApp-czotsuriazmotwgvkpfocaqlgfpz/Build/Intermediates.noindex/Previews/MyApp (Staging)/Intermediates.noindex/MyApp.build/Debug (Staging)-iphonesimulator/MyApp.build/Objects-normal/x86_64/ImagePickerView.2.preview-thunk.swift:1:55: error: no such module 'MyApp'
@_private(sourceFile: "ImagePickerView.swift") import MyApp
Run Code Online (Sandbox Code Playgroud)
我知道这些方案设置正确,因为该应用程序通常可以正常工作。
在我的产品模块名称中,它正确列出了多个值:针对不同构建类型的 MyApp 和 MyApp_staging。从技术上讲,该值设置为$(PRODUCT_NAME:c99extidentifier),但这填写了正确的名称。
是什么导致了这个问题?
经过几个小时的沮丧之后,我设法找到了导致预览不显示的问题以及像您上面提到的错误。
这个问题很久以前就被问到了,但我希望至少有人面临这个问题可能会得到一些线索或答案,所以我将其留在这里。
就我而言,我有 3 个独立的目标模式调试、UAT 和生产,我尝试在其中 3 个目标之间切换目标,但我注意到,当我切换到生产模式时,它工作得很好,预览正常显示,没有错误,并且然后我意识到它可能与目标模式有关。
所以我检查我的项目目标>构建设置>打包>产品名称
有 Debug、Release、UAT - Debug 和 UAT - Release,它们都具有相同的 Target 名称,只有 UAT Debug 的名称与其他方案不同,所以我更改了 UAT - Debug 产品名称以匹配目标名称,并且工作正常现在
我不知道你是否遇到像我一样的问题,但这实际上解决了我的问题,但我不明白的是,自从项目启动以来,该配置就一直这样,但没有错误,我一直正常使用预览没有问题,只是今天出现错误。
| 归档时间: |
|
| 查看次数: |
1364 次 |
| 最近记录: |