Good day!
When your project have total 887 or more SPM local targets and then you try to build it, xcodebuild will be crash.
Crash log:
SWBBuildService-2025-08-11-151103.ips
Thread 2 Crashed:: Dispatch queue: com.apple.root.default-qos.cooperative
0 libxpc.dylib 0x197c4826c _availability_version_check + 8
1 libswiftCore.dylib 0x1a9b44428 __isPlatformVersionAtLeast + 92
2 libswiftCore.dylib 0x1a9a6e054 _swift_allocObject_ + 1100
3 SWBMacro 0x104a9c408 specialized _ArrayBuffer._consumeAndCreateNew(bufferIsUnique:minimumCapacity:growForAppend:) + 116
4 SWBMacro 0x104a97b58 specialized Array.append<A>(contentsOf:) + 116
5 SWBMacro 0x104a954e8 MacroEvaluationProgram.executeInContext(_:withResultBuilder:alwaysEvalAsString:) + 160
6 SWBMacro 0x104a96548 MacroEvaluationProgram.executeInContext(_:withResultBuilder:alwaysEvalAsString:) + 4352
7 SWBMacro 0x104a96548 MacroEvaluationProgram.executeInContext(_:withResultBuilder:alwaysEvalAsString:) + 4352
8 SWBMacro 0x104a96548 MacroEvaluationProgram.executeInContext(_:withResultBuilder:alwaysEvalAsString:) + 4352
9 SWBMacro 0x104a96548 MacroEvaluationProgram.executeInContext(_:withResultBuilder:alwaysEvalAsString:) + 4352
10 SWBMacro 0x104a96548 MacroEvaluationProgram.executeInContext(_:withResultBuilder:alwaysEvalAsString:) + 4352
But if you try to build Package.swift via swift build command, it works.
Here you can open sample project:
Just Package.swift with SPM 900 targets
Open Package.swift via Xcode 26 any beta and try to build
Xcode workspace with SPM 900 targets
Open MyApp.xcworkspace and try to build
You can also make by self the Package.swift (also make required directories for SPM):
// swift-tools-version: 5.9
import PackageDescription
// let count = 800 // no crash
let count = 900 // crash
let targetsNames = (1...count).map { "Pkg1Target\($0)" }
let targets = targetsNames.map { Target.target(name: $0) }
let package = Package(
name: "Pkg1TargetLibrary",
platforms: [.iOS(.v16)],
products: [
.library(name: "Pkg1TargetLibrary", targets: targets.map(\.name)),
],
targets: targets
)
Selecting any option will automatically load the page
Post
Replies
Boosts
Views
Activity
Environment
iOS 26 (23A343)
Xcode 26
Reproduces on device and Simulator
Description
When presenting a SwiftUI WebView (native iOS 26 component) or a WKWebView/UIWebView via UIViewRepresentable, focusing a text field inside the web view and then dismissing it breaks the keyboard layout behavior.
After returning to the main app, tapping any TextField causes the keyboard to cover bottom controls (e.g. buttons). Expected safe area insets are not applied.
The issue is only resolved after closing and reopening the keyboard once.
Steps to Reproduce
Open a SwiftUI screen with WebView (via .sheet or NavigationLink).
Inside the web view, tap a text field to show the keyboard.
Dismiss the web view.
Tap a TextField in the main app.
Expected Result
Layout should adjust correctly.
Bottom controls stay visible above the keyboard.
Actual Result
Keyboard covers bottom controls.
Insets are ignored until the keyboard is dismissed and reopened.
Notes
Reproduces with:
Native SwiftUI WebView (iOS 26)
WKWebView and UIWebView via UIViewRepresentable
Presentation style (.sheet or navigation push) does not matter.
Example video: https://youtu.be/Epgoz1vETKU
FB: FB20386257
Sample Code
import SwiftUI
import WebKit
struct ContentView: View {
@State var url: URL?
@FocusState private var isFocused: Bool
var body: some View {
VStack {
TextField("TextField", text: .constant(""))
.focused($isFocused)
Button("HIDE KEYBOARD") { isFocused = false }
Spacer()
Button("ACTION") {
url = URL(string: "https://google.com")
}
}
.sheet(item: $url) { value in
NavigationStack {
WebView(url: value)
.toolbar {
ToolbarItem(placement: .topBarLeading) {
Button("CLOSE") { url = nil }
}
}
}
}
}
}
extension URL: Identifiable {
public var id: String { absoluteString }
}