I'm currently in the process of submitting a new app with a single non-consumable In-App Purchase.
After creating the IAP in AppStore Connect, I created a synced StoreKit config in Xcode which correctly loaded the purchase.
After making sure that the transaction works as expected within the app, I submitted the app in AppStore connect, including the In-App Purchase.
Since then, the In-App Purchase can not be found in the StoreKit configuration and isn't displayed in the app, which lead to the submission being rejected.
As requested by the review team, I have resubmitted the In-App Purchase, so it's currently "Waiting for Review" but still not showing up in the StoreKit configuration in Xcode.
I'm not quite sure what I'm doing wrong here. I have other apps live in the AppStore with IAPs and no outstanding agreements to sign.
Selecting any option will automatically load the page
Post
Replies
Boosts
Views
Activity
The new "elevated" tab bar in iPadOS 18 covers the Navigation-/Toolbar of views within.
A very simple example:
import SwiftUI
@main
struct SampleApp: App {
@State var selection: Int?
var body: some Scene {
WindowGroup {
TabView {
NavigationSplitView {
List(0..<10, selection: $selection) { item in
Text("Item \(item)")
.tag(item)
}
} detail: {
if let selection {
Text("Detail for \(selection)")
.navigationTitle("Item \(selection)")
.navigationBarTitleDisplayMode(.inline)
} else {
Text("No selection")
}
}.tabItem {
Label("Items", systemImage: "list.bullet")
}
Text("Tab 2")
.tabItem {
Label("Tab 2", systemImage: "list.bullet")
}
Text("Tab 3")
.tabItem {
Label("Another Tab", systemImage: "list.bullet")
}
}
}
}
}
I've tried using .safeAreaInset/.safeAreaPadding for the detail views, but they don't affect the NavigationBar, only the content within.
Is there a way to move the NavigationBar down, so its items stay visible?
When a large number of NavigationLinks is within a LazyVStack (or LazyVGrid), ressource usage gets higher (and stays high) the further a user scrolls down.
A simple example to reproduce this:
NavigationStack {
ScrollView {
LazyVStack {
ForEach(0..<5000) { number in
NavigationLink(value: number) {
Text("Number \(number)")
}
}
}
}
.navigationDestination(for: Int.self) { number in
Text("Details for number \(number)")
}
}
List does not exhibit this behavior but is not suitable for my use case.
When using LazyVGrid within a ScrollView with the .searchable modifier, scrolling is impossible on iPhone 15 (I’m assuming other older devices are affected too). This behavior does not occur on iPhone 16 and newer.
This also only happens, when the search bar is placed at the top, for example if the ScrollView is within a TabView.
Here's a short screen recording of the issue:
And this is a minimal example causing the issue:
import SwiftUI
struct ContentView: View {
var body: some View {
TabView {
Tab("Text", systemImage: "gear") {
ExampleTab()
}
}
}
}
struct ExampleTab: View {
@State private var searchText: String = ""
var body: some View {
NavigationStack {
ScrollView {
LazyVGrid(
columns: [GridItem(
.adaptive(minimum: 120)
)],
spacing: 20
) {
ForEach(1..<100) { index in
Text("Test \(index)")
}
}
}
.searchable(text: self.$searchText)
}
}
}