Overview

Post

Replies

Boosts

Views

Activity

Product ID conflict for IAP across staging/production apps
I’m working on a Flutter application that implements subscriptions using in-app purchases (IAP). I currently have two apps under the same developer account: One for staging One for production In App A (staging), I successfully created a monthly subscription with the product ID: rc_1299_monthly However, when I try to create a subscription with the same product ID (rc_1299_monthly) in App B (production), I encounter the following error: "The Product ID you entered is already being used by another subscription." My understanding was that product IDs are scoped per app, but this error suggests there may be account-level constraints. Has anyone encountered this before? Is it required to use unique product IDs across all apps under the same account, or is there a recommended approach for handling staging vs production setups? Any clarification or best practices would be appreciated.
1
0
115
4w
videotoolbox superresolution
Hello, I'm using videotoolbox superresolution API in MACOS 26: https://developer.apple.com/documentation/videotoolbox/vtsuperresolutionscalerconfiguration/downloadconfigurationmodel(completionhandler:)?language=objc, when using swift, it's ok, when using objective-c, I get error when downloading model with downloadConfigurationModelWithCompletionHandler: [Auto] MA-auto{_failedLockContent} | failure reported by server | error:[com.apple.MobileAssetError.AutoAsset:MissingReference(6111)] [Auto] MA-auto{_failedLockContent} | failure reported by server | error:[com.apple.MobileAssetError.AutoAsset:UnderlyingError(6107)_1_com.apple.MobileAssetError.Download:47] Download completion handler called with error: The operation couldnxe2x80x99t be completed. (VTFrameProcessorErrorDomain error -19743.)
5
1
951
4w
Upcoming Changes to Your Taxes and Invoices - Cannot Find Ireland Tax Questionnaire - Bulgaria-Based Developer
Hello, I received an email on January 1st, 2026, regarding the Ireland VAT questionnaire with a deadline of April 1, 2026. The email instructs me to provide my VAT registration number or indicate non-registered status by clicking "Ireland Tax Questionnaire" or "Add Tax Info" in the Tax Forms section of App Store Connect. However, I cannot find this option in my account. When I go to the Business section and Tax Forms, I only see: US tax forms (already completed) Options to add tax forms for Brazil, Mexico, and Taiwan There is no Ireland Tax Questionnaire or option to add Ireland tax information. My legal entity is registered in Bulgaria, not Ireland. Could you please clarify: Do I need to complete the Ireland Tax Questionnaire given that my business is based in Bulgaria? If yes, how can I access this questionnaire since it doesn't appear in my Tax Forms section? Thanks, Menuu Dev team
0
0
54
4w
Fatal error on rollback after delete
I encountered an error when trying to rollback context after deleting some model with multiple one-to-many relationships when encountered a problem later in a deleting method and before saving the changes. Something like this: do { // Fetch model modelContext.delete(model) // Do some async work that potentially throws try modelContext.save() } catch { modelContext.rollback() } When relationship is empty - the parent has no children - I can safely delete and rollback with no issues. However, when there is even one child when I call even this code: modelContext.delete(someModel) modelContext.rollback() I'm getting a fatal error: SwiftData/ModelSnapshot.swift:46: Fatal error: Unexpected backing data for snapshot creation: SwiftData._FullFutureBackingData<ChildModel> I use ModelContext from within the ModelActor but using mainContext changes nothing. My ModelContainer is quite simple and problem occurs on both in-memory and persistent storage, with or without CloudKit database being enabled. I can isolate the issue in test environment, so the model that's being deleted (or any other) is not being accessed by any other part of the application. However, problem looks the same in the real app. I also changed the target version of iOS from 18.0 to 26.0, but to no avail. My models look kind of like this: @Model final class ParentModel { var name: String @Relationship(deleteRule: .cascade, inverse: \ChildModel.parent) var children: [ChildModel]? init(name: String) { self.name = name } } @Model final class ChildModel { var name: String @Relationship(deleteRule: .nullify) var parent: ParentModel? init(name: String) { self.name = name } } I tried many approaches that didn't help: Fetching all children (via fetch) just to "populate" the context Accessing all children on parent model (via let _ = parentModel.children?.count) Deleting all children reading models from parent: for child in parentModel.children ?? [] { modelContext.delete(child) } Deleting all children like this: let parentPersistentModelID = parentModel.persistentModelID modelContext.delete(model: ChildModel.self, where: #Predicate { $0.parent.persistentModelID == parentPersistentModelID }, includeSubclasses: true) Removing @Relationship(deleteRule: .nullify) from ChildModel relationship definition I found 2 solution for the problem: To manually fetch and delete all children prior to deleting parent: let parentPersistentModelID = parentModel.persistentModelID for child in try modelContext.fetch(FetchDescriptor<ChildModel>(predicate: #Predicate { $0.parent.persistentModelID == parentPersistentModelID })) { modelContext.delete(child) } modelContext.delete(parentModel) Trying to run my code in child context (let childContext = ModelContext(modelContext.container)) All that sounds to me like a problem deep inside Swift Data itself. The first solution I found, fetching potentially hundreds of child models just to delete them in case I might need to rollback changes on some error, sounds like awful waste of resources to me. The second one however seems to work fine has that drawback that I can't fully test my code. Right now I can wrap the context (literally creating class that holds ModelContext and calls its methods) and in tests for throwing methods force them to throw. By creating scratch ModelContext I loose that possibility. What might be the real issue here? Am I missing something?
2
0
196
4w
Generating a new FPS certificate (SDK 26) alongside an existing SDK 4 certificate
Hi, Our client currently has an FPS deployment certificate generated with SDK version 4 that is still actively used in production. They would like to generate an additional certificate using SDK version 26. Before doing so, they just want to confirm: Will the existing SDK 4 certificate remain unaffected and still visible in the Apple Developer portal? Any considerations they should keep in mind? Thanks! :)
1
0
309
4w
AlarmKit Fixed Schedule Going off at Midnight
I am getting bug reports from users that occasionally the AlarmKit alarms scheduled by my app are going off exactly at midnight. In my app, users can set recurring alarms for sunrise/sunset etc. I implement this as fixed schedule alarms over the next 2-3 days with correct dates pre-computed at schedule time. I have a background task which is scheduled to run at noon every day to update the alarms for the next 2-3 days. Are there any limitations to the fixed schedule which might be causing this unintended behavior of going off at midnight?
1
0
130
4w
What steps should I follow to get started with iOS development?
Hey everyone 👋 I’m starting my journey in iOS app development coming from a Java background and I already have an app idea but want to approach things the right way so I’d love your guidance What AI tools do you recommend for coding debugging and learning Swift or SwiftUI 🤖 how do you approach app design 🎨 and where do you find UI inspiration graphics or useful resources for building apps 🚀 any tips or lessons learned would really help 🙏
1
0
58
4w
Rejected a couple of time for 5.1.1/5.1.2 - AI consent screen not seen by reviewers despite being first screen on launch
I've been rejected a couple of times for Guidelines 5.1.1(i) and 5.1.2(i) regarding third-party AI data sharing consent. Each time, the reviewer states they cannot see the consent prompt, even though it is the first screen displayed on every app launch. My app (GymFusion) uses Anthropic's Claude AI for features like meal scanning, body composition analysis, and workout coaching. Here is exactly what I've implemented: IN-APP CONSENT (embedded in view hierarchy, not a sheet/popup): In my RootView.swift, the consent is a conditional view that blocks the entire app: } else if !consentManager.hasConsented && !consentManager.hasSeenConsent { AIConsentView() } else if auth.isAuthenticated { MainTabView() } The hasSeenConsent flag is reset to false on every app launch in the App's init(), so the consent screen appears on every launch until the user accepts: init() { UserDefaults.standard.set(false, forKey: "user_ai_consent_seen") AIConsentManager.shared.hasSeenConsent = false FirebaseApp.configure() } THE CONSENT SCREEN INCLUDES: Lists all personal data shared (meal photos, water glass photos, workout history, progress photos, body measurements, fitness profile) Names Anthropic, PBC (Claude AI) as the third-party recipient 3 required acknowledgment checkboxes that must all be checked before "I Agree" is enabled Cannot be swiped away (.interactiveDismissDisabled) "Decline" lets user proceed but consent reappears next launch Users can revoke consent anytime in More tab PRIVACY POLICY INCLUDES: Names Anthropic as third-party AI provider Lists all data collected and shared States Anthropic provides "same or equal protection of user data" Explains consent and revocation process Link: https://ahmedali420911.github.io/gymfusion-legal/privacy-policy.html WHAT THE REVIEWER SAYS EACH TIME: "We were not presented with the consent prompt on launch or anywhere else in the app." WHAT I'VE VERIFIED: Aiconsentview.swift is in the Xcode build target (confirmed in project.pbxproj with 4 references) Consent appears correctly on simulator and physical device UserDefaults resets hasSeenConsent to false on every launch The file compiles without errors DerivedData has been cleared before archiving Clean build performed before every archive MY QUESTIONS: Could there be a reason the consent screen doesn't appear on the reviewer's device even though it shows correctly on mine? Is there a known issue with SwiftUI conditional views not rendering on certain devices or iOS versions? Has anyone else experienced App Review not seeing UI that works correctly in their own testing? Should I attach screenshots of the consent dialog in the App Review notes or reply? Is there something else Apple expects beyond an in-app consent dialog and privacy policy for third-party AI data sharing? I've been stuck on this for over a month across 8 submissions. Any help or insight would be greatly appreciated.
4
0
206
4w
IOS Safari support for WebTransport
We're developing a service that requires webtransport support in the browser. Currently, the only browser that doesn't provide support is the IOS version of Safari. Our current way forward for client use is to flag iphone and ipad as non compliant and recommend either desktop use or android. Is there any ballpark date as to when WebTransport will be included in IOS Safari (- webkit supports webtransport)?
2
2
2.5k
4w
TestFlight build visible on macOS but not installable: “Can only be tested on an iOS device” for Mac (Designed for iPad)
Hello everyone. We have an app that has been on the App Store for several years, originally distributed for iOS and iPadOS only. Recently, we enabled Mac (Designed for iPad) and started distributing macOS-compatible builds. Current situation: The app is available and downloadable from the macOS App Store and runs correctly on Apple Silicon Macs. The same app/build appears in TestFlight on macOS, but cannot be installed. TestFlight shows the message: “This app can only be tested on an iOS device.” This suggests the app itself is Mac-compatible, but TestFlight is treating the build as iOS-only. Environment and checks performed: Mac is Apple Silicon. App Store Connect app-level availability for Mac (Designed for iPad) is enabled. The app is not Mac Catalyst; it is a UIKit iOS/iPadOS app. Distribution is done via GitLab CI. CI uploads use an App Store provisioning profile (Apple Distribution), not development or ad-hoc. iPhone and iPad TestFlight installs work as expected. Info.plist verification: UIRequiredDeviceCapabilities was originally present (armv7) and has since been: removed entirely, build number incremented, new builds uploaded to TestFlight. No other hardware capability requirements are declared. LSRequiresIPhoneOS = true remains unchanged. No other plist keys that should exclude macOS are present. CI / build considerations: The same uploaded build is accepted by App Store Connect and distributed successfully on the macOS App Store. This tells us the binary itself is valid for macOS, but TestFlight applies additional or different eligibility checks. At the moment we think that TestFlight eligibility may depend on build metadata, scheme/configuration flags, or internal App Store Connect state that differs from App Store distribution. Questions: Are there known cases where a build is valid for macOS App Store distribution but not eligible for macOS TestFlight installation? Does anyone know if TestFlight applies stricter or different platform gating than the App Store for “Mac (Designed for iPad)” apps? Are there specific build settings (e.g. SUPPORTS_MAC_DESIGNED_FOR_IPAD, TARGETED_DEVICE_FAMILY, scheme/config mismatches) that can affect TestFlight macOS eligibility independently of App Store eligibility? Is there an authoritative way in App Store Connect to inspect why a specific TestFlight build is marked as “iOS-only” for macOS? Any insight into TestFlight-specific eligibility rules for “Mac (Designed for iPad)” would be appreciated, especially given that App Store distribution for macOS is already working. I hope we're missing something very basic, and not that the app can't be tested as is for the mac, because it's useful to have our QA team test it on the mac.
1
1
206
4w
App Review Issue
It has been approximately three weeks since we submitted our app for review via App Store Connect, but it remains "In Review" and the review process has not been completed. For this reason, we also requested an expedited app review to the App Review Team last week. Will the review proceed if we simply wait? Is there any way to check the detailed status of this app review?
7
2
409
3w
App rejected for 4.3(a) duplicate, but it's the same app (rebranding update)
Hello, I am facing a rejection under Guideline 4.3(a) - Spam for "duplicate apps". However, this submission is an update of an existing app (same bundle identifier), not a new app. The update only includes a company rebranding (name, icon, and screenshots). At the moment, we only have one app with this functionality available on the App Store, and we are not intentionally distributing multiple apps targeting the same users or storefronts. The review team mentioned that the app duplicates another app we submitted, but we are unable to identify which app they are referring to. Has anyone experienced a similar issue where Apple flagged a duplicate app even though only one app is live? How did you resolve it? Any guidance would be greatly appreciated.
1
0
84
4w
Enterprise Install for a TLS Inspection proxy
I’m working on a product that includes TLS inspection capability. TLS inspection using a local MitM requires installing a trusted root certificate which is then used to create masquerade certificates to intercept and forward TLS traffic through the proxy. For manual installation the end user is required to authenticate as an administrator to modify the trust settings on our internal CA’s root certificate. My question concerns the options for enterprise deployment using an MDM. We want the generated root certificate to be unique to each endpoint so that if a private key is compromised it can’t be used to intercept traffic anywhere else. We can install a “certificate trust” configuration profile from the MDM but this requires a base64 encoded string of the root certificate. In effect the MDM needs to obtain the certificate from the endpoint and then send it back in the form of a configuration profile. I’m not aware that MDMs like Jamf can be configured to do this directly so we’re looking for any other mechanism to have macOS trust a locally generated certificate via MDM based on some non endpoint-unique criteria? One option might be to use an external CA with a trusted certificate to sign an intermediate endpoint certificate but this creates a significant risk if the external trusted certificate were ever compromised. Is this a common industry practice? So my question remains is there a better way to trust our per endpoint root certificate via MDM without needing to install a unique per endpoint configuration profile?
6
0
881
3w
Help with getting info for an WIFI USER EXPERIENCE APP
Hi I’m working on an app Called Wiux ( already on Android ) but one of my clients has a company with all iPhones so I need to develop the app for iOS, but I’m facing A huge wall, it’s an proactive wifi user experience monitor for distributed networks and the idea is that the app its sending every minute info about connectivity RSSI, which network , if is 2,4ghz or 5ghz channel used and device usage cpu ram etc but I find that is no getRSSI ( and I really need that data ) but some aps like iWifi or WiFi probe has that data and it works I check the reads with a phisical probe and my app on android and values match. i think maybe with NEHotspotHelper I could get the data but I don’t know how to ask to use it or if exist a dependency for quality monitoring that allows me to access that thow o info. ( And probably in the near future I face the same problem with LTE ( that I’m also monitoring with the app on Android and I think is going to be a problem on iOS )
1
0
46
4w
My App Rejected 4.3 Design: Spam
hii submitted app yesterday to review, This morning I was surprised that the application was rejected, Reason 4.3 Design: Spam.And I've introduced an application programmed by myself, and a unique design.This message I receivedGuideline 4.3 - DesignWe noticed that your app provides the same feature set as other apps submitted to the App Store; it simply varies in content or language, which is considered a form of spam.The next submission of this app may require a longer review time, and this app will not be eligible for an expedited review until this issue is resolved.what should I do ?
29
10
52k
4w
pkgbuild on Tahoe fails to build packages if any directory name contains non-ascii characters
pkgbuild on Tahoe (26.3.1) fails to build packages if any directory name contains non-ascii characters. pkgbuild is able to build successfully with the same source data on previous versions on macOS, so this is a regression and prevents us from build able to build our products on macOS 26. Example that demonstrates the issue: mkdir -p MyAppData/Taishōgoto echo "Testing" >> MyAppData/Taishōgoto/Content.txt pkgbuild --identifier com.example.MyAppData --install-location '/Library/Application Support/MyAppData' --root MyAppData myappdata.pkg Error messages: parent directory ./Taishōgoto does not exist pkgbuild: error: Cannot write package to "myappdata.pkg". (The file “package.bom” couldn’t be saved in the folder “NSIRD_pkgbuild_52fPuN”.) I have submitted this via Feedback Assistant (FB22312299). I have not found a workaround. Tried copying pkgbuild from Sequoia but the problem persisted, probably because the buggy code is in PackageKit rather than the tool itself.
3
0
89
3w
Unwanted Communication Reporting Extension deletes messages always
I am implementing an Unwanted Communication Reporting Extension (IdentityLookupUI) to allow users to report spam messages to our backend. The extension works perfectly in terms of data collection and network reporting (using ILClassificationExtensionNetworkReportDestination). However, I’ve encountered an issue with the message lifecycle: whenever the user taps "Done" and I return a response, the system automatically moves the reported message to the Recently Deleted folder. I want to report the data but keep the message in its current folder (especially when the user classifies it as "Safe"). I have tried varying the ILClassificationAction, but it seems the system ignores the action in favor of "cleaning up" the thread. Example of my current implementation: override func classificationResponse(for request: ILClassificationRequest) -> ILClassificationResponse { // Even when returning .none or .reportNotJunk let action: ILClassificationAction = (self.type == "spam") ? .reportJunk : .none let response = ILClassificationResponse(action: action) response.userInfo = ["type": self.taggedType, "sender": self.sender] return response } My Questions: Is there a specific ILClassificationAction or userInfo key that tells iOS not to move the message? Is this movement a mandatory "post-report cleanup" behavior of the IdentityLookup framework that cannot be overridden? Does anyone know a workaround to report the communication while maintaining its original location in the Messages app?
0
0
52
4w
How does Apple Review Work with peripheral devices?
I’m working toward an official release of our application. The app is designed to interface with peripheral devices, which means users need both the mobile app and the peripheral devices to log in and use it. Because of that, how would the review process work when I get to that point?
Replies
1
Boosts
0
Views
79
Activity
4w
Product ID conflict for IAP across staging/production apps
I’m working on a Flutter application that implements subscriptions using in-app purchases (IAP). I currently have two apps under the same developer account: One for staging One for production In App A (staging), I successfully created a monthly subscription with the product ID: rc_1299_monthly However, when I try to create a subscription with the same product ID (rc_1299_monthly) in App B (production), I encounter the following error: "The Product ID you entered is already being used by another subscription." My understanding was that product IDs are scoped per app, but this error suggests there may be account-level constraints. Has anyone encountered this before? Is it required to use unique product IDs across all apps under the same account, or is there a recommended approach for handling staging vs production setups? Any clarification or best practices would be appreciated.
Replies
1
Boosts
0
Views
115
Activity
4w
videotoolbox superresolution
Hello, I'm using videotoolbox superresolution API in MACOS 26: https://developer.apple.com/documentation/videotoolbox/vtsuperresolutionscalerconfiguration/downloadconfigurationmodel(completionhandler:)?language=objc, when using swift, it's ok, when using objective-c, I get error when downloading model with downloadConfigurationModelWithCompletionHandler: [Auto] MA-auto{_failedLockContent} | failure reported by server | error:[com.apple.MobileAssetError.AutoAsset:MissingReference(6111)] [Auto] MA-auto{_failedLockContent} | failure reported by server | error:[com.apple.MobileAssetError.AutoAsset:UnderlyingError(6107)_1_com.apple.MobileAssetError.Download:47] Download completion handler called with error: The operation couldnxe2x80x99t be completed. (VTFrameProcessorErrorDomain error -19743.)
Replies
5
Boosts
1
Views
951
Activity
4w
Upcoming Changes to Your Taxes and Invoices - Cannot Find Ireland Tax Questionnaire - Bulgaria-Based Developer
Hello, I received an email on January 1st, 2026, regarding the Ireland VAT questionnaire with a deadline of April 1, 2026. The email instructs me to provide my VAT registration number or indicate non-registered status by clicking "Ireland Tax Questionnaire" or "Add Tax Info" in the Tax Forms section of App Store Connect. However, I cannot find this option in my account. When I go to the Business section and Tax Forms, I only see: US tax forms (already completed) Options to add tax forms for Brazil, Mexico, and Taiwan There is no Ireland Tax Questionnaire or option to add Ireland tax information. My legal entity is registered in Bulgaria, not Ireland. Could you please clarify: Do I need to complete the Ireland Tax Questionnaire given that my business is based in Bulgaria? If yes, how can I access this questionnaire since it doesn't appear in my Tax Forms section? Thanks, Menuu Dev team
Replies
0
Boosts
0
Views
54
Activity
4w
Fatal error on rollback after delete
I encountered an error when trying to rollback context after deleting some model with multiple one-to-many relationships when encountered a problem later in a deleting method and before saving the changes. Something like this: do { // Fetch model modelContext.delete(model) // Do some async work that potentially throws try modelContext.save() } catch { modelContext.rollback() } When relationship is empty - the parent has no children - I can safely delete and rollback with no issues. However, when there is even one child when I call even this code: modelContext.delete(someModel) modelContext.rollback() I'm getting a fatal error: SwiftData/ModelSnapshot.swift:46: Fatal error: Unexpected backing data for snapshot creation: SwiftData._FullFutureBackingData<ChildModel> I use ModelContext from within the ModelActor but using mainContext changes nothing. My ModelContainer is quite simple and problem occurs on both in-memory and persistent storage, with or without CloudKit database being enabled. I can isolate the issue in test environment, so the model that's being deleted (or any other) is not being accessed by any other part of the application. However, problem looks the same in the real app. I also changed the target version of iOS from 18.0 to 26.0, but to no avail. My models look kind of like this: @Model final class ParentModel { var name: String @Relationship(deleteRule: .cascade, inverse: \ChildModel.parent) var children: [ChildModel]? init(name: String) { self.name = name } } @Model final class ChildModel { var name: String @Relationship(deleteRule: .nullify) var parent: ParentModel? init(name: String) { self.name = name } } I tried many approaches that didn't help: Fetching all children (via fetch) just to "populate" the context Accessing all children on parent model (via let _ = parentModel.children?.count) Deleting all children reading models from parent: for child in parentModel.children ?? [] { modelContext.delete(child) } Deleting all children like this: let parentPersistentModelID = parentModel.persistentModelID modelContext.delete(model: ChildModel.self, where: #Predicate { $0.parent.persistentModelID == parentPersistentModelID }, includeSubclasses: true) Removing @Relationship(deleteRule: .nullify) from ChildModel relationship definition I found 2 solution for the problem: To manually fetch and delete all children prior to deleting parent: let parentPersistentModelID = parentModel.persistentModelID for child in try modelContext.fetch(FetchDescriptor<ChildModel>(predicate: #Predicate { $0.parent.persistentModelID == parentPersistentModelID })) { modelContext.delete(child) } modelContext.delete(parentModel) Trying to run my code in child context (let childContext = ModelContext(modelContext.container)) All that sounds to me like a problem deep inside Swift Data itself. The first solution I found, fetching potentially hundreds of child models just to delete them in case I might need to rollback changes on some error, sounds like awful waste of resources to me. The second one however seems to work fine has that drawback that I can't fully test my code. Right now I can wrap the context (literally creating class that holds ModelContext and calls its methods) and in tests for throwing methods force them to throw. By creating scratch ModelContext I loose that possibility. What might be the real issue here? Am I missing something?
Replies
2
Boosts
0
Views
196
Activity
4w
Generating a new FPS certificate (SDK 26) alongside an existing SDK 4 certificate
Hi, Our client currently has an FPS deployment certificate generated with SDK version 4 that is still actively used in production. They would like to generate an additional certificate using SDK version 26. Before doing so, they just want to confirm: Will the existing SDK 4 certificate remain unaffected and still visible in the Apple Developer portal? Any considerations they should keep in mind? Thanks! :)
Replies
1
Boosts
0
Views
309
Activity
4w
AlarmKit Fixed Schedule Going off at Midnight
I am getting bug reports from users that occasionally the AlarmKit alarms scheduled by my app are going off exactly at midnight. In my app, users can set recurring alarms for sunrise/sunset etc. I implement this as fixed schedule alarms over the next 2-3 days with correct dates pre-computed at schedule time. I have a background task which is scheduled to run at noon every day to update the alarms for the next 2-3 days. Are there any limitations to the fixed schedule which might be causing this unintended behavior of going off at midnight?
Replies
1
Boosts
0
Views
130
Activity
4w
What steps should I follow to get started with iOS development?
Hey everyone 👋 I’m starting my journey in iOS app development coming from a Java background and I already have an app idea but want to approach things the right way so I’d love your guidance What AI tools do you recommend for coding debugging and learning Swift or SwiftUI 🤖 how do you approach app design 🎨 and where do you find UI inspiration graphics or useful resources for building apps 🚀 any tips or lessons learned would really help 🙏
Replies
1
Boosts
0
Views
58
Activity
4w
Rejected a couple of time for 5.1.1/5.1.2 - AI consent screen not seen by reviewers despite being first screen on launch
I've been rejected a couple of times for Guidelines 5.1.1(i) and 5.1.2(i) regarding third-party AI data sharing consent. Each time, the reviewer states they cannot see the consent prompt, even though it is the first screen displayed on every app launch. My app (GymFusion) uses Anthropic's Claude AI for features like meal scanning, body composition analysis, and workout coaching. Here is exactly what I've implemented: IN-APP CONSENT (embedded in view hierarchy, not a sheet/popup): In my RootView.swift, the consent is a conditional view that blocks the entire app: } else if !consentManager.hasConsented && !consentManager.hasSeenConsent { AIConsentView() } else if auth.isAuthenticated { MainTabView() } The hasSeenConsent flag is reset to false on every app launch in the App's init(), so the consent screen appears on every launch until the user accepts: init() { UserDefaults.standard.set(false, forKey: "user_ai_consent_seen") AIConsentManager.shared.hasSeenConsent = false FirebaseApp.configure() } THE CONSENT SCREEN INCLUDES: Lists all personal data shared (meal photos, water glass photos, workout history, progress photos, body measurements, fitness profile) Names Anthropic, PBC (Claude AI) as the third-party recipient 3 required acknowledgment checkboxes that must all be checked before "I Agree" is enabled Cannot be swiped away (.interactiveDismissDisabled) "Decline" lets user proceed but consent reappears next launch Users can revoke consent anytime in More tab PRIVACY POLICY INCLUDES: Names Anthropic as third-party AI provider Lists all data collected and shared States Anthropic provides "same or equal protection of user data" Explains consent and revocation process Link: https://ahmedali420911.github.io/gymfusion-legal/privacy-policy.html WHAT THE REVIEWER SAYS EACH TIME: "We were not presented with the consent prompt on launch or anywhere else in the app." WHAT I'VE VERIFIED: Aiconsentview.swift is in the Xcode build target (confirmed in project.pbxproj with 4 references) Consent appears correctly on simulator and physical device UserDefaults resets hasSeenConsent to false on every launch The file compiles without errors DerivedData has been cleared before archiving Clean build performed before every archive MY QUESTIONS: Could there be a reason the consent screen doesn't appear on the reviewer's device even though it shows correctly on mine? Is there a known issue with SwiftUI conditional views not rendering on certain devices or iOS versions? Has anyone else experienced App Review not seeing UI that works correctly in their own testing? Should I attach screenshots of the consent dialog in the App Review notes or reply? Is there something else Apple expects beyond an in-app consent dialog and privacy policy for third-party AI data sharing? I've been stuck on this for over a month across 8 submissions. Any help or insight would be greatly appreciated.
Replies
4
Boosts
0
Views
206
Activity
4w
Q How to verify a developer account
Welcome to the Developer Forums. I hope everyone is well. I have some questions and need support, so I hope the moderators, if they find that the place where I created this post is not appropriate, will direct me to the correct place. How to
Replies
1
Boosts
0
Views
70
Activity
4w
IOS Safari support for WebTransport
We're developing a service that requires webtransport support in the browser. Currently, the only browser that doesn't provide support is the IOS version of Safari. Our current way forward for client use is to flag iphone and ipad as non compliant and recommend either desktop use or android. Is there any ballpark date as to when WebTransport will be included in IOS Safari (- webkit supports webtransport)?
Replies
2
Boosts
2
Views
2.5k
Activity
4w
TestFlight build visible on macOS but not installable: “Can only be tested on an iOS device” for Mac (Designed for iPad)
Hello everyone. We have an app that has been on the App Store for several years, originally distributed for iOS and iPadOS only. Recently, we enabled Mac (Designed for iPad) and started distributing macOS-compatible builds. Current situation: The app is available and downloadable from the macOS App Store and runs correctly on Apple Silicon Macs. The same app/build appears in TestFlight on macOS, but cannot be installed. TestFlight shows the message: “This app can only be tested on an iOS device.” This suggests the app itself is Mac-compatible, but TestFlight is treating the build as iOS-only. Environment and checks performed: Mac is Apple Silicon. App Store Connect app-level availability for Mac (Designed for iPad) is enabled. The app is not Mac Catalyst; it is a UIKit iOS/iPadOS app. Distribution is done via GitLab CI. CI uploads use an App Store provisioning profile (Apple Distribution), not development or ad-hoc. iPhone and iPad TestFlight installs work as expected. Info.plist verification: UIRequiredDeviceCapabilities was originally present (armv7) and has since been: removed entirely, build number incremented, new builds uploaded to TestFlight. No other hardware capability requirements are declared. LSRequiresIPhoneOS = true remains unchanged. No other plist keys that should exclude macOS are present. CI / build considerations: The same uploaded build is accepted by App Store Connect and distributed successfully on the macOS App Store. This tells us the binary itself is valid for macOS, but TestFlight applies additional or different eligibility checks. At the moment we think that TestFlight eligibility may depend on build metadata, scheme/configuration flags, or internal App Store Connect state that differs from App Store distribution. Questions: Are there known cases where a build is valid for macOS App Store distribution but not eligible for macOS TestFlight installation? Does anyone know if TestFlight applies stricter or different platform gating than the App Store for “Mac (Designed for iPad)” apps? Are there specific build settings (e.g. SUPPORTS_MAC_DESIGNED_FOR_IPAD, TARGETED_DEVICE_FAMILY, scheme/config mismatches) that can affect TestFlight macOS eligibility independently of App Store eligibility? Is there an authoritative way in App Store Connect to inspect why a specific TestFlight build is marked as “iOS-only” for macOS? Any insight into TestFlight-specific eligibility rules for “Mac (Designed for iPad)” would be appreciated, especially given that App Store distribution for macOS is already working. I hope we're missing something very basic, and not that the app can't be tested as is for the mac, because it's useful to have our QA team test it on the mac.
Replies
1
Boosts
1
Views
206
Activity
4w
App Review Issue
It has been approximately three weeks since we submitted our app for review via App Store Connect, but it remains "In Review" and the review process has not been completed. For this reason, we also requested an expedited app review to the App Review Team last week. Will the review proceed if we simply wait? Is there any way to check the detailed status of this app review?
Replies
7
Boosts
2
Views
409
Activity
3w
App rejected for 4.3(a) duplicate, but it's the same app (rebranding update)
Hello, I am facing a rejection under Guideline 4.3(a) - Spam for "duplicate apps". However, this submission is an update of an existing app (same bundle identifier), not a new app. The update only includes a company rebranding (name, icon, and screenshots). At the moment, we only have one app with this functionality available on the App Store, and we are not intentionally distributing multiple apps targeting the same users or storefronts. The review team mentioned that the app duplicates another app we submitted, but we are unable to identify which app they are referring to. Has anyone experienced a similar issue where Apple flagged a duplicate app even though only one app is live? How did you resolve it? Any guidance would be greatly appreciated.
Replies
1
Boosts
0
Views
84
Activity
4w
Enterprise Install for a TLS Inspection proxy
I’m working on a product that includes TLS inspection capability. TLS inspection using a local MitM requires installing a trusted root certificate which is then used to create masquerade certificates to intercept and forward TLS traffic through the proxy. For manual installation the end user is required to authenticate as an administrator to modify the trust settings on our internal CA’s root certificate. My question concerns the options for enterprise deployment using an MDM. We want the generated root certificate to be unique to each endpoint so that if a private key is compromised it can’t be used to intercept traffic anywhere else. We can install a “certificate trust” configuration profile from the MDM but this requires a base64 encoded string of the root certificate. In effect the MDM needs to obtain the certificate from the endpoint and then send it back in the form of a configuration profile. I’m not aware that MDMs like Jamf can be configured to do this directly so we’re looking for any other mechanism to have macOS trust a locally generated certificate via MDM based on some non endpoint-unique criteria? One option might be to use an external CA with a trusted certificate to sign an intermediate endpoint certificate but this creates a significant risk if the external trusted certificate were ever compromised. Is this a common industry practice? So my question remains is there a better way to trust our per endpoint root certificate via MDM without needing to install a unique per endpoint configuration profile?
Replies
6
Boosts
0
Views
881
Activity
3w
Help with getting info for an WIFI USER EXPERIENCE APP
Hi I’m working on an app Called Wiux ( already on Android ) but one of my clients has a company with all iPhones so I need to develop the app for iOS, but I’m facing A huge wall, it’s an proactive wifi user experience monitor for distributed networks and the idea is that the app its sending every minute info about connectivity RSSI, which network , if is 2,4ghz or 5ghz channel used and device usage cpu ram etc but I find that is no getRSSI ( and I really need that data ) but some aps like iWifi or WiFi probe has that data and it works I check the reads with a phisical probe and my app on android and values match. i think maybe with NEHotspotHelper I could get the data but I don’t know how to ask to use it or if exist a dependency for quality monitoring that allows me to access that thow o info. ( And probably in the near future I face the same problem with LTE ( that I’m also monitoring with the app on Android and I think is going to be a problem on iOS )
Replies
1
Boosts
0
Views
46
Activity
4w
How works Experiment (Documentation) in Swift Playground?
Experiment Create a constant with an explicit type of Float and a value of 4. https://docs.swift.org/swift-book/documentation/the-swift-programming-language/guidedtour
Replies
3
Boosts
0
Views
2.1k
Activity
3w
My App Rejected 4.3 Design: Spam
hii submitted app yesterday to review, This morning I was surprised that the application was rejected, Reason 4.3 Design: Spam.And I've introduced an application programmed by myself, and a unique design.This message I receivedGuideline 4.3 - DesignWe noticed that your app provides the same feature set as other apps submitted to the App Store; it simply varies in content or language, which is considered a form of spam.The next submission of this app may require a longer review time, and this app will not be eligible for an expedited review until this issue is resolved.what should I do ?
Replies
29
Boosts
10
Views
52k
Activity
4w
pkgbuild on Tahoe fails to build packages if any directory name contains non-ascii characters
pkgbuild on Tahoe (26.3.1) fails to build packages if any directory name contains non-ascii characters. pkgbuild is able to build successfully with the same source data on previous versions on macOS, so this is a regression and prevents us from build able to build our products on macOS 26. Example that demonstrates the issue: mkdir -p MyAppData/Taishōgoto echo "Testing" >> MyAppData/Taishōgoto/Content.txt pkgbuild --identifier com.example.MyAppData --install-location '/Library/Application Support/MyAppData' --root MyAppData myappdata.pkg Error messages: parent directory ./Taishōgoto does not exist pkgbuild: error: Cannot write package to "myappdata.pkg". (The file “package.bom” couldn’t be saved in the folder “NSIRD_pkgbuild_52fPuN”.) I have submitted this via Feedback Assistant (FB22312299). I have not found a workaround. Tried copying pkgbuild from Sequoia but the problem persisted, probably because the buggy code is in PackageKit rather than the tool itself.
Replies
3
Boosts
0
Views
89
Activity
3w
Unwanted Communication Reporting Extension deletes messages always
I am implementing an Unwanted Communication Reporting Extension (IdentityLookupUI) to allow users to report spam messages to our backend. The extension works perfectly in terms of data collection and network reporting (using ILClassificationExtensionNetworkReportDestination). However, I’ve encountered an issue with the message lifecycle: whenever the user taps "Done" and I return a response, the system automatically moves the reported message to the Recently Deleted folder. I want to report the data but keep the message in its current folder (especially when the user classifies it as "Safe"). I have tried varying the ILClassificationAction, but it seems the system ignores the action in favor of "cleaning up" the thread. Example of my current implementation: override func classificationResponse(for request: ILClassificationRequest) -> ILClassificationResponse { // Even when returning .none or .reportNotJunk let action: ILClassificationAction = (self.type == "spam") ? .reportJunk : .none let response = ILClassificationResponse(action: action) response.userInfo = ["type": self.taggedType, "sender": self.sender] return response } My Questions: Is there a specific ILClassificationAction or userInfo key that tells iOS not to move the message? Is this movement a mandatory "post-report cleanup" behavior of the IdentityLookup framework that cannot be overridden? Does anyone know a workaround to report the communication while maintaining its original location in the Messages app?
Replies
0
Boosts
0
Views
52
Activity
4w