I use swiftui to build apps on iPhone and iPad.
There is no problem with the iPhone app.
The game display is fully shown on iPhone.
However, for the iPad, the game display is not shown and the screen goes black.
I had to tap the button on the upper left side.(looks like a side view button)
After that, the game display is only shown in the left side in a very small size.
How can I make the game display fully shown in the iPad?
Overview
Selecting any option will automatically load the page
Post
Replies
Boosts
Views
Activity
Hello,
I recently had my Electron app notarized by Apple and then performed the following steps:
Stapling the Notarization Ticket:
xcrun stapler staple "appPath/Aiparalegal.app"
Zipping the App for Distribution:
ditto -c -k --keepParent "appPath/Aiparalegal.app" theAIParalegal.zip
However, after unzipping and attempting to launch the app, macOS displays the following message:
Apple could not verify "theAIParalegal" is free of malware that may harm your Mac or compromise your privacy.
Yet, when I run validation using:
xcrun stapler validate "theAIParalegal.app"
I receive confirmation:
The validate action worked!
spctl -a -vvv -t install "theAIParalegal.app"
theAIParalegal.app: accepted
source=Notarized Developer ID
origin=Developer ID Application: NIPartnership LLC (M92N2796Q9)
Could you help me understand why the notarization validation appears successful, yet macOS still displays this security warning? Any advice on how to resolve this would be greatly appreciated.
Thank you!
I am using a URLSessionWebSocketTask. When trying to receive messages while the app is backgrounded, the receive() method fails with an NSError where the domain is NSPOSIXErrorDomain and the code is ECONNABORTED. That behavior is good. However, when this happens, the URLSessionWebSocketTask reports a closeCode of invalid, which is supposed to denote that the connection is still open. However, the connection state property is reporting completed. I feel that the closeCode property should be reporting something like abnormalClosure in this case. Either way, this seems like a bug or the documentation is incorrect.
On macOS I'm seeing that only one .fileImporter modifier is called when two are defined. Anybody seeing the same issue?
The scenario I have is two different file sources share the same file extension but they need to be loaded by two slightly different processes.
Select the first option. Nothing happens. Select the second option, it works. Seeing this also in another project.
Because the isPresented value is a binding, it isn't straightforward to logically OR the boolean @States and conditionally extract within the import closure.
@main
struct Dual_File_Importer_ExpApp: App {
@State private var showFirstDialog = false
@State private var showSecondDialog = false
var body: some Scene {
DocumentGroup(newDocument: Dual_File_Importer_ExpDocument()) { file in
ContentView(document: file.$document)
.fileImporter(isPresented: $showFirstDialog, allowedContentTypes: [.commaSeparatedText]) { result in
print("first")
}
.fileImporter(isPresented: $showSecondDialog, allowedContentTypes: [.commaSeparatedText]) { result in
print("second")
}
}
.commands {
CommandGroup(after: .importExport)
{
Button("Import First")
{
showFirstDialog.toggle()
}
Button("Import Second")
{
showSecondDialog.toggle()
}
}
}
}
}```
Topic:
UI Frameworks
SubTopic:
SwiftUI
It is a bit strange what Xcode Cloud has implemented on how they manage the Build Numbers https://developer.apple.com/documentation/xcode/setting-the-next-build-number-for-xcode-cloud-builds
Intead of just looking at the project configuration as the source of truth, they run their own build number and totally ignore the project config value. Also, interesting that instead of solving it they have a "Set Build Number" menu in the settings which is a pain to manually manage everytime they got out of sync.
Is there any way to turn this madness off and consider the project config as the source of truth?
Hello,
I am new application developer that has been developing several applications in the productivity and finance sections concurrently for about 1 year. One of my applications is nearly ready to be submitted to the App Store.
I have received a lot of discouragement from people who have submitted apps in regards to putting submitting as a paid app, however due to all of the upfront and ongoing investment I've made, I do not wish to release my application for free initially.
(I am learning how to best integrate storekit and in-app purchases and subscriptions, but I'm not ready to implement that yet)
QUESTION:
When releasing an app as a paid app and then converting to a FREE app with subscription later on, is there anything I need to be aware of technically or in regards to guidelines so I don't shoot myself in the foot when changing pricing?
Any advice is greatly appreciated. Thank you.
Topic:
App Store Distribution & Marketing
SubTopic:
General
Tags:
App Store
App Review
In-App Purchase
I'm working on implementing file moving with NSFileCoordinator. I'm using the slightly newer asynchronous API with the NSFileAccessIntents. My question is, how do I go about notifying the coordinator about the item move? Should I simply create a new instance in the asynchronous block? Or does it need to be the same coordinator instance?
let writeQueue = OperationQueue()
public func saveAndMove(data: String, to newURL: URL) {
let oldURL = presentedItemURL!
let sourceIntent = NSFileAccessIntent.writingIntent(with: oldURL, options: .forMoving)
let destinationIntent = NSFileAccessIntent.writingIntent(with: newURL, options: .forReplacing)
let coordinator = NSFileCoordinator()
coordinator.coordinate(with: [sourceIntent, destinationIntent], queue: writeQueue) { error in
if let error {
return
}
do {
// ERROR: Can't access NSFileCoordinator because it is not Sendable (Swift 6)
coordinator.item(at: oldURL, willMoveTo: newURL)
try FileManager.default.moveItem(at: oldURL, to: newURL)
coordinator.item(at: oldURL, didMoveTo: newURL)
} catch {
print("Failed to move to \(newURL)")
}
}
}
Topic:
App & System Services
SubTopic:
Processes & Concurrency
Tags:
Files and Storage
Swift
iCloud Drive
Concurrency
I'm a first time developer for Swift, (getting on a bit!) but after programming in VB back in the late 90s I wanted to write an app for iPhone. I think I might have gone about it the wrong way, but I've got an app that works great on my iPhone or works great on my iPad. It saves the data persistently on device, but, no matter how much I try, what I read and even resorting to AI (ChatGPT & Gemini) I still can't get it to save the data on iCloud to synchronise between the two and work across the devices. I think it must be something pretty fundamental I'm doing (or more likely not doing) that is causing the issue.
I'm setting up my signing and capabilities as per the available instructions but I always get a fatal error. I think it might be something to do with making fields optional, but at this point I'm second guessing myself and feeling a complete failure. Any advice or pointers would be really gratefully appreciated. I like my app and would like eventually to get it on the App Store but at this point in time I feel it should be on the failed projects heap!
I've even tried a new Xcode project for iOS and asking it to use SwiftData and CloudKit - the default project should work - right? But it absolutely doesn't for me. Please send help!!
My Mac app and its Safari web extension share an app group, and I want to notify the web extension native process when the app makes a change to the app group NSUserDefaults, but I can't find a good way to do this.
According to the documentation, "You can use key-value observing to register observers for specific keys of interest in order to be notified of all updates, regardless of whether changes are made within or outside the current process." In my testing, however, this doesn't work in the web extension process. I'm using NSUserDefaults addObserver forKeyPath, but observeValueForKeyPath never gets called.
I've also tried NSDistributedNotificationCenter, but the web extension process doesn't receive the notifications sent by the main app.
Are either of these supposed to work? If not, are there any alternatives?
As far as I know, Apple hasn’t opened access to the Vision Pro camera for developers yet, so I’m trying to find possible workarounds within the current capabilities. I’m wondering if there’s any way to apply a mesh to a person in the scene in Vision Pro, or if there’s an alternative approach to roughly detect a human shape in front of the user?
I would like to modify the content of a published LocationNode upon been clicked by the user. But unfortunately:
func hitTest(_ point: CGPoint, options: [SCNHitTestOption : Any]? = nil) -> [SCNHitTestResult]
returns an SCNNode array from which it is impossible to retrieve the original LocationNode being inserted in order to be able to modify it.
Of course the solution would be to either insert the SCNNode corresponding to the inserted LocationNode in a custom class or conversely insert the identifier of the custom object as a tag of the LocationNode, in order to solve the issue. But both options seem impossible to implement.
May anyone help me?
Hello All -
I'm attempting to enable my companies app to add credit card to Apple Wallet. Part of our app enables customers to generate new virtual cards on demand and I'm attempting to enable the ability to add these cards to the Apple Wallet. Everything seems to be working all the way to the final stage of the process where I get a PKPassKitErrorDomain systemCancelled and I can't seem to find any clues as to why the system is canceling.
For context -
I have the com.apple.developer.payment-pass-provisioning entitlement. I have both the Wallet and In-App Provisioning capabilities enabled in the App. I have defined a PKAddPaymentPassViewControllerDelegate class that implements both the generateRequest and didFinishAdding methods. I'm leveraging PKAddPaymentPassViewController in SwiftUI by using a UIViewControllerRepresentable implementing class that returns the view controller properly when makeUIViewController is called. I build a PKAddPaymentPassRequest object and ensure that it is properly filled with encryptedPassData, activationData, and ephemeralPublicKey.
As a user I'm able to go to the virtual card view, open the instance of PKAddPaymentPassViewController, select the destination for the card, see the Add Card information. I get to the point where the view tells me it's contacting the card issuer and then I get an error message "Could Not Add Card - Try again later or contact your card issuer for more information" with a "Set Up Later" button. I then get the system canceled error.
I should mention that I'm able to add these virtual cards manually via the Apple Wallet. The process works similarly but requires me to provided an OTP to conclude the process. This flow works and I have active cards in my wallet.
I'm having a very hard time figuring out how to try and debug this issue further. The only error that the system returns is the system canceled notice.
Any insight into where I might be missing something or how to debug the issue further would be greatly appreciated. Any thought on how I could debug this further would also be greatly appreciated.
Thanks in advance - AYAL
Topic:
App & System Services
SubTopic:
Apple Pay
Hello Developer Community and Apple Staff,
Like many others I've seen posting here recently, I'm facing persistent Guideline 4.3 Spam rejections for my puzzle games. I'm hoping for guidance as I believe I've identified and corrected the initial technical cause, but I'm still facing rejection and need help understanding why.
My Situation:
I develop grid-based puzzle games in Unity, often using my own well-developed reusable codebase (for GridManager, Tile logic, etc.).
My last successfully approved app ("Seat Em All!") used my standard workflow: New empty Unity project + import my necessary code = No 4.3 issues.
The 4.3 rejections started with my next game ("Twisty Train"). My mistake: Duplicated the entire "Seat Em All!" project folder, including all .meta files/GUIDs. I now understand this likely triggered spam flags due to identical technical IDs, despite adding new mechanics.
My subsequent game ("Egg Pack") unfortunately repeated this flawed copy process from "Twisty Train" and was also rejected under 4.3.
Corrective Actions Taken for Latest Submission:
For my most recent submission, ("Egg Factory: Sorting Puzzle" - conceptually similar to Egg Pack but built to fix the issue), I took specific, major steps to address the technical duplication:
Used a new, unique Bundle ID.
Used the "GUID Fixer" tool to regenerate unique GUIDs for ALL assets within the entire project folder.
Used a new app name and icon.
The Current Problem:
Despite these steps to eliminate technical duplication and ensure unique identifiers, "Egg Factory: Sorting Puzzle" was still rejected under Guideline 4.3 Spam.
Seeking Specific Feedback & Potential Causes:
I'm now trying to understand what, beyond unique technical identifiers, is causing this. I design my games ("Seat Em All!", "Twisty Train", "Egg Factory") to have distinct core mechanics and themes, even if they share my Unity codebase and a visual style.
Could the automated review be detecting structural similarities in my own reusable code, even with unique GUIDs, and potentially misinterpreting it as template usage (similar to issues some devs using specific game engines have reported)?
Is the consistent visual art style across different themes being flagged?
Is the core puzzle/sorting loop considered too similar despite mechanical differences?
Request for Call:
Getting generic 4.3 feedback isn't helping me resolve this. I've seen other developers mention that a direct call with the App Review team was invaluable for clarifying complex situations like this. Would it be possible to schedule a call to discuss my case? Understanding the specific reason "Egg Factory" is still flagged, despite the technical fixes, is crucial for me to move forward correctly and ensure compliance.
Any insights from the community, or specific guidance/a call from Apple Staff, would be incredibly helpful.
Thank you,
UtkuG
In the section : Add transform logic to the main component
There is the line :
var state: GestureStateComponent = entity.gestureStateComponent ?? GestureStateComponent()
When I try to add the same line. I have the error cannot find GestureStateComponent in scope.
My imports :
import SwiftUI
import RealityKit
import RealityKitContent
An answer would be greatly appreciate it
I've added some menu actions to toggle various text view attributes named in the subject. The default for Simulator and my devices is to have these features turned on. But I'm finding that toggling them in my menu actions doesn't actually work.
Toggling spellchecking or smart quotes (I haven't yet bothered to add more actions and test them) to .off does indeed set the correct value on the UITextView, but the features are still happening when I type (soft or hard keyboards behave the same).
What's wrong? Is it simply broken and is caching the initial value or something? 18.4 is being used on my Simulator and my devices. I also tried 18.3.1 in Simulator with the same results.
Topic:
UI Frameworks
SubTopic:
UIKit
In order to make referencing keys for localized strings a little more reliable, our application references generated constants for localized string keys:
This eliminates the potential for developers to misspell a key when referencing a localized strings. And because these constants are automatically generated by the exact same process that provides localized strings for the application, each and every constant is guaranteed to have a localized string associated with it.
I’m currently attempting to implement something similar for the localized strings referenced by our new App Intents. Our initial release of App Intent functionality is simply using string literals to reference localized strings:
However, I am running into several issues when trying to reference the string keys as a constant. The closest I managed to get was defining the constant as either a LocalizationValue or as a StaticString and referencing the constant while initializing the LocalizedStringResource. With this approach, I see no errors from Xcode until I try and compile. What’s more is that the wording of the error being thrown is quite peculiar:
As you can see with the sample code above, I am clearly calling LocalizedStringResource’s initializer directly as Indicated by the error.
Is what I’m trying to do even possible with App Intents? From my research, it does look like iOS app localization is moving more towards using string literals for localized strings. Like with String Catalog’s ability to automatically generate entries from strings referenced in UI without the need for a key. However, we’d prefer to use constants if possible for the reasons listed above.
Hi, run into this error today: Failed to verify code signature of /var/installd/Library/Caches/com.apple.mobile.installd.staging/temp.QJh2l0/extracted/MyAwesome.app : 0xe8008015 (A valid provisioning profile for this executable was not found.)
Project is an AUv3 app + extension. It builds and install fine on MacOS.
It builds on iPad but can't install : that's when the error appears.
Regarding provisioning files, I use Automatic manage signing and I can see that the Xcode Managed Profile looks fine an includes my iPad.
The only thing I see that differ from other projects is that as an AUv3 project, I have both and App (host) and extension projects. Thus the bundle identifier for this extension project is not the same as it seems I have to use different identifiers.
So app bundle id is x.y while extension is x.y.z (same x.y base))
Last but not least the project and IPA can be built fine on XCode Cloud. (Although I can't download the artifacts but it seems it's the same problem for many of us today...)
macOS Version 15.4 (Build 24E248)
Xcode 16.2 (23507) (Build 16C5032a)
Thanks in advance for your help :)
Topic:
Code Signing
SubTopic:
Certificates, Identifiers & Profiles
Inside /Library/Developer/CoreSimulator I have 26GB (according to du -h) of old data that Xcode won't list under Window -> Devices & Simulators.
Because of Apples decision to not let even the root user write in this directory I am unable to delete them with rm -r * or put them in the trash etc.
The old runtimes are even listed in disk utility and can't be unmounted or delete from there - also due to missing permissions.
How can I get rid of this if even Xcode won't list them?
Also tried xcrun simctl delete all without success.
Topic:
Developer Tools & Services
SubTopic:
Xcode
Tags:
Simulator
Xcode Sanitizers and Runtime Issues
Our app has been stuck in the "Waiting for Review" status for over two weeks now. We've reached out to the App Review team through the official contact form, but haven't received any update or change in the status since then.
We understand that review times can vary, but this delay is longer than what we've typically experienced. We're starting to get concerned as it’s beginning to affect our timeline.
Just wondering if anyone else has faced similar delays recently, or if there’s any additional step we can take to help move things forward. Any advice would be greatly appreciated.
Thanks in advance!
Hi,
i'm unable to select a icc profile on the new macbook Pro M4.
How can i calibrate the internal screen by adding an icc profil made with my X-Rite color calibrator.
icc files cannot be selected (grey) from the import menu of the monitor preferences.