I have noticed that the performance drop on SpriteKit-based projects running on iOS 26 is still ongoing
With iOS 26 back in Sep 2025 a framerate problem was introduced. My app was always running smoothly with 60fps even on very old devices suddenly started to stutter with 40fps - and lower on a rather normal iPhone 13.
This problem continued with BETA 26.1 The problem was fixed in 26.2. But 26.3 brought the problem back and its still ongoing with 26.4 of yesterday
This is easily reproducible with a very simple example
//
// BareboneSpriteKitApp.swift
// BareboneSpriteKit
//
// Created by Bernd Beyreuther on 24.02.26.
//
import SwiftUI
import SpriteKit
@main
struct BareboneSpriteKitApp: App {
var body: some Scene {
WindowGroup {
BareboneSceneView()
}
}
}
final class BareboneScene: SKScene {
override func didMove(to view: SKView) {
size = view.bounds.size
scaleMode = .resizeFill
anchorPoint = CGPoint(x: 0.5, y: 0.5)
backgroundColor = .darkGray
let s = SKSpriteNode(color: .cyan, size: CGSize(width: 64, height: 64))
addChild(s)
let action = SKAction.rotate(byAngle: .pi, duration: 2)
s.run(.repeatForever(action))
let t = SKLabelNode(text: deviceInfoString())
t.fontSize = 15
t.position.y = -100
addChild(t)
}
}
struct BareboneSceneView: View {
var body: some View {
SpriteView(
scene: BareboneScene(),
debugOptions: [.showsFPS]
)
.ignoresSafeArea()
}
}
func deviceInfoString() -> String {
let os = ProcessInfo.processInfo.operatingSystemVersion
let osString = "iOS \(os.majorVersion).\(os.minorVersion).\(os.patchVersion)"
let model = UIDevice.current.model // "iPhone", "iPad"
let machine = {
var sysinfo = utsname()
uname(&sysinfo)
return withUnsafePointer(to: &sysinfo.machine) { ptr -> String in
ptr.withMemoryRebound(to: CChar.self, capacity: 1) { cptr in
String(cString: cptr)
}
}
}() // z.B. "iPhone15,2"
return "Model Identifier: \(model) (\(machine)), \(osString)"
}
I file a bugreport via Feedback Assistant FB22038921
The problem is no around for such a long time ! This is deeply concerning, because it questions if it is really feasable to continue to develop using Spritekit ?