SwiftUI Gestures prevent subview gesture when build with XCode 16 in iOS 18

I have a view with some buttons, and add 2 gestures using simultaneously. My app works well when built with XCode less than 16, or run on iOS less than 18.0.

Example code is below:

VStack(spacing: 0) {
            Button {
                print("button tapped")
            } label: {
                Rectangle()
                    .foregroundColor(.red)
            }
            .frame(height: 100)
        }
        .gesture(
            DragGesture(minimumDistance: 0)
                .onEnded { value in
                    print("single tap")
                }
                .simultaneously(with:
                    TapGesture(count: 2).onEnded {
                        print("double tap")
                    }
                )
        )
        .frame(width: 200, height: 200)
        .border(Color.purple)

I expect the action on Button should be recognized and print out button tapped, but only single tap and double tap are recognized