I have encountered an issue with a customer’s data access after they migrated to a different iCloud account, and I’m looking for guidance.
The Situation:
The customer was logged into their account on my app, which was associated with a specific iCloud account (iCloud A).
They had all their app data available while using iCloud A.
The customer then switched to a new iCloud account (iCloud B) on the same device, while still using the same app account.
After switching iCloud accounts, their data is no longer visible in the app or my CloudKit dashboard.
My Investigation:
I accessed the customer’s CloudKit data via the CloudKit Console, acting as their iCloud account.
I couldn’t find the private database zone or any of their records when accessing iCloud A through the console.
I don’t believe the data was deleted since actions performed under iCloud B shouldn’t affect data stored in iCloud A.
My Hypothesis:
I suspect that the customer’s old iCloud account (iCloud A) may have downgraded or stopped paying for iCloud storage.
If the iCloud subscription is inactive or expired, could that prevent me from accessing their CloudKit data?
Would renewing the iCloud subscription for iCloud A restore access to the missing data?
Questions:
Does an unpaid or expired iCloud account restrict access to CloudKit records, even if they weren’t deleted?
Would paying for iCloud storage again restore the data previously stored in CloudKit?
Is there any way to recover the customer’s CloudKit data if they are unable to access their old iCloud account?
If anyone has a simpler approach to recovering the customer’s iCloud-stored app data or has experience dealing with iCloud migrations like this, I’d appreciate your insights. Thank you in advance for any advice!
Delve into the world of built-in app and system services available to developers. Discuss leveraging these services to enhance your app's functionality and user experience.
Selecting any option will automatically load the page
Post
Replies
Boosts
Views
Activity
We use network extension for the VPN connection implementation. In the network extension, we need to call a third-party library to do some check. Before the macOS is upgraded to 15.2, everything is fine. It just stop working after macOS is upgraded to 15.2.
I did some debugging, and looks like the api provided by the dylibs is blocked. One system log is shown suspiciously
Unable to create bundle at URL (<private>): unable to create file system representation of URL (13)
The background is that we did embed the third-party dylibs in the app resources folder and the app extension tries to dlopen the dylibs and call the functions. And actually we do not know how the dylibs are implemented. Since it was working with older macOS, we would like to see if there is any related change on os itself.
I have tried to change the places of dylibs, moving them from container app bundle resource folder to app extension resources folder, even the app group folder. Unfortunately it does not work either.
Do you guys have any opinions?
Topic:
App & System Services
SubTopic:
Core OS
I am the Lead iOS Developer for The Incc, an upcoming social networking application. The platform offers subscriptions that grant users access to premium content, primarily digital magazines showcasing diverse cultures, alongside standard social media features and additional unique functionalities.
I am exploring two specific use cases for our subscription model.
Promo Codes with Split Payments:
We plan to collaborate with the our influencers (referred to as Mover Shakers) by providing them with promo codes for users to purchase subscriptions. For such purchases, we aim to implement a revenue split model, allocating 10% to the influencer and the remainder to us after Apple’s fees.
Gifting Subscriptions:
We also wish to enable users to gift subscriptions to others within the app.
I understand that the Apple Subscription Service does not natively support these features.
What other options do we have to achieve this that are also not against the Apple's guidelines.
When I open Iplaytv on my Apple TV it says refresh needed but I don’t know how
I am implementing apple pay and the merchant validation is failing with error (error request failed with status code 417). I am using react js in the frontend and node js in backend, this is my code
const httpsAgent = new https.Agent({
rejectUnauthorized: false,
cert: fs.readFileSync(
path.join(__dirname, "../../../certificates/merchant_id_prod.pem")
),
key: fs.readFileSync(
path.join(__dirname, "../../../certificates/merchant_id_prod.key")
),
});
const data = {
merchantIdentifier: "merchantId",
displayName: "Check",
initiative: "web",
initiativeContext: "domain.com",
};
const response = await axios.post(validationURL, data, { httpsAgent });
Hi,
My iphone 12 has been restarting unexpectedly, and often followed by wifi, bluetooth, and airdrop grayed out. I had to force restart/shutdown several times to turn it on again.
Found this analytics after crash. Please help if somebody know what this means:
ExcUserFault_CategoriesService-2024-12-23-064503.ips
I really don't understand what kind of cyber crap CloudKit is!
In macOS, CloudKit basically doesn’t work properly
Topic:
App & System Services
SubTopic:
iCloud & Data
Tags:
CloudKit
CloudKit Dashboard
CloudKit Console
Hello Everyone,
I'm currently working on a cross-platform application that uses IP-based multicast for device discovery across both Apple and non-Apple devices running the same app. All devices join a multicast group "X.X.X.X" on port Y.
For Apple devices, I am using NWConnectionGroup for multicast discovery, while for non-Apple devices, I am using BSD sockets.
The issue arises when I attempt to send a multicast message to the group using NWConnectionGroup. The message is sent from a separate ephemeral port rather than the multicast port Y. As a result, all Apple processes that are using NWConnectionGroup can successfully receive the multicast message. However, the processes running on the non-Apple devices (using BSD sockets) do not receive the message.
My Questions:
Is there a way to configure NWConnectionGroup to send multicast messages from the same multicast port Y rather than an ephemeral port?
Is there any known behavior or limitation in how NWConnectionGroup handles multicast that could explain why non-Apple devices using BSD sockets cannot receive the message?
How can I ensure cross-platform multicast compatibility between Apple devices using NWConnectionGroup and non-Apple devices using BSD sockets?
Any guidance or suggestions would be greatly appreciated!
Thanks,
Harshal
Subject/Title:
Critical SKAdNetwork Attribution Failures (Bug Type: 237, Failure Type: 1201 in ASDErrorDomain)
Issue Summary
We are encountering repeated SKAdNetwork attribution failures (failureType: 1201 in ASDErrorDomain) for ad impression events processed through the ad network mj797d8u6f.skadnetwork. These failures are causing significant revenue losses, as ad impressions are not being properly attributed to installs.
The issue occurs across multiple campaigns and involves both SKAdNetwork API 3.0 and 4.0, suggesting a systemic problem with attribution validation or network communication.
This problem is critical as it disrupts advertisers’ ability to track conversions, optimize campaigns, and allocate budgets effectively.
Technical Details
Key Logs:
Below are anonymized samples of the failed SKAdNetwork events:
Log Sample 1 (Failure):
{
"bug_type": "237",
"timestamp": "2025-01-07 22:49:15.00 -0500",
"os_version": "iPhone OS 18.2.1 (22C161)",
"roots_installed": 0,
"incident_id": "78523BD9-1F58-4738-B526-8A8A63203214"
}
{
"advertisementStoryId": "3D2E7EBB-1A57-4DF8-9375-2C465F423038",
"apiVersion": "3.0",
"eventType": "adImpression",
"resultType": "finalized",
"anonymous": true,
"failureType": 1201,
"failureDomain": "ASDErrorDomain",
"clientEventId": "0F456623-584F-4913-BBD3-C3FD1219D104",
"os": "iOS",
"topic": "xp_amp_skad_perf",
"adType": "app",
"adNetworkId": "mj797d8u6f.skadnetwork",
"eventTime": 1736305200000,
"osBuildNumber": "22C161",
"hardwareFamily": "iPhone",
"api": "SKAdNetwork"
}
Log Sample 2 (Failure):
{
"bug_type": "237",
"timestamp": "2025-01-07 22:49:15.00 -0500",
"os_version": "iPhone OS 18.2.1 (22C161)",
"roots_installed": 0,
"incident_id": "0CBF612D-F0D9-449E-A34E-DE2DB92BEC0D"
}
{
"advertisementStoryId": "946E568C-D2C1-478F-BFF3-4996C48F9B39",
"apiVersion": "3.0",
"eventType": "adImpression",
"resultType": "finalized",
"anonymous": true,
"failureType": 1201,
"failureDomain": "ASDErrorDomain",
"clientEventId": "1A3D48FB-4452-4FD8-BB25-1195470A53DC",
"os": "iOS",
"topic": "xp_amp_skad_perf",
"adType": "app",
"adNetworkId": "mj797d8u6f.skadnetwork",
"eventTime": 1736298000000,
"osBuildNumber": "22C161",
"hardwareFamily": "iPhone",
"api": "SKAdNetwork"
}
Log Sample 3 (Success Example for Comparison):
{
"bug_type": "237",
"timestamp": "2025-01-07 22:49:15.00 -0500",
"os_version": "iPhone OS 18.2.1 (22C161)",
"roots_installed": 0,
"incident_id": "BFEAC86B-8195-4DB0-96FF-2028107256AD"
}
{
"advertisementStoryId": "946E568C-D2C1-478F-BFF3-4996C48F9B39",
"apiVersion": "3.0",
"eventType": "adImpression",
"resultType": "finalized",
"anonymous": true,
"clientEventId": "F6265488-E0FB-448A-A406-3F7254BCA9D7",
"os": "iOS",
"topic": "xp_amp_skad_perf",
"adType": "app",
"adNetworkId": "mj797d8u6f.skadnetwork",
"eventTime": 1736294400000,
"osBuildNumber": "22C161",
"hardwareFamily": "iPhone",
"api": "SKAdNetwork"
}
Failure Details:
Failure Type: 1201
Failure Domain: ASDErrorDomain
Ad Network ID: mj797d8u6f.skadnetwork
API Versions Affected: 3.0, 4.0
Timeframe of Failures: All logs occur within 2025-01-07 22:00:00 UTC to 23:00:00 UTC.
Environment:
OS Version: iOS 18.2.1 (Build 22C161).
Device Type: iPhone (hardwareFamily: iPhone).
App Configuration: Includes the ad network ID in the Info.plist under SKAdNetworkItems.
Impact Details
Financial Loss:
Based on failure rates, we estimate $20–$65/day per advertiser for small campaigns and $75–$375/day per advertiser for larger campaigns.
If 100 advertisers are affected, daily losses range from $2,000–$37,500.
Over a week, losses could exceed $70,000 to $262,500 or more.
Operational Impact:
Advertisers cannot track installs or optimize campaigns, leading to inefficient ad spending and potential budget reallocation to other networks.
Damaged trust between advertisers and the ad network.
Reputation Risk:
Continued failures harm the credibility of the SKAdNetwork framework, critical in a post-ATT (App Tracking Transparency) ecosystem.
Steps to Reproduce
Serve an ad impression through the ad network mj797d8u6f.skadnetwork.
Monitor SKAdNetwork attribution for that impression.
Observe repeated failures (failureType: 1201) despite the resultType: finalized status.
Recommendations for Investigation
Attribution Timeout:
Verify if these failures stem from delayed responses or missed attribution windows.
Ad Network Configuration:
Confirm the ad network’s integration complies with SKAdNetwork API 3.0 and 4.0 requirements.
Infrastructure Review:
Investigate potential bottlenecks or failures in Apple’s attribution servers (ASDErrorDomain) or communication delays.
Contact Details
Name: [Your Full Name]
Role: [Your Role] (e.g., Ad Network Analyst/Developer)
Organization: [Your Company Name]
Email: [Your Email Address]
Phone: [Your Phone Number]
Submission Instructions
You can submit this report via the following channels:
Apple Feedback Assistant: https://feedbackassistant.apple.com/
Bug Reporting Tool: https://developer.apple.com/bug-reporting/
Apple DTS: https://developer.apple.com/support/technical/
Topic:
App & System Services
SubTopic:
General
I was trying to log the flow description using control filter and data filter. But when I am trying to log the proc ID in control filter, it is always 0, but in data filter, it logs some value. Same goes with the eproc ID. I want to use the flow description data in some other target so I will be sending the data using sockets and I cannot share data from data filter due to its restrictions and control filter isn't providing the proc ID. What should I do?
I have an app written in swift.
It has multiple pods dependencies installed.
When the app is generated with Xcode 15.4 the size of app is ~148Mb
and when the same app is generated with Xcode 16.2 the size is ~246MB
When I extracted and analysed the app, it was observed that one of the framework installed via pods Dependencies("DocumentReaderCore") was consuming more size(42.9 MB vs 215 MB) the DocumentReaderCore present in the Payload/.app/Frameworks/DocumentReaderCore.framework/DocumentReaderCore was of type linux executable when generated using Xcode 15.4 vs the other was od document type and size was 215MB.
Having multiple issues with google maps via wireless apply car play.
1.: maps freezing
2.:The direction I’m heading seems to be off and searching some times
3.: The most annoying, the audio doesn’t work when I’m using google maps for a trip.
Topic:
App & System Services
SubTopic:
Maps & Location
Hi, could you please help on the following points :
Does iOS supports HCE Felica emulation support in Japan?
Does iOS supports Felica card emulation using NFC & SE platform ?
Thanks
Hello,
I am currently developing a call service using CallKit and VoIP push. Recently, I have encountered a very challenging issue. During testing, when a VoIP push is received, the incomingCall gets triggered continuously, but then it automatically terminates after about 1-2 seconds. I am checking this issue under the debug scheme, and even when switching to different commits, the same problem persists.
I suspect it might be an issue with the device, but I would like to confirm the cause and find a solution. Below are some characteristics I have noticed:
On this device, when a VoIP push is received, CallKit automatically terminates, but this does not occur when debugging.
The issue always occurs when not debugging.
Looking at the device console logs related to callservicesd, there are many logs with 'invalidate' appended.
For example:
Invalidating process assertion for bundle ID from timeout
All calls ended. Clearing system uplink muted cache
Invalidate callDurationUpdateTimer
InCallService has changed process state to 2
InCallService has been suspended; invalidating its XPC client connections.
[0x565544180] invalidated because the current process cancelled the connection by calling xpc_connection_cancel()
XPC connection invalidated from client
These logs appear although our server did not receive any incoming call request, so we did not terminate it on our end. I also checked if there was a crash, but there were no reports left on the device.
Could you please share any insights into the cause or solutions for this situation?
Thank you.
Hi (from France)
I have a MacOS application which handles the App Store receipt by requesting at the url "https://buy.itunes.apple.com/verifyReceipt". From the response, I can know what are the inApps bought by the user and that suits for me.
I don't know if if I must change something in my code accordingly to this TN3118.
Does someone knows the response ?
Best regards.
I have an iOS app that installs a Content Filter in order to block certain types of content at the network/socket level. The Family Controls framework stipulates that this can only be done successfully on a FamilyControlsMember.child account type (or on a supervised device). Our initial release has been really successful, but I would say that perhaps 75% of our users are .individual (probably over 18). Perhaps a topic for another forum post is to discuss how Apple's policy here doesn't seem to be meeting a real need here for non-minors, but I'll leave that alone for now.
The problem we're facing is that as far as I can tell, the only way to determine if someone has the right account type is to initiate an authorization request using AuthorizationCenter.shared.requestAuthorization(for:) and then inspect the error. I think it could really help the usability of the app if we could detect the account type and preemptively show a helpful message if the authorization could not succeed, and recommend some alternatives. But I've looked so far in vain for some way to do this.
Is there any api in Family Controls (or elsewhere) that can query the system for this information? Any pointers would be greatly appreciated!
I have a SwiftData model where I need to customize behavior based on the value of a property (connectorType). Here’s a simplified version of my model:
@Model
public final class ConnectorModel {
public var connectorType: String
...
func doSomethingDifferentForEveryConnectorType() {
...
}
}
I’d like to implement doSomethingDifferentForEveryConnectorType in a way that allows the behavior to vary depending on connectorType, and I want to follow best practices for scalability and maintainability. I’ve come up with three potential solutions, each with pros and cons, and I’d love to hear your thoughts on which one makes the most sense or if there’s a better approach:
**Option 1: Use switch Statements
**
func doSomethingDifferentForEveryConnectorType() {
switch connectorType {
case "HTTP":
// HTTP-specific logic
case "WebSocket":
// WebSocket-specific logic
default:
// Fallback logic
}
}
Pros: Simple to implement and keeps the SwiftData model observable by SwiftUI without any additional wrapping.
Cons: If more behaviors or methods are added, the code could become messy and harder to maintain.
**Option 2: Use a Wrapper with Inheritance around swiftdata model
**
@Observable
class ParentConnector {
var connectorModel: ConnectorModel
init(connectorModel: ConnectorModel) {
self.connectorModel = connectorModel
}
func doSomethingDifferentForEveryConnectorType() {
fatalError("Not implemented")
}
}
@Observable
class HTTPConnector: ParentConnector {
override func doSomethingDifferentForEveryConnectorType() {
// HTTP-specific logic
}
}
Pros: Logic for each connector type is cleanly organized in subclasses, making it easy to extend and maintain.
Cons: Requires introducing additional observable classes, which could add unnecessary complexity.
**Option 3: Use a @Transient class that customizes behavior
**
protocol ConnectorProtocol {
func doSomethingDifferentForEveryConnectorType(connectorModel: ConnectorModel)
}
class HTTPConnectorImplementation: ConnectorProtocol {
func doSomethingDifferentForEveryConnectorType(connectorModel: ConnectorModel) {
// HTTP-specific logic
}
}
Then add this to the model:
@Model
public final class ConnectorModel {
public var connectorType: String
@Transient
public var connectorImplementation: ConnectorProtocol?
// Or alternatively from swiftui I could call myModel.connectorImplementation.doSomethingDifferentForEveryConnectorType() to avoid this wrapper
func doSomethingDifferentForEveryConnectorType() {
connectorImplementation?.doSomethingDifferentForEveryConnectorType(connectorModel: self)
}
}
Pros: Decouples model logic from connector-specific behavior. Avoids creating additional observable classes and allows for easy extension.
Cons: Requires explicitly passing the model to the protocol implementation, and setup for determining the correct implementation needs to be handled elsewhere.
My Questions
Which approach aligns best with SwiftData and SwiftUI best practices, especially for scalable and maintainable apps?
Are there better alternatives that I haven’t considered?
If Option 3 (protocol with dependency injection) is preferred, what’s the best way to a)manage the transient property 2) set the correct implementation and 3) pass reference to swiftdata model?
Thanks in advance for your advice!
We’ve set up an advanced App Clip experience that successfully launches when a user scans our QR code. However, the same App Clip invocation URL does not launch when tapping the associated Action Link on our Apple Place Card in Apple Maps. Instead of opening the App Clip, the link falls back to the website.
What We Have Done So Far:
App Clip Launched in App Store Connect: Our App Clip is approved and live on the App Store. Here is the invocation URL: https://appclip.parkzenapp.com/park?q=oJrbSIgx
Below is the QR code for our Advanced App Clip experience we are attempting to open in our Apple Maps Place card
When scanning the QR code that uses the same App Clip invocation URL, the App Clip reliably launches as expected. Here is our apple-app-site-association file, thats correctly served from the associated domain: https://appclip.parkzenapp.com/.well-known/apple-app-site-association
Add here is a screenshot showing how the appclip.parkzenapp.com domain is correctly validated.
Advanced App Clip Experience: We created and submitted an advanced App Clip Experience specifically tied to our location on Apple Maps. This App Clip Experience is approved and live. Below is an image of our set up of this Advanced App Clip Experience
Business Connect: We've created the Apple Maps Location in business connect and added the advanced App Clip experience invocation URL as an Action Link in the place card. See screenshot below.
Apple Maps Place:
https://maps.apple.com/place?auid=906421750045811407
Despite meeting these conditions, when a user taps the Action Link (the "Reserve" button in the Apple Maps Place Card), the fallback website opens rather than the App Clip.
Question:
What additional step or configuration might we be missing to ensure the Action Link on our Apple Maps place card triggers the App Clip instead of the website?
Thank you
Hello,
I am encountering an issue with user-generated files stored in the Documents directory on an iPhone 11 running iOS 18.2.
The problem occurs as follows:
1.The app generates and saves files in the Documents directory using FileManager.
2.These files are successfully saved and remain accessible while the app is running.
3.After restarting the app, the files appear to have been deleted from the Documents directory.
I have confirmed that:
1.The files are being saved to the correct location (Documents directory) and can be accessed during the current app session.
2.The app is not explicitly deleting these files during shutdown or restart.
3.This behavior is consistent across multiple app restarts.
Hi, I have a problem about "NSPOSIXErrorDomain Code=65 & iOS18 & Xcode 16".
I used 'CocoaAsyncSocket', '~> 7.6.5'. It works fine on iOS 15.2, But it's worried on iOS 18.3.
Before this, broadcasts can be obtained normally。 I had get socket Multicast Networking.
Please help me .
Topic:
App & System Services
SubTopic:
Networking