I'm getting ready to submit my first app to the App Store and I have a question. I know that I can't put my own registration into the app. Then what mechanism do we use to prevent the app from being shared by copying it to someone else's machine?
And I'm not using Swift if that matters.
Overview
Selecting any option will automatically load the page
Post
Replies
Boosts
Views
Activity
A screen time app I'm making has started telling users that their limit was reached even when they're far below their limit for the day (sometimes even at 0 minutes for the day).
This issue only started happening after upgrading my software to iOS 26.2.
Is this happening to anyone else? If so how have you found any solutions or does anyone know of any changes that could be causing this? Any help would be appreciated.
Hello.
I am attempting to wrap the C library libnfc as a Swift library. This is not for use on macOS - it's mainly for use on Linux (Raspberry Pi).
I have a USB reader and my code appears to work so far, however the code/test/debug cycle is suboptimal if I'm running the code on the Pi.
As I use a Mac for day-to-day coding, I'd prefer to use Xcode and my Mac for development. MacOS appears to capture the NFC hardware for its own frameworks and attempting to open a connection to the USB device gives a Unable to claim USB interface (Permission denied) error.
ioreg shows that the hardware is claimed by an Apple framework:
"UsbExclusiveOwner" = "pid 10946, com.apple.ifdbun"
Is there a way to temporarily over-ride that system and use the hardware myself? I've tried Googling but most of the replies are out of date and Claude's advice launchctl unload /System/Library/LaunchDaemons/com.apple.ifdreader.plist doesn't appear to work...
I'm wary of disabling SIP - is there a simple way to have access to the hardware myself?
Thanks.
Introduction:
I’m encountering a consistent crash in production on iOS 26.2 (build 23C55). The crash occurs deep within libicucore when calling [NSDateFormatter dateFromString:].
Crash Summary:
Exception Type: SIGSEGV (SEGV_ACCERR)
Fault Address: 0xffffffff
Thread: Crashed on Main Thread (Thread 0)
Library: libicucore.A.dylib
Code Snippet:
The crash is triggered by the following method. It converts a string to an NSDate using a specific format and locale:
// 获取日期date
- (NSDate *)getDateWithTime:(NSString *)time formatter:(NSString *)formatterStr {
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
[formatter setDateFormat:formatterStr];
formatter.timeZone = [NSTimeZone timeZoneWithName:@"Asia/Shanghai"];
formatter.locale = [[NSLocale alloc] initWithLocaleIdentifier:@"en_US_POSIX"];
return [formatter dateFromString:time];
}
Backtrace:
Here is the relevant part of the crash report:
Incident Identifier: E24485B6-C53E-4115-A6CF-A7E4A952AD50
CrashReporter Key: 21FAC1CF-F56B-409A-98AA-351D3D2EB06C
Hardware Model: iPhone18,2
Code Type: ARM-64
Parent Process: [1]
Date/Time: 2026-01-12T01:32:25Z
OS Version: iPhone OS 26.2 (23C55)
Report Version: 105
SDK Version: 0.0.4
Exception Type: SIGSEGV
Exception Codes: SEGV_ACCERR at 0xffffffff
Crashed Thread: 0
Thread 0 Crashed:
0 libicucore.A.dylib 0x000000019b81def8 0x19b74a000 + 868088
1 libicucore.A.dylib 0x000000019b7da91c 0x19b74a000 + 592156
2 libicucore.A.dylib 0x000000019b8d8340 0x19b74a000 + 1631040
3 libicucore.A.dylib 0x000000019b8eae18 0x19b74a000 + 1707544
4 libicucore.A.dylib 0x000000019b8eb600 0x19b74a000 + 1709568
5 libicucore.A.dylib 0x000000019b878be4 0x19b74a000 + 1240036
6 libicucore.A.dylib 0x000000019b87ae84 0x19b74a000 + 1248900
7 libicucore.A.dylib 0x000000019b87b2dc 0x19b74a000 + 1250012
8 libicucore.A.dylib 0x000000019b9564ac 0x19b74a000 + 2147500
9 libicucore.A.dylib 0x000000019b954afc 0x19b74a000 + 2140924
10 libicucore.A.dylib 0x000000019b952794 0x19b74a000 + 2131860
11 libicucore.A.dylib 0x000000019b98689c 0x19b74a000 + 2345116
12 CoreFoundation 0x00000001895dbfe0 0x18953d000 + 651232
13 CoreFoundation 0x00000001895dbaa0 0x18953d000 + 649888
14 Foundation 0x0000000186d2029c 0x186b88000 + 1671836
15 Foundation 0x00000001874a62dc 0x186b88000 + 9560796
16 Foundation 0x00000001874a6384 0x186b88000 + 9560964
17 xxxx 0x0000000105ea6e30 -[xxxxx getDateWithTime:formatter:] + 168
and
Thread 0 crashed with ARM-64 Thread State:
pc: 0x000000019b81def8 fp: 0x000000016f96bc10 sp: 0x000000016f96bbd0 x0: 0x00000000ffffffff
x1: 0x000000019ba1e8e0 x2: 0x0000000000000002 x3: 0x000000000000000b x4: 0x0000000000000074
x5: 0x0000000000000069 x6: 0x0000000000000000 x7: 0xfffff0003ffff800 x8: 0x000000009ba18014
x9: 0x00000001148dffd0 x10: 0x0000000000000002 x11: 0x0000000000000004 x12: 0x0000000000000220
x13: 0x0000000000000030 x14: 0x000000015b6f36b8 x15: 0x000000015cfe0000 x16: 0x00000002a19d0ff0
x17: 0x00000001f5590a70 x18: 0x0000000000000000 x19: 0x000000016f96bc30 x20: 0x0000000000000000
x21: 0x000000015cfe3200 x22: 0x000000019ba18014 x23: 0x0000000000000000 x24: 0x000000015cfe32a0
x25: 0x0000000000000003 x26: 0x0000000000000000 x27: 0x0000000000000000 x28: 0x000000015cfe3200
lr: 0x000000019b7da958 cpsr: 0x00000000a0000000
Topic:
App & System Services
SubTopic:
General
Tags:
Foundation
iOS
Objective-C
Internationalization
I'm ready to submit a new app with 3 subscription plans. But the status of the group remains 'Prepare for Submission.' And it won't change. All the individual subscription plans have the 'Ready to Submit' status. I have triple-checked individual plans to see if there is anything missing. No. Nothing is missing. There are no pending business contracts to review, either. I have even deleted an existing group and created a whole new subscription group. And I still end up with this prepare status. Am I the only one having this subscription group difficulty?
One thing that I realize is that the status appears as 'Ready to Submit' on individual subscription plans. But their respective localization pair of display name and description get the Prepared status. The display name and the description fields are both filled for all three plans. What a nice, merry, merry Christmas.
I don't know what else I can do to resolve this Prepared madness. I've been stuck for 4 hours.
Topic:
App Store Distribution & Marketing
SubTopic:
App Store Connect
Tags:
Subscriptions
In-App Purchase
As title says. Surely rendering bitmaps is something the hardware could handle, right? Please enable MKTileOverlay for watchOS.
I am building a bundle target for macOS 12 and later using Xcode. The bundle is not a standalone app, but a plug-in that is loaded by a host app. The code is written in Swift and uses the new Span API which is available in the OS-provided standard library in macOS 26 and backdeploys to macOS 10.14.4+.
Xcode should instruct the linker to include libswiftCompatibilitySpan.dylib in the compiled bundle to provide this backdeployment, but that does not happen.
SwiftPM does this additional linking by adding an rpath.
When trying to load the bundle using the NSBundle.loadAndReturnError() API, I get the following error on macOS 15 (and no error on macOS 26):
Error Domain=NSCocoaErrorDomain Code=3588 "dlopen(.../MyBundle.someBundle/Contents/MacOS/MyBundle, 0x0109): Library not loaded: @rpath/libswiftCompatibilitySpan.dylib
Referenced from: <CE92806C-94B7-367E-895D-EF6DF66C7FC2> .../MyBundle.someBundle/Contents/MacOS/MyBundle
Reason: tried: '/usr/lib/swift/libswiftCompatibilitySpan.dylib' (no such file, not in dyld cache), '/System/Volumes/Preboot/Cryptexes/OS/usr/lib/swift/libswiftCompatibilitySpan.dylib' (no such file), '/private/Frameworks/libswiftCompatibilitySpan.dylib' (no such file), '.../MyBundle.someBundle/Contents/MacOS/../Frameworks/libswiftCompatibilitySpan.dylib' (no such file), '/usr/lib/swift/libswiftCompatibilitySpan.dylib' (no such file, not in dyld cache), '/System/Volumes/Preboot/Cryptexes/OS/usr/lib/swift/libswiftCompatibilitySpan.dylib' (no such file), '/private/Frameworks/libswiftCompatibilitySpan.dylib' (no such file), '.../MyBundle.someBundle/Contents/MacOS/../Frameworks/libswiftCompatibilitySpan.dylib' (no such file)" UserInfo={NSLocalizedFailureReason=The bundle couldn’t be loaded., NSLocalizedRecoverySuggestion=Try reinstalling the bundle., NSFilePath=.../MyBundle.someBundle/Contents/MacOS/MyBundle, NSDebugDescription=dlopen(.../MyBundle.someBundle/Contents/MacOS/MyBundle, 0x0109): Library not loaded: @rpath/libswiftCompatibilitySpan.dylib
Referenced from: <CE92806C-94B7-367E-895D-EF6DF66C7FC2> .../MyBundle.someBundle/Contents/MacOS/MyBundle
Reason: tried: '/usr/lib/swift/libswiftCompatibilitySpan.dylib' (no such file, not in dyld cache), '/System/Volumes/Preboot/Cryptexes/OS/usr/lib/swift/libswiftCompatibilitySpan.dylib' (no such file), '/private/Frameworks/libswiftCompatibilitySpan.dylib' (no such file), '.../MyBundle.someBundle/Contents/MacOS/../Frameworks/libswiftCompatibilitySpan.dylib' (no such file), '/usr/lib/swift/libswiftCompatibilitySpan.dylib' (no such file, not in dyld cache), '/System/Volumes/Preboot/Cryptexes/OS/usr/lib/swift/libswiftCompatibilitySpan.dylib' (no such file), '/private/Frameworks/libswiftCompatibilitySpan.dylib' (no such file), '.../MyBundle.someBundle/Contents/MacOS/../Frameworks/libswiftCompatibilitySpan.dylib' (no such file), NSBundlePath=.../MyBundle.someBundle, NSLocalizedDescription=The bundle “MyBundle” couldn’t be loaded.}
My setup:
Xcode 26.2
macOS 26.2 (25C57) SDK (Built-in)
Good evening!
I tried to create an Apple Developer Account, but after filling in information (Name, Lastname, Address, and other information)
→ I accepted “This is a legal agreement between your organization and Apple.”
→ After, I got an error:
“We are unable to process your request. An unknown error occurred.”
I created ticket “102795742760” on January 7, 2026, but I am still waiting for a response, despite waiting for 2 business days.
Could you help me with this problem?
Thank you!
Topic:
Developer Tools & Services
SubTopic:
Apple Developer Program
Tags:
Accounts
Developer Program
I am trying to resubmit my app after failing a few times (first time doing this). Anyhow, when resubmitting the last 2 times, the "In-App Purchases and Subscriptions" section was always present on the version page so I could choose my IAP's and Subscriptions before submitting for review. Currently, I am trying to resubmit again, and the "In-App Purchases and Subscriptions" section is nowhere to be found and no matter what I try to do, it's just not showing up.
Currently, all my IAP's and Subscriptions have a "Waiting for Review" status and my app status is "1.0 Prepare for Submission".
Any ideas how I can get around this???
Topic:
App Store Distribution & Marketing
SubTopic:
App Store Connect
Tags:
Subscriptions
App Review
In-App Purchase
I'm at my wit's end with Apple's ridiculous timeframes! They promise 2 days but then completely ghost you for weeks. Here I am, literally trying to give them my money and get things moving, but it's like hitting a brick wall over and over. I've tried everything - even set up a whole separate account - and what do I get? Just more 'pending' status. No updates, no explanations, just endless waiting. How is it possible for a trillion-dollar company to make something as simple as accepting payment so infuriatingly difficult?
Topic:
Developer Tools & Services
SubTopic:
Apple Developer Program
Environment
Device: iPhone 15 Pro
iOS: iOS 18.0
Framework: AVFoundation
App type: Custom camera app using AVCaptureSession + AVCaptureVideoPreviewLayer
I’m seeing an intermittent but frequent issue where the camera preview layer briefly flashes empty after certain interruptions, even though the capture session reports itself as running and no errors are emitted.
This happens most often after:
Locking and unlocking the device
Switching cameras (back ↔ front)
The issue is not 100% reproducible, but occurs often enough to be noticeable in normal usage.
What happens
The preview layer briefly flashes as empty (sometimes just a “micro-frame”)
Duration: typically ~0.5–2 seconds before frames resume
session.isRunning == true throughout
No crash, no runtime error, no interruption end failure
Focus/exposure restore correctly once frames resume
Visually it looks like the preview layer loses frames temporarily, even though the session appears healthy.
Repro
Intermittent but frequent after:
Lock → unlock device
Switching camera (front/back)
Timing-dependent and non-deterministic
Happens multiple times per session, but not every time
Key observation
AVCaptureSession.isRunning == true does not guarantee that frames are actually flowing.
To verify this, I added an AVCaptureVideoDataOutput temporarily:
During the blank period, no sample buffers are delivered
Frames resume after ~1–2s without any explicit restart
Session state remains “running” the entire time
What I’ve tried (did NOT fix it)
Adding delays before/after startRunning() (0.1–0.5s)
Calling startRunning() on different queues
Restarting the session in AVCaptureSessionInterruptionEnded
Verifying session.connections (all show isActive == true)
Rebuilding inputs/outputs during interruption recovery
Ensuring startRunning() is never called between beginConfiguration() / commitConfiguration()
(Hit the expected runtime warning when attempted)
None of the above removed the brief blank preview.
Workaround (works visually but expensive)
This visually fixes the issue, but:
Energy impact jumps from Low → High in Xcode Energy Gauge
AVCaptureVideoDataOutput processes 30–60 FPS continuously
The gap only lasts ~1–2s, but toggling the delegate on/off cleanly is difficult
Overall CPU and energy cost is not acceptable for production
Additional notes
CPU usage is already relatively high even without the workaround (this app is camera-heavy by nature)
With the workaround enabled, energy impact becomes noticeably worse
The issue feels like a timing/state desync between session state and actual frame delivery, not a UI issue
Questions
Is this a known behavior where AVCaptureSession.isRunning == true but frames are temporarily unavailable after interruptions?
Is there a recommended way to detect actual frame flow resumption (not just session state)?
Should the AVCaptureVideoPreviewLayer.connection (isActive / isEnabled) be explicitly checked or reset after interruptions?
Is there a lightweight, energy-efficient way to bridge this short “no frames” gap without using AVCaptureVideoDataOutput?
Is rebuilding the entire session the only reliable solution here, or is there a better pattern Apple recommends?
I double-click it, and it doesn't install. I drag it to the provisioning profile folder, and it gets deleted immediately. It's an Apple Developer problem. I've already wiped my Mac clean twice and reinstalled everything, and I'm still having this problem.
Topic:
Code Signing
SubTopic:
Certificates, Identifiers & Profiles
Tags:
Health and Fitness
Provisioning Profiles
I nominated my app at the very end of the last year because I felt very good about it for the first time in my 16-year iOS app development history. But an unexpected rejection event has stricken it as depicted in this thread. It was approved 5 days ago. And I'm still furious about rejection because, as usual, they were wrong. Anyway, if I look under Nomination Details, it says that my last submission missed the boat. Is there anything that I can do after it missed the expected publish date?
Topic:
App Store Distribution & Marketing
SubTopic:
App Store Connect
I'm attempting to use WebAuthenticationSession from Authentication Services (https://developer.apple.com/documentation/authenticationservices/webauthenticationsession) in a SwiftUI app on macOS.
According to the docs, it is supported since macOS 13.3 and I'm testing on 26.
I'm deploying the same code to iOS as well, and it works there in a simulator, but I sometimes have to tap the button that triggers the authenticate(…) call more than once.
I've attached a simplified and redacted version of the code below. It works on iOS, but on macOS the authenticate call never returns.
There seems to be very little documentation and discussion about this API and I'm running out of ideas for getting this to work. Is this just a bug that Apple hasn't noticed?
import SwiftUI
import AuthenticationServices
import Combine
struct PreAuthView: View {
@Binding var appState: AppState
@Binding var credentials: Credentials?
@Environment(\.webAuthenticationSession) private var webAuthenticationSession
@State private var plist: String = ""
func authenticate() async {
guard var authUrl = URL(string: "REDACTED") else { return }
guard var tokenUrl = URL(string: "REDACTED") else { return }
let redirectUri = "REDACTED"
let clientId = "REDACTED"
let verifier = "REDACTED"
let challenge = "REDACTED"
authUrl.append(queryItems: [
.init(name: "response_type", value: "code"),
.init(name: "client_id", value: clientId),
.init(name: "redirect_uri", value: redirectUri),
.init(name: "state", value: ""),
.init(name: "code_challenge", value: challenge),
.init(name: "code_challenge_method", value: "S256"),
])
let scheme = "wonderswitcher"
do {
print("Authenticating")
let redirectUrl = try await webAuthenticationSession.authenticate(
using: authUrl,
callback: .https(host: "REDACTED", path: "REDACTED"),
additionalHeaderFields: [:],
)
print("Authenticated?")
print(redirectUrl)
let queryItems = URLComponents(string: redirectUrl.absoluteString)?.queryItems ?? []
let code = queryItems.filter({$0.name == "code"}).first?.value
let session = URLSession(configuration: .ephemeral)
tokenUrl.append(queryItems: [
.init(name: "grant_type", value: "authorization_code"),
.init(name: "code", value: code),
.init(name: "redirect_uri", value: redirectUri),
.init(name: "code_verifier", value: verifier),
.init(name: "client_id", value: clientId),
])
var request = URLRequest(url: tokenUrl)
request.httpMethod = "POST"
let response = try await session.data(for: request)
print(response)
} catch {
return
}
}
var body: some View {
NavigationStack {
VStack(alignment: .leading, spacing: 12) {
Text("This is the pre-auth view.")
HStack {
Button("Log in") {
Task {
await authenticate()
}
}
Spacer()
}
Spacer(minLength: 0)
}
.padding()
.navigationTitle("Pre-Auth")
}
}
}
#Preview {
PreAuthView(appState: .constant(.preAuth), credentials: .constant(nil))
}
Topic:
UI Frameworks
SubTopic:
SwiftUI
When using UITraitBridgedEnvironmentKey to pass a trait value to the swift environment, it causes a crash when trying to access the value from the environment.
The issue seems to be related to how swift uses the UITraitBridgedEnvironmentKey protocol since the crash occurs in swift::_getWitnessTable () from lazy protocol witness table accessor…. It can occur when calling any function that is generic using the UITraitBridgedEnvironmentKey type.
I originally encountered the issue when trying to use a UITraitBridgedEnvironmentKey in SwiftUI, but have been able to reproduce the issue with any function with a similar signature.
https://developer.apple.com/documentation/swiftui/environmentvalues/subscript(_:)-9zku
Steps to Reproduce
Requirements for the issue to occur
Project with a minimum iOS version of iOS 16
Build the project with Xcode 26
Run on iOS 18
Add the following code to a project and call foo(key: MyCustomTraitKey.self) from anywhere.
@available(iOS 17.0, *)
func foo<K>(key: K.Type) where K: UITraitBridgedEnvironmentKey {
// Crashes before this is called
}
@available(iOS 17.0, *)
public enum MyCustomTraitKey: UITraitBridgedEnvironmentKey {
public static let defaultValue: Bool = false
public static func read(from traitCollection: UITraitCollection) -> Bool { false }
public static func write(to mutableTraits: inout UIMutableTraits, value: Bool) {}
}
// The crash will occur when calling this. It can be added to a project anywhere
// The sample project calls it from scene(_:willConnectTo:options:)
foo(key: MyCustomTraitKey.self)
For example, I added it to the SceneDelegate in a UIKit Project
class SceneDelegate: UIResponder, UIWindowSceneDelegate {
var window: UIWindow?
func scene(_ scene: UIScene, willConnectTo session: UISceneSession, options connectionOptions: UIScene.ConnectionOptions) {
if #available(iOS 17, *) {
// The following line of code can be placed anywhere in a project, `SceneDelegate` is just a convenient place to put it to reproduce the issue.
foo(key: MyCustomTraitKey.self)
// ^ CRASH: Thread 1: EXC_BAD_ACCESS (code=1, address=0x10)
}
}
}
Actual Behaviour
The app crashes with the stack trace showing the place calling foo but before foo is actually called. (ie, a breakpoint or print in foo is never hit)
#0 0x000000019595fbc4 in swift::_getWitnessTable ()
#1 0x0000000104954128 in lazy protocol witness table accessor for type MyCustomTraitKey and conformance MyCustomTraitKey ()
#2 0x0000000104953bc4 in SceneDelegate.scene(_:willConnectTo:options:) at .../SceneDelegate.swift:20
The app does not crash when run on iOS 17, or 26 or when the minimum ios version is raised to iOS 17 or higher.
It also doesn't crash on iOS 16 since it's not calling foo since UITraitBridgedEnvironmentKey was added in iOS 17.
Expected behaviour
The app should not crash. It should call foo on iOS 17, 18, and 26.
Hi there,
First thanks for all the work on BGContinuedProcessingTask! It looks really promising.
I have a question / issue around the behavior when a BGContinuedProcessingTask expires. Here is my setup.
I have an app who's responsible for uploading large files in the field (AKA wifi is not expected)
For a given file, it can likely fail due to network conditions
I'm using Multipart upload though so I can retry a file to pick up where it left off.
I use one taskIdentifier per file, and when the file fails, I can retry the task and have it continue where it left off (I am reusing the taskIdentifier here for retries, let me know if I shouldn't be doing that)
Here is the behavior I am seeing
I start an upload, it seems to be uploading normally
I turn on airplane mode to simulate expiration of the task
the task fails as expected after ~30 seconds, and I see the failure in my home screen.
I have callbacks in the task to put my app in the proper state on expiration / failure
I turn back on airplane mode and I retry the task, the way I do this is I do NOT re-register, I simply re-submit the task with the same TaskIdentifier.
What I would have expected is that the failure task is REPLACED with the new task and new progress. Instead what I see is TWO ContinuedBackgroundProcessingTasks, one in the failure state and one in progress.
My question is
How can I make retries reuse the same task notification item?
OR if that's not possible, how do I programmatically clear the task failure? I've tried cancelTask but that doesn't seem to clear it.
I've been rejected multiple times for App Tracking Transparency issues, but I'm stuck due to an App Store Connect bug.
ISSUE:
When I try to edit "Advertising Data" in App Privacy settings to uncheck "Used for tracking purposes," I get an error: "An error has occurred. Try again later."
This has persisted for 2 weeks across multiple browsers and devices.
MY SITUATION:
My app uses AdMob for rewarded video ads (users watch ads to earn in-game currency)
I do NOT want to track users across apps/websites
I want to declare: "Advertising Data: Used for Third-Party Advertising" (NOT for tracking)
But I cannot save these privacy setting changes due to the App Store Connect error.
Apple Review keeps rejecting my app saying to "update privacy settings," but their system won't let me.
QUESTIONS:
Is there a workaround for this App Store Connect bug?
Can Apple manually update my privacy settings?
Any help appreciated. I've been stuck for 2 weeks.
Hello,
We are facing an App Store Connect issue that is blocking our release and cannot be resolved from the developer side.
Here is the exact situation:
iOS app version 1.0 was initially approved together with its associated in-app purchases (auto-renewable subscriptions).
We decided not to release that version and manually set version 1.0 to “Developer Rejected”.
After that, we made minor optimization fixes and uploaded a new build to App Store Connect.
When attempting to submit this new build, the In-App Purchases section no longer appears in the App Store version UI, so we are unable to associate the already approved IAPs with the submission.
Additionally, the “New Version” option is not available, so we cannot create a new app version either.
As a result, any submission is rejected with the same message stating that the app references in-app purchases that were not submitted for review, even though the IAPs themselves are already approved.
We have contacted App Store Connect Support and explained the situation in App Review notes, but we continue to receive the same rejection without any way to resolve the issue through App Store Connect.
This appears to be an App Store Connect tooling or version state issue related to a Developer Rejected app version, rather than an in-app purchase configuration problem.
Could an Apple staff member please assist by forwarding this to App Store Connect Support or engineering so the affected app version state can be reset or removed, allowing us to associate the approved IAPs and proceed with submission?
Thank you for your help.
Topic:
App Store Distribution & Marketing
SubTopic:
App Store Connect
Tags:
App Store Connect
In-App Purchase
We've often observed connectivity issues from our VPN app that can only be remedied by removing the VPN profile. It happens to a small but significant amount of our users, this often happens more when the app is updated, but the VPN profile corruption can happen without that too.
The behavior we're observing is that any socket opened by the packet tunnel process just fails to send any data whatsoever. Stopping and restarting the packet tunnel does not help. The only solution is to remove the profile and create a new one. We believe our app is not the only one suffering from this issue as other VPN apps have added a specific button to refresh their VPN profile, which seemingly deletes and re-created the VPN configuration profile. Previously, we've caught glimpses of this in a sysdiagnose, but that was a while ago and we found nothing of interest. Alas, the sysdiagnose was not captured on a device with the network extension diagnostic profile (it was not a developer device).
I would love to get technical support with this, as our bug reports have gone unanswered for long enough, yet we are still struggling with this issue. But of course, there is no minimum viable xcodeproject that reproduces this. Is there anything we can feasibly do to help with this issue? Is it even an acknowledged issue?
My app has never been associated with my personal Apple ID - this is exactly why I use a Business/Managed Apple ID for all development‑related work. However, after the most recent apple updates, TestFlight has started creating conflicts between these accounts.
Current situation:
The App Store is correctly linked to my personal Apple ID, as expected.
TestFlight, which should be tied to our Business/Managed Apple ID for internal testing, is now incorrectly linked to my personal Apple ID.
App Store Connect and our developer account remain correctly associated with the Business/Managed Apple ID.
I should not be required to sign out of my personal Apple ID on the device just to use TestFlight with the Business/Managed Apple ID. This has never been required before, and signing out risks data loss if a full backup hasn’t been done.
Attempting to switch accounts inside TestFlight results in an “internal error,” making it impossible to redeem TestFlight codes or continue our testing workflow.
I’ve already tried deleting our app, deleting and reinstalling TestFlight and removing all personal email accounts associated with Apple Developer. TestFlight still forces the personal Apple ID.
If anyone has any recommendations other than signing out of my personal account, I would really appreciate it.
Thank you!
Topic:
App Store Distribution & Marketing
SubTopic:
TestFlight
Tags:
Developer Tools
TestFlight
Developer ID