App design: macos, Xcode 16.4, Sequioa 15.5, it is sandboxed
Uses: Pods->HotKey for a global hotkey which xcode says "binary compatibility can't be guaranteed"
This app is on the Apple Store and supposedly apps on the Apple Store can't use global hotkeys. Someone internally, installed it from the store and the global hotkey works just fine.
I'm concerned for two potential problems;
I need to find a hotkey library or code that is known to work with a sandbox'd Apple Store app.
Why is it working now when everything I have read says it shouldn't.
Create elegant and intuitive apps that integrate seamlessly with Apple platforms.
Selecting any option will automatically load the page
Post
Replies
Boosts
Views
Activity
Our game was written by Cocos Creator version 3.8.5 TypeScript, which took the team nearly 2 years to complete.
At the beginning, my application was not defined as 4.3a. The first four reviews were all normal feedback questions. We revised the questions. After the last review rejected 4.3A, we also suspected that the reasons such as game creativity, game copywriting and game art might be close to other applications. Then our team added functional innovations that other applications in the Apple Store didn't have, and the original art was original. We created new art again because of 4.3a, and also revised many places that may be similar to other developers, including that we removed all SDK modules except Apple Pay and Apple Login, and it also showed that 4.3a refused, and we have revised no less than 20 versions or failed.
Our business code except the game engine code is newly developed by us and should not be duplicated with other developers' code. Is it because the JSC file and binary file output by JavaScript code are similar to those of other developers? Can we check our original code? We really want to put it on the Apple Store. We guarantee that the game was originally written. We can provide any proof, including but not limited to (GIT code submission records and codes from the beginning to today, art original proof, proof that the game mode innovation ability is not consistent with other developers' concepts, etc.)
Cocos creator Engine Address: https://www.cocos.com/creator-download
We have been put on the shelves in app stores such as WeChat applet and Android, and we are deeply loved by users in other channels.
Dear audit, can you manually check our game code and look at the game to experience it? I believe that as the greatest technology company in the world, Apple's official staff are very professional, knowledgeable and innovative, so that Apple players can get a unique and high-quality experience. However, this repeated 4.3a refusal makes me very suspicious. So many games that use cocos game engine in the world are on the Apple store, why do we independently write the rest of the code except the game engine?
Every time the reason for refusing is this passage, we have revised it for half a year, and no less than 20 game versions have been changed in half a year.
Hello,
The issues we previously identified still need your attention.
If you have any questions, we are here to help. Reply to this message in App Store Connect and let us know.
Review Environment
Submission ID: 68bd1e18-6eaa-4a19-976e-c7b2e1ff0e44
Review date: June 28, 2025
Version reviewed: 2.3.0
Guideline 4.3(a) - Design - Spam
We noticed your app still shares a similar binary, metadata, and/or concept as apps submitted to the App Store by other developers, with only minor differences.
Submitting similar or repackaged apps is a form of spam that creates clutter and makes it difficult for users to discover new apps.
Next Steps
Since we do not accept spam apps on the App Store, we encourage you to review your app concept and submit a unique app with distinct content and functionality.
Support
Reply to this message in your preferred language if you need assistance. If you need additional support, use the Contact Us module.
Consult with fellow developers and Apple engineers on the Apple Developer Forums.
Request an App Review Appointment at Meet with Apple to discuss your app's review. Appointments subject to availability during your local business hours on Tuesdays and Thursdays.
Provide feedback on this message and your review experience by completing a short survey.
Been messing with this for a while... And cannot figure things out...
Have a basic router implemented...
import Foundation
import SwiftUI
enum Route: Hashable {
case profile(userID: String)
case settings
case someList
case detail(id: String)
}
@Observable
class Router {
var path = NavigationPath()
private var destinations: [Route] = []
var currentDestination: Route? {
destinations.last
}
var navigationHistory: [Route] {
destinations
}
func navigate(to destination: Route) {
destinations.append(destination)
path.append(destination)
}
}
And have gotten this to work with very basic views as below...
import SwiftUI
struct ContentView: View {
@State private var router = Router()
var body: some View {
NavigationStack(path: $router.path) {
VStack {
Button("Go to Profile") {
router.navigate(to: .profile(userID: "user123"))
}
Button("Go to Settings") {
router.navigate(to: .settings)
}
Button("Go to Listings") {
router.navigate(to: .someList)
}
.navigationDestination(for: Route.self) { destination in
destinationView(for: destination)
}
}
}
.environment(router)
}
@ViewBuilder
private func destinationView(for destination: Route) -> some View {
switch destination {
case .profile(let userID):
ProfileView(userID: userID)
case .settings:
SettingsView()
case .someList:
SomeListofItemsView()
case .detail(id: let id):
ItemDetailView(id: id)
}
}
}
#Preview {
ContentView()
}
I then have other views named ProfileView, SettingsView, SomeListofItemsView, and ItemDetailView....
Navigation works AWESOME from ContentView. Expanding this to SomeListofItemsView works as well... Allowing navigation to ItemDetailView, with one problem... I cannot figure out how to inject the Canvas with a router instance from the environment, so it will preview properly... (No idea if I said this correctly, but hopefully you know what I mean)
import SwiftUI
struct SomeListofItemsView: View {
@Environment(Router.self) private var router
var body: some View {
VStack {
Text("Some List of Items View")
Button("Go to Item Details") {
router.navigate(to: .detail(id: "Test Item from List"))
}
}
}
}
//#Preview {
// SomeListofItemsView()
//}
As you can see, the Preview is commented out. I know I need some sort of ".environment" added somewhere, but am hitting a wall on figuring out exactly how to do this.
Everything works great starting from contentview (with the canvas)... previewing every screen you navigate to and such, but you cannot preview the List view directly.
I am using this in a few other programs, but just getting frustrated not having the Canvas available to me to fine tune things... Especially when using navigation on almost all views... Any help would be appreciated.
Where is the Figma App Icon Template mentioned in the Developer session https://developer.apple.com/videos/play/wwdc2025/361?
Since many users like me use Apple Music on Android, the app is almost as feature-rich as iOS. It would be fantastic if the developers could add the new iOS 26 features to the Android app, along with a minor UI change. I know it’s challenging to implement liquid glass on Android hardware or design, but features like auto-mix, pronunciation, and translation could be added.
kindly consider this request !!!!
Again and and again, I reach the point in a new application where I need to make structural changes in components and my data model, and the SwiftUI compiler fails to compile and just reports "I'm lost in the weeds", with no indication of what it was last working on, aside from a particular level in a multi-layered nested UI.
This typically happens when a sub-views construction is not coded correctly because I changed that view and am looking for what broke, by just letting the compiler tell me what is not compatible. This is how refactoring has been done for ages and it's just amazingly frustrating that Apple engineers don't seem to understand nor care about this issue enough to fix it.
Why does this problem persist through version after version of SwiftUI? Is no-one actually using it for anything?
Hi Support Team,
I am new here. I am unable to add my fonts to the asset catalog there is no option to add new font set when I click the plus sign.
When I drag my files in they show up as data.
I have a Contents.json in the font folder called BeVietnamProFont.font.
Is there something I am doing wrong?
Thanks SO much!
{
"info": { "version": 1, "author": "xcode" },
"properties": {},
"fonts": [
{ "filename": "BeVietnamPro-Black.ttf", "weight": "black", "style": "normal" },
{ "filename": "BeVietnamPro-BlackItalic.ttf", "weight": "black", "style": "italic" },
{ "filename": "BeVietnamPro-Bold.ttf", "weight": "bold", "style": "normal" },
{ "filename": "BeVietnamPro-BoldItalic.ttf", "weight": "bold", "style": "italic" },
{ "filename": "BeVietnamPro-ExtraBold.ttf", "weight": "heavy", "style": "normal" },
{ "filename": "BeVietnamPro-ExtraBoldItalic.ttf", "weight": "heavy", "style": "italic" },
{ "filename": "BeVietnamPro-ExtraLight.ttf", "weight": "ultralight", "style": "normal" },
{ "filename": "BeVietnamPro-ExtraLightItalic.ttf", "weight": "ultralight", "style": "italic" },
{ "filename": "BeVietnamPro-Light.ttf", "weight": "light", "style": "normal" },
{ "filename": "BeVietnamPro-LightItalic.ttf", "weight": "light", "style": "italic" },
{ "filename": "BeVietnamPro-Regular.ttf", "weight": "regular", "style": "normal" },
{ "filename": "BeVietnamPro-Italic.ttf", "weight": "regular", "style": "italic" },
{ "filename": "BeVietnamPro-Medium.ttf", "weight": "medium", "style": "normal" },
{ "filename": "BeVietnamPro-MediumItalic.ttf", "weight": "medium", "style": "italic" },
{ "filename": "BeVietnamPro-SemiBold.ttf", "weight": "semibold", "style": "normal" },
{ "filename": "BeVietnamPro-SemiBoldItalic.ttf", "weight": "semibold", "style": "italic" },
{ "filename": "BeVietnamPro-Thin.ttf", "weight": "thin", "style": "normal" },
{ "filename": "BeVietnamPro-ThinItalic.ttf", "weight": "thin", "style": "italic" }
]
}

