Overview

Post

Replies

Boosts

Views

Activity

1st App rejected because it is too similar to my webpage
I received this message "Your app provides a limited user experience as it is not sufficiently different from a web browsing experience." It needs to be more robust and native. When submitting this the app had: Push Notifications Core Location Phone Contact access So now I am adding: Haptic feedback Quick touch actions A more robust add to calendar function. (the app does scheduling) But is this enough for resubmission? I am not really sure what is considered "robust" and "more native".... that is vague.
0
0
155
4w
Family Controls entitlement not applying to DeviceActivityMonitor and ShieldConfiguration extensions
I have the Family Controls & Personal Device Usage entitlement approved for my main app target, but I'm unable to get it applied to my app extensions (DeviceActivityMonitor and ShieldConfiguration). The entitlement request form at developer.apple.com/contact shows "Thank you for your submission" when I submit requests for the extensions, but the requests never actually register. No follow-up email, no change in my account. Without the entitlement on these extensions, I can't use the core Screen Time API functionality (monitoring device activity and displaying shield UIs when apps are blocked). The main app target has the entitlement, but the extensions need it independently to function. Has anyone run into this? Is there a way to get the entitlement extended to app extensions, or is there a step I'm missing in the provisioning process?
0
0
68
3w
App rejected under guideline 2.5.1 - Private API _SecCertificateIsValid flagged but not present in binary
App is repeatedly rejected under Guideline 2.5.1 for referencing the private API:_SecCertificateIsValid Reported custom framework CommonLibrary.framework. The SDK is written in Objective-C and uses only public Security APIs. It does not use any deprecated APIs. We have verified the framework binary using nm, otool, and strings, and _SecCertificateIsValid does not appear in exported or hidden symbols. Bitcode is disabled, dead-code stripping is enabled, and the Release build uses -Os. Despite this, App Store Connect continues to detect _SecCertificateIsValid. We have attached herewith screenshots of our analysis for the reference. Can Apple’s server-side analysis or Security.framework internals still surface _SecCertificateIsValid? Is there a recommended way for SDK authors to prevent this symbol from being flagged?
0
0
99
3w
File Download Support in SwiftUI Native WebView (iOS 26+)
I am using the native SwiftUI WebView and WebPage APIs (iOS 26+) and would like to implement file download functionality using the native SwiftUI WebView. However, I have not been able to find any APIs equivalent to WKDownload. In WKWebView, the WKDownload API can be used to handle downloads. I am looking for a similar API or recommended approach in the native SwiftUI WebView that would allow downloading files. If anyone has guidance or suggestions on how to implement this, I would appreciate your help.
0
1
442
3w
TestFlight install fails with “The requested app is not available or doesn’t exist” after successful upload (Flutter app)
Hello, I’m facing an issue installing my app from TestFlight on a physical iPhone device. App & Environment App: Desi Charades Framework: Flutter Distribution: TestFlight Build status: Upload completed Device: iPhone 7+ iOS version: 15.6 Tester type: Internal Apple Developer Program: Paid account Issue Description After uploading a build successfully to App Store Connect and adding it to TestFlight, the app appears in TestFlight with the Install button. However, when I tap Install, I receive the following error on the device: “Could not install Desi Charades App. The requested app is not available or doesn’t exist.” The build is visible in TestFlight, but installation fails immediately. Upload Warnings During archive upload, App Store Connect shows the following warnings: Upload Symbols Failed The archive did not include a dSYM for: ffmpegkit.framework libavcodec.framework libavdevice.framework The app uses ffmpeg-kit (Flutter plugin), which ships precompiled frameworks. Steps Already Checked Build shows in TestFlight Build added to test group Tester is assigned correctly Correct Apple ID signed in on device Device restarted Waited for processing to complete App Store availability set to “All Countries or Regions” Questions Can missing dSYM files for ffmpeg-kit frameworks cause TestFlight install failures? Are there additional TestFlight availability or processing checks that could cause this error? Is this error related to TestFlight build propagation or caching on Apple’s side? Any guidance on what could cause TestFlight to show the app but fail installation would be appreciated. Thank you.
0
0
134
4w
Getting "Something went wrong" when changing Xcode version to 26.2 for a Xcode Cloud workflow
My workflow is using Xcode 16.4 and macOS Tahoe 26.2 (25C56). I am trying to change Xcode version to 26.2. When I click Save after some time I get "Something went wrong" error message without any additional details (see screenshot). I get the same error for the following cases: Tried changing a different workflow Tried to deactivate a workflow Tried various combinations of Xcode (26.1, 26.1.1, 26.2) + mac OS (26.1, 26.2) Tried creating a new workflow with Xcode 26.2 (haven't tried any other Xcode versions though)
0
0
62
3w
Misclassification of Mainland China real-name anti-addiction verification as “Login Service” + Unfair/Mechanical Review Handling
a I am submitting this appeal because we believe our app was misunderstood and the review outcome and follow-up communication have been unfair and mechanically handled. 1) What happened / Outcome we disagree with Our submission was rejected under Guideline 4.8 – Design – Login Services, with the reviewer stating that our app uses a third-party login service but does not provide an equivalent login option that meets Apple’s requirements (limited data collection, private email option, no advertising tracking without consent). However, our game does not require or force any third-party login. The feature being treated as “login” is not a login service at all—it is Mainland China real-name / anti-addiction compliance verification. 2) Why we believe we comply with the App Review Guidelines A. The feature in question is compliance verification, not login Players do not need to create or log into any in-game account to play. The flow exists solely to satisfy Mainland China real-name/anti-addiction compliance requirements. Verification can be completed by either: Using TapTap only as a real-name verification authorization option, or Manually entering a Chinese ID number + legal name to pass verification and play. Because this is verification, not an account login, Guideline 4.8 “Login Services” should not apply in the way the rejection message assumes. B. There is no “playable account” to provide After we clarified the above, we continued to receive repeated, template-like requests to provide a “playable account.” This request does not match our product design: there is no account system required for gameplay, so there is no “review account” to provide. We have already provided the information needed to complete the verification path (ID + name for the compliance flow), yet the responses remained repetitive and did not reflect that the reviewer checked our explanation. 3) Why we believe the handling was unfair Even after clearly explaining that this is not a login system, the review communication continued with mechanical responses that did not address the clarification. This caused significant delays to our release timeline and appears to be unfair treatment compared with many existing App Store apps that use similar compliance verification flows. 4) What we are requesting from the Appeals Team Please investigate and correct the misclassification of our real-name compliance verification as a “login service” under Guideline 4.8. If the team still believes Guideline 4.8 applies, please provide: The specific guideline rationale, and The exact screen/step in our app that is being interpreted as “login.” Please advise what specific materials you need to proceed efficiently (e.g., screen recording of the verification flow, step-by-step review instructions, configuration notes). We are ready to provide them immediately.
0
0
313
3w
iPadOS 26 – SwiftUI Menu in ToolbarItem shifts during pointer hover when view is presented as sheet
I am observing inconsistent pointer hover behavior for a SwiftUI Menu placed inside a ToolbarItem on iPadOS 26.2 (real device). Scenario: • Screen A is pushed inside a NavigationStack. • Screen B is presented as a sheet (with its own NavigationStack). • Both screens contain the same toolbar Menu item using an SF Symbol (arrow.up.arrow.down). Observed behavior: In the pushed view, hover is mostly stable. In the sheet-presented view, the SF Symbol visibly shifts/jumps when pointer hover activates. The hover highlight shape differs from the native navigation back button. Label-level hoverEffect modifiers do not stabilize the behavior. Minimal example: import SwiftUI struct ContentView: View { @State private var showSheet = false var body: some View { NavigationStack { VStack { Button("Open Sheet") { showSheet = true } } .navigationTitle("Home") .toolbar { ToolbarItem(placement: .topBarTrailing) { Menu { Button("Option A") { } Button("Option B") { } } label: { Image(systemName: "arrow.up.arrow.down") } } } .sheet(isPresented: $showSheet) { SheetView() } } } } struct SheetView: View { var body: some View { NavigationStack { Text("Sheet View") .navigationTitle("Sheet") .toolbar { ToolbarItem(placement: .topBarTrailing) { Menu { Button("Option A") { } Button("Option B") { } } label: { Image(systemName: "arrow.up.arrow.down") } } } } } } This behavior is reproducible 100% on device. Is this expected behavior for Menu inside ToolbarItem when presented as a sheet, or a regression in pointer interaction rendering?
Topic: UI Frameworks SubTopic: SwiftUI
0
0
33
2w
Frameworks and library dependencies
I have a framework, which depends on a library (GPGME) to do its actual encryption. As a consequence of using this external library, there are header files which have GPGME types in them... @interface E3Gpgme : NSObject ... /*****************************************************************************\ |* Call GPGME to sign \*****************************************************************************/ - (int) signWithMode:(gpgme_sig_mode_t)mode userId:(NSString *)signingKeyOrEmail srcStream:(E3Stream *)src dstStream:(E3Stream *)dst error:(NSError **)error; ... @end . This means the E3Gpgme class header file has to #import <gpgme.h> to get those type definitions. That is then proving problematic because the framework modularisation fails, with <e3gpgme.h> obviously not being a part of the framework, so the project refuses to build. I can see a few ways around this: Just don't run the modularisation check. That doesn't sound like a fantastic option import the GPGME headers (there's only 2) into the project and bundle them as if they were project ones. Again, not a great option, I don't expect GPGME to change its API but it runs the risk of there being a mismatch in future if the library code itself remains external. So what's the best-practice for requiring a dependency on a library, not a framework ? Is there a way to copy the library binary into a folder inside the framework folder and make sure you link with that ? Assuming that's the shared library it ought to still be ok for the LGPL licensing... Is there a better way ? I'm sure I'm not the first person to run into this :)
0
0
26
3w
Basics - Dice Demo, calculate total score
I've worked through Apple's dice demo for SwiftUI, so far so good. I've got a single Die view with a button to "roll" the die. This works perfectly using the code below: struct DieView: View { init(dieType: DieType) { self.dieValue = Int.random(in: 1...dieType.rawValue) self.dieType = dieType } @State private var dieValue: Int @State private var dieType: DieType var body: some View { VStack { if self.dieType == DieType.D6 { Image(systemName: "die.face.\(dieValue)") .resizable() .frame(width: 100, height: 100) .padding() } else {//self.dieType == DieType.D12{ Text("\(self.dieValue)") .font(.largeTitle) } Button("Roll"){ withAnimation{ dieValue = Int.random(in: 1...dieType.rawValue) } } .buttonStyle(.bordered) } Spacer() } } Now I want to do a DiceSetView with an arbitrary number of dice. I've got the UI working with the following; struct DiceSetView: View { @State private var totalScore: Int = 0 var body: some View { ScrollView(.horizontal) { HStack{ DieView(dieType: DieType.D6) DieView(dieType: DieType.D6) DieView(dieType: DieType.D6) } } HStack{ Button("Roll All"){} .buttonStyle(.bordered) Text("Score \(totalScore)") .font(.callout) } Spacer() } } Where I'm struggling is how to get the total of all the dice in a set and to roll all the dice in a set on a button click. I can't iterate through the dice, and just "click" the buttons in the child views from their parents, and I can't think how it should be structured to achieve this (I'm new to this style of programming!) - can anyone point me in the right direction for how to achieve what I want? I realise that I'm probably missing something fundamentally conceptual here....
Topic: UI Frameworks SubTopic: SwiftUI
0
0
27
2w
Same Color in View and colorEffect shader argument produce different results
Opened feedback item FB21877364. Context I have the following Metal shader, which replaces one color with another. [[ stitchable ]] half4 recolor( float2 position, half4 currentColor, half4 from, half4 to ) { if (all(currentColor == from)) return to; return currentColor; } Given this SwiftUI view: let shader = ShaderLibrary.recolor(.color(.red), .color(.green)) Color.red .colorEffect(shader) I get a red rectangle instead of the expected green one. Note that this works on both dynamic and non-dynamic colors. Note that this sometimes works with some colors, which is very inconvenient when trying to figure out what's going on. Did I miss something? I would've expected the shader to work with colors the same way. Issue To really highlight the issue, here's another test case. I'll define #94877E in an Asset Catalog as example and check the RGB values using the Digital Color Meter app in "Display native values" mode. We'll use the following shader to determine how colorEffect receives colors: [[ stitchable ]] half4 test( float2 position, half4 currentColor, half4 color ) { return color; } The following view yields "R: 0.572, G: 0.531, B: 0.498". Color.example While this one yields "R: 0.572, G: 0.531, B: 0.499". let shader = ShaderLibrary.test(.color(Color.example)) Color.white.colorEffect(shader) I would expect them to match.
Topic: UI Frameworks SubTopic: SwiftUI
0
0
22
3w
Place an app on a family device
I had a free developer account and now have a paid account. I can now install unlimited number of apps on my personal devices. I want to install more than 3 apps on a device of a family member. The device of this member has been registered under Certificates, Identifiers & Profiles. When I try to install apps with xCode on this family device I still get the message that I reached the limit of 3 apps (free account). By signing & capabilities I use the paid account as team. I have deleted all the apps on that device where installed with the free account, restarted the device and restarted xcode but the problem still exists.
0
0
39
2w
400 Invalid request when use usermigrationinfo at the second time transferring
I'm testing app transferring, before, I have migrate user from teamA to teamB, including subA->transferSub->subB process, now I'm transfer the app from teamB to teamC, after the transfer requested, I can't get transfer_id by /usermigrationinfo api, which response 400 invalid request. the question is I can still get transfer sub by the auth/token api(grant_type: authorization_code) with teamB parameters(teamIdB/clientIdB/appSecretB/redirectUrlB/subB),but the value is same as first time transfer_id which get during teamA to teamB. when use parameters above with target(teamIdC) to request /usermigrationinfo, invalid request was responsed. im sure that all parameters is correct, dose it cause by teamB still in 60-days first transferring(sure already accepted)?
0
0
86
3w
App Launchscreen Size NOT Correct on iPadOS 26
Hello, We’re seeing an iPad-specific Launch Screen issue related to multitasking window sizes. Environment Device: iPad (iPadOS 26) Device orientation: Landscape App is launched in a small window where the app window is portrait-shaped (width < height) Issue When the iPad is in landscape but the app is launched as a portrait-shaped small window, the LaunchScreen.storyboard appears to be rendered/layouted as landscape, not matching the actual window geometry. As a result, the Launch Screen content is clipped / partially missing (we see blank/empty area at the bottom during launch). After the app finishes launching, our first view controller uses the correct window size and the UI looks fine — the problem is mainly during the Launch Screen phase. What we checked LaunchScreen.storyboard uses Auto Layout and is expected to adapt to screen/window size. This only reproduces when the device orientation and the app window aspect ratio don’t match (landscape device + portrait-shaped app window, or vice versa). When device orientation and window shape are aligned, the Launch Screen displays correctly. Question Is it expected that iPadOS renders LaunchScreen.storyboard based on the interface orientation / size class rather than the actual window bounds in multitasking scenarios? If not expected, what is the recommended way to ensure the Launch Screen matches the app’s actual window size/aspect ratio at launch (without using code, since Launch Screen is static)? Are there any additional diagnostics or recommended steps to help us investigate and confirm the root cause (e.g., specific logs, APIs/values to capture at launch such as UIWindowScene bounds, interfaceOrientation, size classes, or any guidance on how Launch Screen snapshots are chosen/cached in multitasking)? Thank you.
0
0
144
3w
UK TAX INFO - alternative terms addendum - showing under tax forms with no visible agreement
Hello everyone, I’m facing a confusing issue in App Store Connect and hoping someone here has encountered this before. Context: • Company developer account (UK-based) • App is free to download • Only optional In-App Purchases (Apple IAP) • No external payments • Using standard App Store distribution • Paid Apps agreement is active • US tax forms (W-8BEN-E) are active Issue: Under Agreements → Tax Forms, I see: United Kingdom Tax Info – Alternative Terms Addendum – Missing Tax Info However: • There is no Alternative Terms Addendum visible under Agreements • I have not intentionally opted into EU DMA Alternative Terms • I do not have a UK VAT number (Apple should be Merchant of Record under standard IAP) Finance Support says they do not support Alternative Terms. Agreements support has not responded yet. Questions: 1. Can the Alternative Terms flag exist only under Tax Forms without a visible agreement? 2. How can a developer revert back to standard App Store terms if this happens? 3. Has anyone had Apple remove this EU DMA backend flag manually? Any guidance or similar experiences would be really appreciated. Thanks in advance
0
0
31
3w
Intended Flow of Invalidating the pushToStartToken When User Logs Out
Hi, we start and update Live Activities with ActivityKit push notifications in our app, but want to do so only if the user is logged in. Therefore we only send the pushToStartToken to the server when a user logs in (or when the token changed and the user is still logged in.) When the user logs out, we remove that start token from our server so that no LA can be started while the app is in the logged out state. This means that the logout isn't happening immediately but is waiting for that deletion request to succeed. This could also fail and lead to the use rnot being able to log out, e.g. if the user has no internet access. If that deletion request would be fire and forget, we would end up in a state where the server still has the token and might start LAs without any user being logged in. The token flow for Remote Push Notifications is different, on the other hand: requesting a token asynchronously via UIApplication.shared.registerForRemoteNotifications() but invalidating it synchronously (at least from the app's perspective) on logout via UIApplication.shared.unregisterForRemoteNotifications(), which makes it way easier for us to make sure the app does not get notifications when no user is logged in. We're wondering if we're just holding it wrong or if our way of handling the LA token deletion is indeed the intended one?
0
1
154
3w
Where is the Apple Developer Program and Support I have paid for?
Been trying to get into Developer Prgram since December 2025. And like many others, it seems the biggest tech company on the planet cannot streamline an enrollment program. Unless, it’s by design, to test your nerve? Anyways, I have now ended up paying twice, and still not even a squeak from support. There is no Developer Support phone number in South Africa, and mails go unanswered. How is this possible? $200 out of pocket, and nothing to show. Cannot even find a method for refunds. If there are steps to still follow or docs to submit, why take my money, then ask for more info?? But this black hole of SILENCE…. Now that skype is no longer, what other platform will allow me to call the US Support number from South Africa?
0
0
74
3w