Swift 避免Xcode'中的SSL错误;s预览窗口
我对Swift/SwiftUI编程非常陌生,所以我使用了一个URLImage包,我想在其中显示本地计算机上的图像。图像将具有以下路径: 让我自签名证书工作的最简单方法是创建CA根证书,并将其安装在Xcode内的模拟器上,并启用完全信任。我花了半天的时间来正确配置证书,但最终当我开始在模拟器中调试时,我的代码可以正常工作Swift 避免Xcode'中的SSL错误;s预览窗口,swift,xcode,swiftui,ssl-certificate,Swift,Xcode,Swiftui,Ssl Certificate,我对Swift/SwiftUI编程非常陌生,所以我使用了一个URLImage包,我想在其中显示本地计算机上的图像。图像将具有以下路径: 让我自签名证书工作的最简单方法是创建CA根证书,并将其安装在Xcode内的模拟器上,并启用完全信任。我花了半天的时间来正确配置证书,但最终当我开始在模拟器中调试时,我的代码可以正常工作 struct SListItem: View { var solImage: String { get { return &qu
struct SListItem: View {
var solImage: String {
get {
return "https://myserver.local/path/image1.jpg"
}
}
var body: some View {
HStack {
URLImage(
url: URL(string: solImage)!,
options: URLImageOptions(
cachePolicy: .returnCacheElseLoad(cacheDelay: 0.0, downloadDelay: 0.25),
load: [.loadImmediately, .cancelOnDisappear],
maxPixelSize: CGSize(width: 3000, height: 3000)
),
empty: {
Text("Nothing here") // This view is displayed before download starts
},
inProgress: { progress -> Text in // Display progress
return Text("Loading...")
},
failure: { error, retry in // Display error and retry button
VStack {
Text(error.localizedDescription)
Button("Retry", action: retry)
}
},
content: { $0.resizable().aspectRatio(contentMode: .fit) }
).frame(width: 50, height: 50)
Text("Test123")
}
}
}
但在预览/实时预览期间,这会导致以下错误:
发生SSL错误,无法与服务器建立安全连接。
但是,以下所有情况都是正确的:
- 我可以在我的macOS主机上的Chrome、Safari中访问映像,而不存在SSL问题(CA证书安装在系统密钥链中,对所有用户都是可信的;web服务器具有由我的CA证书签名的SSL证书)
- 我可以从模拟器上的Safari访问映像,而不会出现SSL错误(在安装CA证书并完全信任之后)
- 如上所述,当我从Xcode在模拟器中以调试模式运行应用程序时,我可以访问该映像,而不会出现SSL错误
- 如果我在具有第三方签名SSL证书的网站上选择了一个图像,那么该图像将在模拟器和预览窗格中正确显示
提前感谢您的帮助。下一步应该帮助我,我担心有人会建议;)我看过一些关于使用NSAppTransportSecurity和玩URLSession的文章,但我暂时不考虑它们,因为我对Apple/Swift环境的了解太有限(我在Windows上写过C/C++,但从未在Mac上写过Objective-C)-我只希望有一种更简单的方法。但是如果没有的话,我将不得不大量阅读。谢谢。下一步应该会有帮助。我担心有人会建议;)我看过一些关于使用NSAppTransportSecurity和玩URLSession的文章,但我暂时不考虑它们,因为我对Apple/Swift环境的了解太有限(我在Windows上写过C/C++,但从未在Mac上写过Objective-C)-我只希望有一种更简单的方法。但是如果没有的话,我将不得不大量阅读。谢谢