In macOS 26 beta 2 it is possible to set an edge effect style via UIKit using the .scrollEdgeEffectStyle property. (note: I haven't tested this, I'm just looking at the documentation).
See: https://developer.apple.com/documentation/swiftui/view/scrolledgeeffectstyle(_:for:)
Is there an equivalent API for AppKit-based apps? I can't seem to find any additions in NSView or NSScrollView or elsewhere that seem relevant.
Scroll edge effects are mentioned in the "Build an AppKit app with the new design" talk here, which heavily implies it must be possible from AppKit:
https://developer.apple.com/videos/play/wwdc2025/310/?time=567
I've observed a difference in the layout of menu items within ContextMenu and Menu when comparing system applications to my own SwiftUI app, specifically concerning the order of icons and titles.
On iOS 26, system apps (as shown in the image in the "System App" column) appear to display the item's icon before its title for certain menu items. However, in my SwiftUI app, when I use a Label (e.g. Label("Paste", systemImage: "doc.on.clipboard")) or an HStack containing an Image and Text, the icon consistently appears after the title within both ContextMenu and Menu items.
I'm aiming to achieve the "icon first, then title" layout as seen in system apps. My attempts to arrange this order using HStack directly within the Button's label closure:
Menu {
Button { /* ... */ } label: {
HStack {
Image(systemName: "doc.on.clipboard")
Text(String(localized: "Paste"))
}
}
// ...
} label: {
Text("タップミー")
}
seem to be overridden or restricted by the OS, which forces the icon to the leading position (as shown in the image in the "Custom App" column).
System App
Custom App
Is there a specific SwiftUI modifier, or any other setting I might have overlooked that allows developers to control the icon/title order within ContextMenu or Menu items to match the system's behavior? Or is this a system-controlled layout that app developers currently cannot customize, and we need to wait for potential changes from Apple to expose this capability for in-app menus?
Thanks in advance!
Hi,
there is a issue that iOS background NFC scanning will only provide a notification result, It need user click to enter my APP, can I have any method to enter my APP directly without user action ?
My apple app rejected on 9 of July 2025 but I didn't recieve any confirmation on mail can you please provide any written confirmation why my mail is not approved with all possibe conditions.
I'm having some difficulty with a tabview and getting the new search bar to expand from the search icon.
The tabview works so far, it looks fine, tapping on the search opens the view I will be modifying to use the search bar.
snip from my tabview:
var body: some View {
TabView(selection: $selectedTab) {
Tab("Requests", systemImage: "list.bullet", value: .requests) {
OverseerrRequestView(integrationId: integrationId)
}
Tab("Users", systemImage: "person.3", value: .users) {
OverseerrUserView(integrationId: integrationId)
}
Tab("Search", systemImage: "magnifyingglass", value: .search, role: .search) {
NavigationStack {
OverseerrView(integrationId: integrationId)
.searchable(text: $searchString)
}
}
}
.modifier(TabBarMinimizeIfAvailable())
.navigationTitle("Overseerr")
.modifier(NavigationBarInlineIfAvailable())
}
Currently in that view, I have temporarily constructed a search bar that handles the search function (we're searching externally, not just contents in the view)
snip from my view:
.safeAreaInset(edge: .bottom) {
HStack {
Image(systemName: "magnifyingglass")
.foregroundColor(.secondary)
TextField("Search movies, TV or people", text: $query)
.focused($isSearchFieldFocused)
.onSubmit {
Task { await performSearch() }
}
.submitLabel(.search)
.padding(.vertical, 8)
.padding(.horizontal, 4)
if !query.isEmpty {
Button(action: {
query = ""
searchResults = []
Task { await loadTrending() }
}) {
Image(systemName: "xmark.circle.fill")
.foregroundColor(.secondary)
}
}
}
.padding(.horizontal)
.padding(.vertical, 5)
.adaptiveGlass()
.shadow(radius: 8)
.onAppear {
isSearchFieldFocused = false
}
}
Notes: .adaptiveGlass() is a modifier I created to easily apply liquid glass or not depending on OS version, so as not to require the use of #if or #available in the views.
The end goal here:
have the tab view search "tab" open the OverseerrView.swift (Discover) view, activate the animated search bar, and search the input text to the performSearch() function.
I have similar needs on other tab views, and am trying to move away from needing to manually create a search bar, when one should work from the .search role.
Is there an example project with this search in the tab that I can reference? the landmarks sample project sadly did not include one.
Someone smarter than me please tell me if this will work... I want to have an edit screen for a SwiftData class. Auto Save is on, but I want to be able to revert changes. I have read all about sending a copy in, sending an ID and creating a new context without autosave, etc.
What about simply creating a second set of ephemeral values in the actual original model. initialize them with the actual fields. Edit them and if you save changes, migrate that back to the permanent fields before returning.
Don't have to manage a list of @State variables corresponding to every model field, and don't have to worry about a second model context.
Anyone have any idea of the memory / performance implications of doing it this way, and if it is even possible? Does this just make a not quite simple situation even more complicated? Haven't tried yet, just got inspiration from reading some medium content on attributes on my lunch break, and wondering if I am just silly for considering it.
Hello! I’m excited to see that Look to Scroll has been included in visionOS 26 Beta. I’m aiming to achieve a feature where the user’s gaze at a specific edge automatically scrolls to that position. However, I’ve experimented with ScrollView and haven’t been able to trigger this functionality. Could you advise if additional API modifiers are necessary? Thank you!
I am trying to create a menu picker for two or three text items. Small miracles, but I have it basically working. Problem is it uses a set, and I want to pass arrays. I need to modify PickerView so the Bound Parameter is an [String] instead of Set. Have been fighting this for a while now... Hoping for insights.
struct PickerView: View {
@Binding var colorChoices: Set<String>
let defaults = UserDefaults.standard
var body: some View {
let possibleColors = defaults.object(forKey: "ColorChoices") as? [String] ?? [String]()
Menu {
ForEach(possibleColors, id: \.self) { item in
Button(action: {
if colorChoices.contains(item) {
colorChoices.remove(item)
} else {
colorChoices.insert(item)
}
}) {
HStack {
Text(item)
Spacer()
if colorChoices.contains(item) {
Image(systemName: "checkmark")
}
}
}
}
} label: {
Label("Select Items", systemImage: "ellipsis.circle")
}
Text("Selected Colors: \(colorChoices, format: .list(type: .and))")
}
}
#Preview("empty") {
@Previewable @State var colorChoices: Set<String> = []
PickerView(colorChoices: $colorChoices)
}
#Preview("Prefilled") {
@Previewable @State var colorChoices: Set<String> = ["Red","Blue"]
PickerView(colorChoices: $colorChoices)
}
My Content View is suppose to set default values the first time it runs, if no values already exist...
import SwiftUI
struct ContentView: View {
@State private var viewDidLoad: Bool = false
var body: some View {
HomeView()
.onAppear { // The following code should execute once the first time contentview loads. If a user navigates back to it, it should not execute a second time.
if viewDidLoad == false {
viewDidLoad = true
// load user defaults
let defaults = UserDefaults.standard
// set the default list of school colors, unless the user has already updated it prior
let defaultColorChoices: [String] = ["Black","Gold","Blue","Red","Green","White"]
let colorChoices = defaults.object(forKey: "ColorChoices") as? [String] ?? defaultColorChoices
defaults.set(colorChoices, forKey: "ColorChoices")
}
}
}
}
#Preview {
ContentView()
}
PickLoader allows you to dynamically add or delete choices from the list...
import SwiftUI
struct PickLoader: View {
@State private var newColor: String = ""
var body: some View {
Form {
Section("Active Color Choices") {
// we should have set a default color list in contentview, so empty string should not be possible.
let defaults = UserDefaults.standard
let colorChoices = defaults.object(forKey: "ColorChoices") as? [String] ?? [String]()
List {
ForEach(colorChoices, id: \.self) { color in
Text(color)
}
.onDelete(perform: delete)
HStack {
TextField("Add a color", text: $newColor)
Button("Add"){
defaults.set(colorChoices + [newColor], forKey: "ColorChoices")
newColor = ""
}
}
}
}
}
.navigationTitle("Load Picker")
Button("Reset Default Choices") {
let defaults = UserDefaults.standard
//UserDefaults.standard.removeObject(forKey: "ColorChoices")
let colorChoices: [String] = ["Black","Gold","Blue","Red","Green","White"]
defaults.set(colorChoices, forKey: "ColorChoices")
}
Button("Clear all choices") {
let defaults = UserDefaults.standard
defaults.removeObject(forKey: "ColorChoices")
}
}
}
func delete(at offsets: IndexSet) {
let defaults = UserDefaults.standard
var colorChoices = defaults.object(forKey: "ColorChoices") as? [String] ?? [String]()
colorChoices.remove(atOffsets: offsets)
defaults.set(colorChoices, forKey: "ColorChoices")
}
#Preview {
PickLoader()
}
And finally HomeView is where I am testing from - to see if binding works properly...
import SwiftUI
struct HomeView: View {
//@State private var selection: Set<String> = []
//@State private var selection: Set<String> = ["Blue"]
@State private var selection: Set<String> = ["Blue", "Red"]
var body: some View {
NavigationStack {
List {
Section("Edit Picker") {
NavigationLink("Load Picker") {
PickLoader()
}
}
Section("Test Picker") {
PickerView(colorChoices: $selection)
}
Section("Current Results") {
Text("Current Selection: \(selection, format: .list(type: .and))")
}
}
.navigationBarTitle("Hello, World!")
}
}
}
#Preview {
HomeView()
}
If anyone uses this code, there are still issues - buttons on Loader don't update the list on the screen for one, and also dealing with deleting choices that are in use - how does picker deal with them? Probably simply add to the list automatically and move on. If anyone has insights on any of this also, great! but first I just need to understand how to accept an array instead of a set in pickerView.
I have tried using a computed value with a get and set, but I can't seem to get it right.
Thanks for any assistance! Cheers!
Does anyone have any documentation for how to achieve the floating search tab item in UIKit apps that use UITabBarController?
The Liquid Glass UIKit video had code for minimizing the tab bar on scroll down, but I didn't see anything on keeping the search button locked to the bottom trailing edge (as in this screenshot below).
When using UIPageViewController inside a UITabBarController on iOS 26 with Liquid Glass adoption, visiting the PageViewController tab applies a blur effect to the navigation bar and tab bar even though the current child view controller of the pageView is not scrollable and does not reach behind these bars.
Questions:
Is this the expected behavior that the pageview's internal scroll view causes the bars to blur regardless of the page view's child content’s scrollability?
If so, is there an official way to make the blur effect appear only when the pageview's current child view controller actually scrolls behind the navigation bar or tab bar, and not in static cases?
Tried the same in SwiftUI using TabView and TabView with page style. Facing the same issue there as well.
Sample screenshots for reference,
Sample SwiftUI code,
struct TabContentView: View {
var body: some View {
TabView {
// First Tab: Paging View
PagingView()
.tabItem {
Label("Pages", systemImage: "square.fill.on.square.fill")
}
// Second Tab: Normal View
NavigationStack {
ListView()
}
.tabItem {
Label("Second", systemImage: "star.fill")
}
// Third Tab: Normal View
PageView(color: .blue, text: "Page 3")
.tabItem {
Label("Third", systemImage: "gearshape.fill")
}
}
.ignoresSafeArea()
}
}
struct PagingView: View {
var body: some View {
TabView {
PageView(color: .red, text: "Page 1")
PageView(color: .green, text: "Page 2")
PageView(color: .blue, text: "Page 3")
}
.tabViewStyle(.page) // Enables swipe paging
.indexViewStyle(.page(backgroundDisplayMode: .always))
.ignoresSafeArea()// Dots indicator
}
}
Hey all — I’ve been building out my first set of Game Center Achievements for a game I’m working on, and I’ve run into something odd with the image quality.
The specs say to upload icons at 512x512 or 1024x1024@2x. I’ve been uploading 1024x1024 PNGs (without explicitly naming them “@2x” since there’s only one upload slot), assuming that Game Center would just handle the scaling automatically — kind of like how a lot of things are getting more streamlined across platforms lately.
But in testing, the icons are showing up a bit blurry, especially in the Game Center interface. It’s not horrible, but it’s definitely softer than I expected — more like low-res than Retina.
All my test devices (outside the Simulator) are running iOS 26, so I’m also wondering if this might be a beta-related display bug?
Has anyone else run into this? Curious if I’m missing a best practice here, or if I really do need to ensure I’m uploading it with the @2x suffix, or maybe something else entirely?
Thanks!
Hello Apple App Review Team,
We are using Privy to enable sign in with Farcaster in our app. Privy is a 3rd party authentication SDK, and it currently opens the authentication URL using the system browser.
Unfortunately, this behavior is handled internally by Privy and we do not have access or control to override it in order to present the sign-in flow in-app using SFSafariViewController.
We understand the importance of maintaining a seamless and secure user experience, and we fully support the use of SFSafariViewController or ASWebAuthenticationSession. However, since Privy does not expose an option to change this behavior at the moment, we are limited by their current implementation.
We have reached out to the Privy team requesting a change or improvement that would allow us to use SFSafariViewController instead of the external browser. In the meantime, we would appreciate your guidance on how to proceed, or whether an exception could be granted due to this 3rd party SDK limitation.
Thank you for your understanding and support.
Hi everyone,
I’m testing our SwiftUI app on both Xcode simulator and a real iPhone. On the simulator, everything looks clean and aligned. But when I run it on an actual iPhone (same build, iOS 18), the layout looks broken—fonts overlap, spacing is off, and elements are misaligned.
Both screenshots are from the exact same screen and time. First is simulator, second is iPhone.
Any idea why this difference happens? Is there something I should check in terms of rendering or layout settings?
Thanks in advance!