Overview

Post

Replies

Boosts

Views

Activity

How to identify which minor user's authorization has been revoked by the parent/guardian?
I followed the method outlined in Apple's documentation to test "Revocation of Consent." Our server received the notification sent by Apple, but the parsed data only contains the following content (some data has been modified for privacy, but the fields remain unchanged): { "receiptType": "Sandbox", "bundleId": "com.xxx.xxxxx", "receiptCreationDate": 1764932591296, "requestDate": 1764932591296, "originalPurchaseDate": 1375340400000, "originalApplicationVersion": "1.0", "appTransactionId": "705020051250081000", "originalPlatform": "iOS" } How can we identify that "a parent/guardian has revoked authorization for a specific user"? We are unable to determine which minor user should be restricted from using certain features of our app. I hope to receive a prompt response from Apple's technical experts! Thanks A Lot !
0
1
75
3w
Hide tvOS app from new users while keeping iOS app discoverable with Universal Purchase
Hi all, I’m trying to understand what’s possible with App Store Connect when using Universal Purchase across iOS and tvOS. We currently have an app that’s set up as a universal purchase for iOS and tvOS. What we’d like to do is: Keep the iOS app fully discoverable and available to new users in the App Store. Make the tvOS app not appear for new users (e.g., not show up in search / categories / product page for users who don’t already own it). Is there a supported way to effectively “hide” or remove the tvOS app from sale for new customers only, while keeping the iOS app live and discoverable, and while existing tvOS users are unaffected? If this isn’t possible at a platform level, are there any recommended best practices for deprecating the tvOS version of a universal purchase app without impacting the iOS listing or existing tvOS users? Thanks in advance for any guidance or pointers to official docs!
0
1
46
3w
iOS subscription: First purchase never triggers server notifications for a new Subscription Group
Hello, I’m experiencing a strange issue with a newly created Subscription Group in my iOS app. For all my existing subscription groups, everything works perfectly — initial purchase, renewals, cancellations, all notifications arrive normally. But for this one newly created group, the first purchase never triggers any server notification from App Store Server Notifications (ASSN). ⸻ 📘 Problem Summary • I created a new Subscription Group in App Store Connect. • The products are all Approved and Published for over a week. • Users can successfully purchase the subscription in production. • The purchase is shown as Purchased in the App Store purchase UI. • The receipt can be fetched locally on device. • But my server receives no notifications, including: • DID_RENEW • DID_CHANGE_RENEWAL_STATUS • SUBSCRIBED • ONE_TIME_CHARGE • CONSUMPTION_REQUEST • etc. The old subscription groups still send notifications normally, so the notification URL and server infrastructure are correct.
0
0
44
2w
Network access has changed
I had, a long time ago (over 10 years) developed an application that is connected to my UPS (for solar panels). Until yet it worked very well, and I didnot have to compute more than making updates of XCode. That was all. But yet I have swiched to the latest value of switch, and it continue to compile, but it does'not work. I am asking to yo in order keeping my app working as previously. As it does not work, which library is replacing Cloudkit.framework ? and which library is replacing InsPersistantContainer.framework ? Have a good day Guy Desbief
Topic: Design SubTopic: General
0
0
551
3w
How does Apple achieve this effect?
Hi everyone, I'm new to building apps on Swift and recently I've been wondering how does Apple get this blur effect behind the control center on Mac OS Tahoe. I think it would be nice to use in an app that I'm making but I can't seem to find it in the docs. Is it available through AppKit? I would appreciate some help on this
0
0
562
2w
Quinn’s Top Ten DevForums Tips
I spend a lot of time here on DevForums. Over the years I’ve read many posts, both good and bad. This page is my attempt at writing down what makes a good one. Hopefully some of you will find it useful. Before you read this, read the official Apple Developer > Support > Developer Forums page. If you have questions or feedback about any of the points raised here, start a new thread in the Developer Tools & Services > Developer Forums subtopic. Share and Enjoy — Quinn “The Eskimo!” @ Developer Technical Support @ Apple let myEmail = "eskimo" + "1" + "@" + "apple.com" Quinn’s Top Ten DevForums Tips Here are my top ten DevForums tips: Is DevForums right for you? Search before you ask Keep your expectations realistic Topic, subtopic, and tags Craft a quality post Prefer text over images Include details with your questions Crash reports Cross posting courtesy Resize screenshots Include a Spinal Tap reference Close your threads Think about your title Post URLs in the clear Many of these boil down to one word: Empathy. Think about the person who’s reading your post. Can they read it? Will they understand it? Will it help them? 1. Is DevForums right for you? To quote Apple Developer > Support > Developer Forums, the Apple Developer Forums (aka DevForums) are: a great place to post questions, exchange knowledge, and connect with fellow developers and Apple engineers on a variety of development topics. DevForums is focused on developer issues. That includes the APIs in Apple’s platform SDKs, Apple tools, developer-oriented Apple services like App Store Connect, and accessory development. If you have a user-level question, you’ll have more luck over in Apple Support Communities, run by Apple Support. DevForums is focused on Apple technologies. If you’re using a third-party tool or library, feel free to ask questions about it here, but you’re more likely to find folks with relevant expertise in that technology’s dedicated support channel. If you want to file a bug report, do that using Feedback Assistant. If you want to discuss a bug you’ve already filed, DevForums is a great place for that. Make sure to include your bug number in your post. For more hints and tips on the bug reporting process, see Bug Reporting: How and Why?. 2. Search before you ask DevForums has a history stretching back to 2015. Many questions have been asked and answered here. Before you start a thread, search the forums for similar threads. For details about the search syntax, see Apple Developer > Support > Developer Forums. For a quick summary, click in the search field. Remember that DevForums is world readable and thus indexed by Internet search engines. 3. Keep your expectations realistic DevForums is an informal support channel; no one is being paid to answer DevForums questions full time. Keep that in mind when you post. Apple provides a number of formal support channels. To request formal support, go to the Apple Developer > Contact Us page. One of those support channels is the code-level support provided by Apple Developer Technical Support (DTS). For more information about DTS, see Apple Developer > Support > Requesting Technical Support. Asking about Apple’s unannounced plans is unlikely to yield useful results. Apple folks can’t discuss The Future™, and non-Apple folks can only speculate. Apple folks can’t discuss Apple’s internal business practices. For example, we can’t answer why question — “Why did Apple do this?” or “Why hasn’t Apple done that?” — unless there’s existing documentation that offers an explanation. If you think Apple should do something differently, file a bug that explains what you’d like to see change and the rationale for that. Not everyone works the same hours as you do. DevForums is a worldwide community, so there are time zones to consider, but there’s also just individual preferences. This is especially relevant around weekends, where your reply on Friday may not be seen by other folks until Monday. Different folks use DevForums in different ways. Some folks lean in to the notification system, whereas others allocate certain times of the day, or the week, to help out. 4. Topic, subtopic, and tags DevForums organises threads by two attributes: A high-level topic and subtopic A fine-grained set of tags Folks willing to offer help often monitor a specific set of subtopics or tags, and only see threads with those attributes. To increase the odds of getting a response, choose your subtopic and tags carefully. The list of subtopics is immediately visible on the top-level page. For a list of tags and their descriptions, go to Developer > Support > Forums Tags. That’s a lot of tags! When choosing a subtopic, choose the most specific one. For example, if you have a question about SwiftUI, choose UI Frameworks > SwiftUI rather than Programming Languages > Swift. The latter is primarily focused on the Swift language itself. When choosing a tag, read the description of that tag. With so many tags there are inevitably cases where a tag doesn’t mean what you think it means. For example, the Exception Handling tag is about the rarely used Exception Handling framework, not about exception handling in general, and the description makes that clear. 5. Craft a quality post When replying, use a reply rather than a comment. Comments are best reserved for short messages, like “Thanks!” or “See this other thread.” IMPORTANT If you reply in the comments, other folks on the thread may not be notified of your reply. DevForums supports Markdown formatting, similar to that used on GitHub and by DocC. The editor UI has buttons for the most common things, like Bold and Italic, but don’t feel the need to limit yourself to that. Correct formatting is particularly important for preformatted text: Use the Inline Code button, which inserts single backquote delimiters (```), for inline text in code style: identifiers and so on. Use the Code Block button, which inserts triple backquote delimiters (`````), for blocks of text in code style: code snippets, logs, and so on. After submitting your post, look it over to make sure that it reads well. If not, you have a short window where you can edit the post to fix things. 6. Prefer text over images Don’t use screenshots for data that’s essentially textual, like code snippets and logs. For example, if you want to post a log message, include that as text rather than adding a screenshot. That makes it much easier for your readers to work with the text. Use the Code Block button, which inserts triple backquote delimiters (`````), to format blocks of text in code style. Reserve screenshots for situations where the issue is visual, for example: When discussing view layout problems When posting instructions to achieve some task in a GUI app, like Xcode 7. Include details with your questions When starting a thread, try to include all the relevant details in your post. If you skimp on these details, folks will have to reply asking for them, and that slows things down. Specifically, anticipate the following questions: What platform are you targeting? And what version of that platform? What version of Xcode are you using? What version of the OS are you testing on? What specific API are you using? What are the exact steps you took? If something failed, what are the symptoms of that failure? If an API returned an error, what was that error? If nothing failed, what results did you see? And what were you expecting? If you filed a bug, what was the bug number? Have you tried reproducing the issue in a small test project? What else have you tried? For more thoughts on this, see Tips on writing forums posts. Oh, and if you’re having a build problem, consider attaching a full build log. 8. Crash reports If you’re trying to get help with a crash, include a crash report. For advice on how to do that, see Posting a Crash Report. 9. Cross posting courtesy Don’t start multiple threads for the same issue. That just wastes everyones time. Sometimes this happens by accident. If that’s the case, add a comment to one of the threads redirecting folks to the other one. If you find a bunch of old threads that might be related to your issue, don’t post full replies to all of them. Pick a lead thread and post your full reply there, then reply on the other threads with a link to the lead thread. Alternatively, start a new thread and reply on all the old threads with a link to that. That’ll help focus the discussion on your specific issue. If you post your question to another support channel, provide a link to that in your DevForums question, and vice versa. That avoids folks working on a question that’s already been answered elsewhere. 10. Resize screenshots If your post includes an image, make sure it renders well. Screenshots from Retina displays are often ridiculously large. Use Preview to crop the screenshot and, if necessary, downsample it by 50% (using Tools > Adjust Size). 11. Include a Spinal Tap reference To be clear, this is a joke. While the occasional Spinal Tap reference is allowed, please don’t add one to all your posts (-: 12. Close your threads If someone replies with the answer you need, mark that as accepted. That gives them some credit and helps other folks with similar questions find that answer. If you find the answer by yourself, please post a short summary of what you did. Feel free to mark that as accepted. There’s no way to change the accepted answer. See this thread for specific advice. You can’t delete your own threads. If you accidentally post two copies of the same question, choose one as the primary and, in the other one, add a reply that links to it. Beyond that, see this thread for more advice. 13. Think about your title When creating a thread, think carefully about your title. Your title is your thread’s ‘marketing statement’, a way to entice folks to read your post. Try to summarise your issue in 15 words or less. Adding tags to your title makes it harder to read. Instead, add your tags with the tagging UI. See tip 4 for more on tags. 14. Post URLs in the clear DevForums has a list of websites you can link to at will. For example, it places no restrictions on links to Swift Forums. To link to a site that’s not on the allowlist, skip the Markdown link syntax and post your link in the clear. So, this won’t work: Apple is based in [Cupertino](https://www.cupertino.org). but this will: Apple is based in Cupertino. https://www.cupertino.org Revision History 2025-12-02 Tidied up and expanded tip 12. 2025-06-19 Made minor editorial changes. 2024-08-29 Added a link to Creating a test project. 2024-08-07 Add more hints to tip 7. 2024-05-27 Reworked tip 4 to account for the new topic and subtopic model. Made other minor editorial changes. 2023-11-16 Added a link to [Public and Private Tags][refPaPT]. 2023-02-22 Expanded tip 3. 2023-02-10 Added a note about why questions to tip 3 (another great suggestion from Scott). Added a link to Bug Reporting: How and Why?. 2023-01-09 Added a note about tags to tip 13. 2022-12-09 Expanded tip 12. 2022-08-22 Expanded tip 5 to explain why you shouldn’t reply in the comments. 2022-08-11 Expanded tip 9. 2022-06-17 Added tip 14. Updated the preamble to include a link to the main DevForums page. 2022-06-04 Added a discussion of unannounced plans to tip 3 (thanks to Scott). 2022-06-03 Added tip 13. 2022-05-24 Added tips suggested by Claude31 and Scott. 2022-05-23 First posted.
0
0
11k
4w
Share Sheet with UIActivityItemsConfiguration
I am trying to address an issue with my app’s share sheet where, when the user sends a URL to either Apple Reminders or OmniFocus, the receiving app does not get a title. So I am updating my share sheet code to use UIActivityItemsConfiguration. I have this code: let title = "Golden Hill Software" let url = URL(string: "https://www.goldenhillsoftware.com/")! let itemProvider = NSItemProvider() itemProvider.registerObject(ofClass: URL.self, visibility: .all) { (handler) in handler(url, nil) return nil } let config = UIActivityItemsConfiguration(itemProviders: [itemProvider]) config.metadataProvider = { (key) in if key == .title || key == .messageBody { return title } else { return nil } } let viewController = UIActivityViewController(activityItemsConfiguration: config) self.present(viewController, animated: true) This works with some share sheet extensions. But when I choose the Ivory share extension, Ivory creates a post with a URL that starts with bplist…. When I choose the Open in Chrome action extension, Chrome says “Chrome cannot handle this link”. Can someone help me understand what I am doing wrong here? (edited)
Topic: UI Frameworks SubTopic: UIKit
0
0
42
3w
App Store doesn't display WatchOS version requirement under compatibility
Hi DF I'm working on a watchOS app with an iOS companion app and have been updating the minimum deployments for both. After making the updates, when I upload the apps to TestFlight or App Store, the compatibility field for the watchOS has been removed. Instead of saying: Compatibility: Requires iOS 15.6 or later... Requries watchOS 10.6 or later... It says: Requires macOS... Requires iOS 15.6 or later... It is not a macOS app, so I don't know why that is displayed. How do I remove macOS and get it to display watchOS min requirement?
0
0
83
4w
How to disable highlight state on Link in LA widget
I am working on a Live Activity widget. In it, I want some of the elements to open different deeplink URLs. I have found that assigning multiple widgetURL doesn't work, only one of the URLs gets opened no matter where you tap. I also found that Buttons don't seem to do anything, tapping them actually just open my app as if I just tapped a naked Live Activity. I have found that really only Link elements work if I want to open different URLs upon tapping different elements. And Links are cool and fine, but I am seeing that on tap, my elements become tinted... As in, there is a highlighted state, and it makes the elements inside blue. I have tried to use button style API on a link, but it didn't work. How can I disable the highlighted state for a Link element in a live activity widget?
0
0
54
3w
How do I prevent screenshots using SwiftUI?
Hi Team, How do I prevent screenshots using SwiftUI. I was using this solution on UIKit: extension UIView { func makeSecure() { DispatchQueue.main.async { let protectedView = UIView() self.superview?.addSubview(protectedView) // constraints... let secureView = SecureView() self.superview?.addSubview(secureView) // constraints... secureView.addSecureSubview(self) // constraints... } } } class SecureView: UIView { private lazy var secureField: UIView = { var secureField: UIView = UIView() // ... if let secureContainer = SecureField().secureContainer { secureField = secureContainer } ... return secureField }() required init() { ... } } Is it posible to do the same thing using SwiftUI. Do we have an example? What would you recommend when we work with confidencial information in SwiftUI like bank account information? Thanks in advance!
0
0
133
3w
Seeking clarity for pending termination for Apple Developer Membership
Hi all, It has been >30 days since my app was removed, and I was served with the pending account termination notice. Similar to others, I was flagged for section 3.2(f). Submitted an appeal, explicitly addressing every possible violation, offered to show source code with entire history, and also have all the email threads of me providing customer support to my users, and also multiple 5 star reviews. However, I was met with the rejection and the confirmation that the account would be terminated. Fast forward more than 30 days, my account is still here, but no closure or clarification at all regarding what I can do moving forward. Understandably, the team deals with millions of submissions and apps, but isn’t it reasonable (given that we pay $100/yr) to at least get some clarification on what went wrong? Currently, all I want to know is, Can I create a new account and develop other apps? Or will I risk getting banned again, hence wasting another $100? If I am able to proceed, what do I need to do to make sure my app doesn’t get randomly terminated again? Why aren’t there any signs or warnings? If anyone is able to assist me on this, I would greatly appreciate it. Thank you so much!
0
0
84
3w
Apple Pay - Missing ECIIndicator in PassKit Payment token
Hello, I'm using PassKit with to perform Apple Pay payment in a financial application. Our approach are: On iOS application, define PKMerchantCapability threeDSecure and credit, perform apple pay experience and get the encrypted response. On PCI service, receive the encrypted data Payment token, decrypt this data, and use to perform the payment. The problem is, in MasterCard transaction the eciIndicator is missing. I want to know if has some rule or problem about it.
0
0
106
3w
Paid for Apple Developer Program but enrollment is stuck and system asks me to enroll again
Hello, I need help with an issue regarding my Apple Developer Program enrollment. I completed the payment for the annual membership and received the official invoice from Apple. My card was charged successfully, and I have all the payment references. However, after the payment was processed: My account remained in Pending status The message “Complete your purchase” kept appearing When attempting the payment again, the system reported that the order was already paid Now the enrollment flow has reset completely, and the system is asking me to start enrollment and pay again, even though the first payment was successful This seems like a synchronization issue where the payment was recorded in the Apple Online Store system, but not linked to my Developer enrollment. I do not want to be charged again, since the first transaction was already completed. Could someone from Apple please help link the payment to my Apple ID or advise how to activate my membership? Right now my account cannot proceed with enrollment and I cannot access App Store Connect.
0
1
43
3w
Network Interface APIs
For important background information, read Extra-ordinary Networking before reading this. Share and Enjoy — Quinn “The Eskimo!” @ Developer Technical Support @ Apple let myEmail = "eskimo" + "1" + "@" + "apple.com" Network Interface APIs Most developers don’t need to interact directly with network interfaces. If you do, read this post for a summary of the APIs available to you. Before you read this, read Network Interface Concepts. Interface List The standard way to get a list of interfaces and their addresses is getifaddrs. To learn more about this API, see its man page. A network interface has four fundamental attributes: A set of flags — These are packed into a CUnsignedInt. The flags bits are declared in <net/if.h>, starting with IFF_UP. An interface type — See Network Interface Type, below. An interface index — Valid indexes are greater than 0. A BSD interface name. For example, an Ethernet interface might be called en0. The interface name is shared between multiple network interfaces running over a given hardware interface. For example, IPv4 and IPv6 running over that Ethernet interface will both have the name en0. WARNING BSD interface names are not considered API. There’s no guarantee, for example, that an iPhone’s Wi-Fi interface is en0. You can map between the last two using if_indextoname and if_nametoindex. See the if_indextoname man page for details. An interface may also have address information. If present, this always includes the interface address (ifa_addr) and the network mask (ifa_netmask). In addition: Broadcast-capable interfaces (IFF_BROADCAST) have a broadcast address (ifa_broadaddr, which is an alias for ifa_dstaddr). Point-to-point interfaces (IFF_POINTOPOINT) have a destination address (ifa_dstaddr). Calling getifaddrs from Swift is a bit tricky. For an example of this, see QSocket: Interfaces. IP Address List Once you have getifaddrs working, it’s relatively easy to manipulate the results to build a list of just IP addresses, a list of IP addresses for each interface, and so on. QSocket: Interfaces has some Swift snippets that show this. Interface List Updates The interface list can change over time. Hardware interfaces can be added and removed, network interfaces come up and go down, and their addresses can change. It’s best to avoid caching information from getifaddrs. If thats unavoidable, use the kNotifySCNetworkChange Darwin notification to update your cache. For information about registering for Darwin notifications, see the notify man page (in section 3). This notification just tells you that something has changed. It’s up to you to fetch the new interface list and adjust your cache accordingly. You’ll find that this notification is sometimes posted numerous times in rapid succession. To avoid unnecessary thrashing, debounce it. While the Darwin notification API is easy to call from Swift, Swift does not import kNotifySCNetworkChange. To fix that, define that value yourself, calling a C function to get the value: var kNotifySCNetworkChange: UnsafePointer<CChar> { networkChangeNotifyKey() } Here’s what that C function looks like: extern const char * networkChangeNotifyKey(void) { return kNotifySCNetworkChange; } Network Interface Type There are two ways to think about a network interface’s type. Historically there were a wide variety of weird and wonderful types of network interfaces. The following code gets this legacy value for a specific BSD interface name: func legacyTypeForInterfaceNamed(_ name: String) -> UInt8? { var addrList: UnsafeMutablePointer<ifaddrs>? = nil let err = getifaddrs(&addrList) // In theory we could check `errno` here but, honestly, what are gonna // do with that info? guard err >= 0, let first = addrList else { return nil } defer { freeifaddrs(addrList) } return sequence(first: first, next: { $0.pointee.ifa_next }) .compactMap { addr in guard let nameC = addr.pointee.ifa_name, name == String(cString: nameC), let sa = addr.pointee.ifa_addr, sa.pointee.sa_family == AF_LINK, let data = addr.pointee.ifa_data else { return nil } return data.assumingMemoryBound(to: if_data.self).pointee.ifi_type } .first } The values are defined in <net/if_types.h>, starting with IFT_OTHER. However, this value is rarely useful because many interfaces ‘look like’ Ethernet and thus have a type of IFT_ETHER. Network framework has the concept of an interface’s functional type. This is an indication of how the interface fits into the system. There are two ways to get an interface’s functional type: If you’re using Network framework and have an NWInterface value, get the type property. If not, call ioctl with a SIOCGIFFUNCTIONALTYPE request. The return values are defined in <net/if.h>, starting with IFRTYPE_FUNCTIONAL_UNKNOWN. Swift does not import SIOCGIFFUNCTIONALTYPE, so it’s best to write this code in a C: extern uint32_t functionalTypeForInterfaceNamed(const char * name) { int fd = socket(AF_INET, SOCK_DGRAM, 0); if (fd < 0) { return IFRTYPE_FUNCTIONAL_UNKNOWN; } struct ifreq ifr = {}; strlcpy(ifr.ifr_name, name, sizeof(ifr.ifr_name)); bool success = ioctl(fd, SIOCGIFFUNCTIONALTYPE, &ifr) >= 0; int junk = close(fd); assert(junk == 0); if ( ! success ) { return IFRTYPE_FUNCTIONAL_UNKNOWN; } return ifr.ifr_ifru.ifru_functional_type; } Finally, TN3158 Resolving Xcode 15 device connection issues documents the SIOCGIFDIRECTLINK flag as a specific way to identify the network interfaces uses by Xcode for device connection traffic. Revision History 2025-12-10 Added info about SIOCGIFDIRECTLINK. 2023-07-19 First posted.
0
0
2k
3w
Testing TelephonyMessagingKit Outside of The EU
Is it possible to develop for TelephonyMessagingKit on iOS 26 outside of the EU? If so, how is this accomplished? I have added the 'Default Carrier Messaging App' entitlement to my project, but I do not see an option to set my app as a default option in settings on my device. I am not located inside of the EU, but would like to test this functionality.
0
0
102
3w
Is Xcode's predictive code completion model has some censoring?
It seems Xcode's predictive code completion model is censored. Specifically, when typing the word "torrent," the model stops working completely. It doesn't matter whether the word is written directly in the code or in a comment. It could also be part of another word, such as "qBittorrent." In either case, the model stops working. Reproducing this issue is fairly simple. Create a Swift file and type the word "torrent." The model will stop generating code. Xcode Version 26.2 (17C52) Predictive Code Completion Model: [com.apple.fm.code.generate_small_v2.base: 700.0.81600.13.202379,0] [com.apple.fm.code.generate_safety_guardrail.base: 1.6.81619.13.202072,0] [com.apple.gm.safety_deny.input.code_intelligence.base: 32025010.20251009.91600.100.1651,0] [com.apple.gm.safety_deny.output.code_intelligence.base: 32025010.20251009.91600.100.1651,0] (Installed)
0
0
94
2w
Tab Bar Transparency Problem on iOS 26
i have programmed a website and struggle to get it to work on safari ios26. 100vh fixed positioned images do not fill the screen anymore. i could live with that, having two background coloured spaces at the top and at the bottom. but elements that scroll out of this new viewport are fully visible, as you can see on the enclosed screenshots. i have no idea how i could fix this and dont find any answer anywhere on the net?
Topic: Safari & Web SubTopic: General
0
0
269
3w