我在我的项目中使用 SwiftData。在模拟器中的 Xcode 15 beta 4 下一切正常。自从我更改为 Xcode 15 beta 5 以来,我多次收到以下错误:
CoreData:错误:此应用程序中的一个或多个模型正在使用可转换属性,其转换器名称要么未设置,要么设置为 NSKeyedUnarchiveFromDataTransformerName。请改用“NSSecureUnarchiveFromData”或 NSSecureUnarchiveFromDataTransformer 的子类。在某些时候,当指定 nil 时,Core Data 将默认使用“NSSecureUnarchiveFromData”,并且包含不支持 NSSecureCoding 的类的可转换属性将变得不可读。“NSKeyedUnarchiveFromData”不应用于取消存档,并将在未来版本中删除
我知道这是底层 CoreData 设置中的错误。但是,如何更改 CoreData 配置?如果您直接使用 CoreData,您可以更改配置,但是当您使用 SwiftData 时,如何更改配置。为什么苹果不从一开始就使用正确的配置?
我正在使用定义我的模型的标准代码:
@Model final class LoggerItem {
@Attribute(.unique) let id: UUID
var title: String
var created: Date
var modified: Date?
...
}
Run Code Online (Sandbox Code Playgroud)
这已经创建了上述错误消息。
我在我的项目中使用通过 SwiftPM 安装的MetaCodable宏,当我尝试使用 Microsoft Azure 管道并使用我的本地计算机作为运行代理 (MBP M1 Max - Sonoma - XCode 15) 来构建项目时,我收到以下错误消息:
error: external macro implementation type 'CodableMacroPlugin.CodedAt' could not be found for macro 'CodedAt'
这里有些人建议添加-external-plugin-path到other Swift flags构建设置中,但这并不能解决问题。
在这个线程中,有些人还建议添加-load-plugin-library、 或-plugin-path、 或-load-plugin-executableto other Swift flags,我使用值尝试了这些选项的每个选项:$(BUILT_PRODUCTS_DIR)#MetaCodable但我在每个 CI 构建中都遇到了相同的错误。
我还在 Azure 的管道构建日志中收到此警告:
"output": "<unknown>:0: warning: compiler plugin not loaded: '/Users/my_user_name/Library/Developer/Xcode/DerivedData/MyProject/Build/Products/Release/CodableMacroPlugin; failed to initialize /Users/my_user_name/vsts-agent-osx-x64-2.183.1/_work/9/MyProject/Data/Models/SomeModel.swift
任何对此的想法都值得赞赏。
在我更新到 Xcode 15 beta 2 后,我收到了这些构建时错误,这是我在 beta 1 中没有看到的。
无法找到或创建描述“<IBCocoaTouchPlatformToolDescription:0x600002588860>IBRealityIdiom-seventeenAndLater <IBScaleFactorDeviceTypeDescription:0x600002588b60>scaleFactor = 2x,renderMode.identifier =(null)”的系统内容'的执行上下文。
我试过了 -
然而,到目前为止,还没有任何效果。我很感激有关如何解决此问题的任何建议或想法,因为我陷入了无法构建项目的困境。
提前致谢!
在苹果开发者网站上,我可以从模拟器中单独下载 Xcode 新测试版。
我正是这样做的。下载 Xcode (3.41GB) 后,我下载了新的 iOS 17 beta,大小为 7.47GB。安装新的 Xcode 后,它提示我再次下载已经下载的 iOS 模拟器。但是当 Xcode 提示时,下载也非常缓慢,我不想等待,因为我的下载文件夹中有模拟器 DMG。
我已经看过这里,但没有帮助:直接下载 Xcode 模拟器
我尝试手动将 .DMG 文件的内容放入 Xcode 中的库中,如一些旧帖子所述,例如“Cashes/com.apple.dt.Xcode/Downloads/”,但这不起作用。重新启动 Xcode 我有同样的提示要求我重新下载模拟器。
我正在使用 Xcode 15(beta 5)测试我当前的项目,并且收到一个错误,我不知道它是 Xcode 中的新内容还是只是 beta 版本中的错误:
Assertion failed: (fixups().size() == 2), function initFixup, file Atom.cpp, line 2021.
linker command failed with exit code 1 (use -v to see invocation)
Run Code Online (Sandbox Code Playgroud)
我没有发现任何其他类似的错误,有什么建议吗?
我尝试运行一个在 iOS 14/15/16 上完美运行的简单代码,但现在在 iOS 17 上使用 Xcode 15 时,它不再起作用了。我将附加下面的代码,显示一个表视图,该视图UIRefreshControl将在获取请求之前运行beginRefreshing(),但刷新控件在 iOS 17 上不再显示,并且我收到此警告,表示刷新控件收到了屏幕外的 beginRefreshing。
DispatchQueue.main.asyncAfter以下是使用显示简单表视图来模拟获取请求的代码。如果您尝试在 iOS 17 上运行它,刷新控件将不会在模拟提取请求之前显示。
class ViewController: UIViewController, UITableViewDataSource, UITableViewDelegate {
private let tableView = UITableView()
private let cellIdentifier = "cellIdentifier"
private let data = ["Cell 1", "Cell 2"]
private let refreshControl = UIRefreshControl()
override func viewDidLoad() {
super.viewDidLoad()
configureTableView()
refreshControl.beginRefreshing()
// Simulate fetch request
DispatchQueue.main.asyncAfter(deadline: .now() + 1, execute: {
self.setDataSource()
})
}
private func configureTableView() {
tableView.register(UITableViewCell.self, forCellReuseIdentifier: cellIdentifier)
refreshControl.addTarget(self, …Run Code Online (Sandbox Code Playgroud) 问题定义:
Appstore 要求 5.5 英寸屏幕截图。
我需要一个具有该屏幕尺寸的模拟器。
所以它一定是其中之一。
最新的 Xcode v15 模拟器仅支持 ios17
由于这 3 部手机不支持 ios17,模拟器应用程序不允许我创建它......
那么除了获取“iPhone SE”的 ss 并将其大小调整为“iPhone 8 Plus”之外我应该做什么
谢谢
在 Xcode 版本上,Xcode 15 之前我们有一个选项 Export
导出,然后保存副本并使用 Transporter 上传到应用程序商店
这已经消失了,我需要在上传之前获取 IPA 的副本,因为出于各种原因这是我公司的政策。
有一个新的#Preview宏(或者至少对我来说是新的)。SwiftLee 博客对此进行了讨论。我排除了下面示例的一些代码来问我的问题。
要在 SwiftUI 画布中预览代码,您过去必须编写代码:
struct ContentView: View {
var body: some View {
VStack {
Text("Hello World!")
}
}
}
struct ContentView_Previews: PreviewProvider {
static var previews: some View {
ContentView()
}
}
Run Code Online (Sandbox Code Playgroud)
...但是现在(2023 年 10 月)您可以编写代码:
struct ContentView: View {
var body: some View {
VStack {
Text("Hello World!")
}
}
}
#Preview {
ContentView()
}
Run Code Online (Sandbox Code Playgroud)
我的问题是:我们如何考虑 Apple 的#Preview宏语法重新编码以下内容,以便我们可以以编程方式更改在 SwiftUI-LivePreview-Canvas 上显示的设备:
struct ContentView_Previews: PreviewProvider {
static var previews: some View …Run Code Online (Sandbox Code Playgroud) 我尝试在 Xcode 15.0.1 上运行 iOS 15 模拟器,但收到错误:“无法启动模拟器。系统调用中断”
我试过:
以上方法都不适合我。
这是错误日志:
Domain: NSPOSIXErrorDomain
Code: 4
Failure Reason: Interrupted system call
User Info: {
DVTErrorCreationDateKey = "2023-10-26 16:42:13 +0000";
IDERunOperationFailingWorker = "_IDEInstalliPhoneSimulatorWorker";
Session = "com.apple.CoreSimulator.SimDevice.AA0321E3-E8C1-4B8D-A650-6078D711A67E";
}
--
Failed to start launchd_sim: could not bind to session, launchd_sim may have crashed or quit responding
Domain: com.apple.SimLaunchHostService.RequestError
Code: 4
--
Event Metadata: com.apple.dt.IDERunOperationWorkerFinished : {
"device_model" = "iPhone13,1";
"device_osBuild" = "15.0 (19A339)";
"device_platform" = "com.apple.platform.iphonesimulator";
"dvt_coredevice_version" = …Run Code Online (Sandbox Code Playgroud)