问题
I am trying to play around with swiftUI in Xcode 11 and macOS Catalina. BUT After creating a new Project, there is a boiler plate code with a Text that says hello World. I want to have a live preview of this simple welcome message in the canvas by the side of the code.
When i hit the resume button : It says :
Cannot Preview in this file - Failed to launch [App Name]
I've tried hitting the diagnostic button that generated a report to send it to APPLE saying:
[FailedToLaunchError(url: file:///Users/naive/Library/Developer/Xcode/DerivedData/first_swiftUI-dymizjogcbtouhclgjhhefagmcqo/Build/Intermediates.noindex/Previews/first_swiftUI/Products/Debug-iphoneos/first_swiftUI.app, underlying: Error Domain=NSOSStatusErrorDomain Code=-10661 "(null)" UserInfo={_LSLine=3554, _LSFunction=_LSOpenStuffCallLocal}, failureCategory: UVFoundation.FailureCategory.infrastructureFailure) ]
Here's the code, It is the default code that comes with new project created with Xcode 11 and SwiftUI option checked:
import SwiftUI
struct ContentView : View {
var body: some View {
Text("Hello World")
}
}
#if DEBUG
struct ContentView_Previews : PreviewProvider {
static var previews: some View {
ContentView()
}
}
#endif
I expect the canvas to show up and display live preview of my code. The canvas is not showing up !!
There are two warning messages generated :
:0: warning: imported declaration 'UITableViewDiffableDataSourceCellProvider' could not be mapped to 'UITableViewDiffableDataSourceReference.CellProvider'
:0: warning: imported declaration 'UICollectionViewDiffableDataSourceCellProvider' could not be mapped to 'UICollectionViewDiffableDataSourceReference.CellProvider'
other than that, My iPad 11"with iPadOS beta runs the app, The simulator is working as well
回答1:
I encountered this UVFoundation.FailureCategory.infrastructureFailure
when starting an iOS app with SwiftUI and then checking the Mac target in the project properties (i.e., using Catalyst to create a cross-platform app). When I did this the default device changed to "My Mac" and preview stopped working, yielding this error in the diagnostic window.
Preview for the Mac target doesn't seem to be supported—you have to select some iOS target ("Generic iOS Device" works just fine for me). Tested on Mojave beta 5 with Xcode 11 beta 5. From the Xcode 11 beta 5 release notes: "Xcode 11 doesn’t support working with SwiftUI in a Mac Catalyst app. (41416222, 51201699)"
"My Mac" selected, it doesn't work!
Working with "Generic iOS device" selected.
回答2:
I got it fixed by assigning command line tools to xcode 11, it was set to previous version of xcode 10.
Go to : Preferences > location > commandLine tools [drop down] > select xcode 11
回答3:
Check Diagnostic reports on path ~/Library/Logs/DiagnosticReports
.
Open fileName.crash file (fileName
is the file which causing crash)
and search Application Specific Information
Fix your code as per the information
回答4:
Open Terminal and type the following command
sudo xcode-select -s /Applications/Xcode-beta.app/Contents/Developer
and then run sudo xcodebuild -license
. Type agree and hit return key to the license. Also select Xcode 11
for Command Line tools from Preference -> Location -> CommandLine
in Xcode. This worked for me.
回答5:
None of the above worked for me - but I did find a way...
- Copy the content of the offending file (eg ContentView.swift).
- Delete the offending file from your project.
- Create a new 'SwiftUI View' and rename it back to whatever file you deleted.
- Paste the content you copied in step 1 back in.
- Click resume in the canvas.
回答6:
I just Quit the XCode and opened again with the same project and it starting previewing. Try it once.
Still no luck. Command+K (clean the project), tap Resume
again.
回答7:
In my case, I checked generated Diagnostics report and it showed
" Dyld Error Message: app was built for iOS 13.2 which is newer than this simulator 13.1 "
So I changes the iOS Deployment target to 13.1 from build settings.
Tap on resume and it worked for me.
来源:https://stackoverflow.com/questions/56505356/cannot-preview-in-this-file-failed-to-launch-app-name