Overview

Post

Replies

Boosts

Views

Activity

[After iPhone migration] Health app permissions for connected app are not shown
After upgrading to a new iPhone and restoring from an iCloud backup using the same Apple ID, I noticed an issue with Health app permissions. ■ What is happening On my previous iPhone, an app had permission to read step count data. After restoring to the new iPhone, the app still appears in the Health app under Sources. However, when I tap the app, the usual data type permission toggles (such as Steps) are not displayed at all. As a result, the app is unable to read step count data. ■ Additional details The app itself seems to be recognized as a Health data source. However, the data type permission screen is empty. No ON/OFF switches are shown. The backup was created on iOS 18, and the restore was performed on iOS 26. I have not yet confirmed whether this also happens with other iOS version combinations. ■ Questions Is it expected behavior that Health app permissions (per data type) are not restored via iCloud backup? Has anyone experienced a similar situation where the app appears under Sources but the permission options are missing? If so, how did you resolve it? Any information from users who have experienced the same issue would be greatly appreciated.
4
0
92
12m
Waiting for Review - Hardware Confusion
I'm not sure where to go from here, I've filled in the "appeal" form but had no response. My app has somehow been interpreted to 'only work with specific hardware' - this is not the case it works wither either specific hardware OR a third party piece of software (which is freely available) The third party software provides a TCP server and my app connects to it as a client. I have been rejected four times now because I haven't provided a 'video to show the paring process with the dedicated hardware' There isn't a 'pairing process' any more than there is a pairing process between Safari and a website or Mail and an IMAP server, it literally connects to the specified IP and Port. I've provided a video of this (showing a screen capture of the software in question, and a screen capture from an actual iOS device - my iPhone - showing me connecting to the other application in the app, and demonstrating the functionality of the app - but keep being told I need to provide a video with hardware. I don't own the hardware version, I use the software version. It's exactly the same process and software whether it is running on hardware or software.
0
0
3
16m
Unlocking a demo mode without IAP
I am aware of the following in the App Review Guidelines; 3.1.1 If you want to unlock features or functionality within your app, (by way of example: subscriptions, in-game currencies, game levels, access to premium content, or unlocking a full version), you must use in-app purchase. Apps may not use their own mechanisms to unlock content or functionality, such as license keys, augmented reality markers, QR codes, cryptocurrencies and cryptocurrency wallets, etc. The app itself operates normally, but imposes limits after a limited time of use. Purchasing the full version removes these limits. This is a one-time IAP, not a subscription. My app is aimed at professionals within the entertainment industry, and will only ever be used within a theatre or other similar venue. I do not intend to provide any other paid route to the full version than via the App Store. However, what I would like to do is provide free use at certain events and to students in their educational venues (e.g. college theatres etc)- is it acceptable to use an external mechanism (e.g. a server based API) to temporarily remove the limitations whilst in that venue? Or, likewise, provide an extension to the free trial period for specific uses. Note this is not a purchase, as there is no payment. Therefore there is no revenue outside of the App Store (which surely is the point of the mandate to use IAP for this purpose) Also, it's not fully 'unlocking' the app (the user doesn't get the full version, they just aren't bound by the trial limit timer when within that venue or for a limited time) I'm aware that another route would be to put a different version of the app in the store that requires a username and password for use (for example) and then provide those credentials to log in - as there's lots of apps that follow that model, but it seems clunky to require the user to download a different app.
0
0
4
21m
Admin not appearing in "Choose a Candidate" list for Account Holder Transfer
Hello, I am trying to transfer the Account Holder role to a different person on our team, but I am stuck in a loop. Despite the recipient being an active Admin on the team for some time, their name does not appear in the "Choose a Candidate" dropdown menu on the Apple Developer website. Here is our current setup and what we have tried: Recipient Role: The person I am transferring to is already an Admin (verified in Users and Access). Security: 2FA is enabled and active on the recipient’s Apple ID. Account Type: This is for an Organization/Company membership. The Issue: When I (the current Account Holder) go to Membership Details > Update Your Information > Transfer Account Holder Role, the candidate list is empty or does not show this specific Admin. We have investigated the Identity Verification requirement, but hit a dead end: The recipient logged into the Apple Developer app on an iPhone (signed into the same Apple ID and primary iCloud account on the device). In the Account tab, there is no "Verify Identity" button visible. The options visible are only: Create Profile, Notifications, Enroll Now, and Sign Out. We have already tried "Create Profile," but it did not trigger an ID scan or resolve the visibility issue in the transfer list. Questions: Does the recipient need to click "Enroll Now" and start a $99 membership application just to trigger the identity verification, even if they are joining an existing organization? Could the use of a personal email domain (@hotmail.com) for the Admin Apple ID be filtering them out of the "Candidate" list for an Organization account? Are there any specific steps to "force" the Identity Verification button to appear in the app for an existing Admin? Any guidance on how to get the Admin's identity verified so they appear as an eligible candidate would be greatly appreciated.
0
0
2
26m
Associated domains in Entitlements.plist
To use passkeys, you need to place the correct AASA file on the web server and add an entry in the Entitlements.plist, for example webcredentials:mydomain.com. This is clear so far, but I would like to ask if it's possible to set this webcredentials in a different way in the app? The reason for this is that we are developing a native app and our on-premise customers have their own web servers. We cannot know these domains in advance so creating a dedicated app for each customer is not option for us. Thank you for your help!
0
0
3
27m
Best Practices for Continuous Background Biometric Monitoring on Apple Watch
Hello, everyone! I'm seeking some guidance on the App Store review process and technical best practices for a watchOS app. My goal is to create an app that uses HealthKit to continuously monitor a user's heart rate in the background for sessions lasting between 30 minutes and 3 hours. This app would not be a fitness or workout tracker. My primary question is about the best way to achieve this reliably while staying within the App Store Review Guidelines. Is it advisable to use the WorkoutKit framework to start a custom, non-fitness "session" for the purpose of continuous background monitoring? Are there any other recommended APIs or frameworks for this kind of background data collection on watchOS that I should be aware of? What are the key review considerations I should be mindful of, particularly regarding Guideline 4.1 (Design) and the intended use of APIs? My app's core functionality would require this kind of data for a beneficial purpose. I want to ensure my approach is technically sound and has the best chance of a successful review. Any insights or advice from developers who have experience with similar use cases would be incredibly helpful! Thank you!
1
0
435
36m
Extended Runtime API - Health Monitoring
In the WWDC 2019 session "Extended Runtime for WatchOS apps" the video talks about an entitlement being required to use the HR sensor judiciously in the background. It provides a link to request the entitlement which no longer works: http://developer.apple.com/contect/request/health-monitoring The session video is also quite hard to find these days. Does anyone know why this is the case? Is the API and entitlement still available? Is there a supported way to run, even periodically, in the background on the Watch app (ignoring the background observer route which is known to be unreliable) and access existing HR sensor data
1
1
26
40m
Apple Pay In-App Provisioning – Apple server failure when adding a card
During Apple Pay in-app provisioning (EV_ECC_v2), our iOS app successfully obtains the issuer provisioning certificates and generates cryptographic material. The flow fails when Apple posts the card blob to Apple’s broker (card creation step), returning HTTP 500 from .../broker/v4/devices/{SEID}/cards. Steps: Call issuerProvisioningCertificates?encryptionVersion=EV_ECC_v2 → 200 OK; returns ECC leaf + Apple Root CA chain; nonce=2a831be4. 2. Build {encryptedCardData, activationData, ephemeralPublicKey} 3. POST /broker/v4/devices/{SEID}/cards Expected: 200 OK on /broker/v4/devices/{SEID}/cards, or 5xx with a descriptive error if payload/cryptography is invalid. Observed: 500 Internal Server Error from Apple broker on /cards (labeled “eligibility” in PassKit logs), causing a terminal failure in Wallet UI.
9
0
394
48m
Managed account can't upload with altool
I had a personal Apple account which I used to upload apps to App Store Connect for our company. I used altool with an app-specific password, like this: xcrun altool --upload-app -u mylogin%mycompany.com -p my-app-specific-password --file MyApp.ipa --type ios --verbose Recently I was asked to convert to it a company-managed account. Once I did this, altool stopped working, with the error "Failed to determine the appleID from bundleID com.mycompany.myapp with platform IOS. Unable to generate an Apple Connect token at this time due to a general error." The complete error log is below. I tried creating a new app-specific password, but had the same result. If I deliberately use the wrong password, I get a different error: "Failed to determine the appleID from bundleID com.mycompany.myapp with platform IOS. Your Apple ID or password was entered incorrectly." So I don't think it's a password problem. I can manually upload to App Store Connect using Xcode with this same account, so it seems like it has the right permission. Any idea why altool wouldn't work? complete output
1
0
37
50m
modifierFlags Monterey
Hello Using a MacBook Pro Intel with macOS 12.7.6 Monterey, I test in Objective-C an event for the option key but it is not working - (void)keyDown:(NSEvent *)event { printf("%s %p\n", __FUNCTION__, self); BOOL altFlag = [event modifierFlags] & NSEventModifierFlagOption; if (altFlag) { // UpdateClass printf("option pressed\n"); } else { printf("option not pressed\n"); } } The same in Swift works fine override func keyDown(with event: NSEvent) { if event.modifierFlags.contains(.option) { print("option pressed") } else { print("option NOT pressed") } } The Obj-C code works fine on a MacBook Air Tahoe 26.3 Any idea why it does not work on the macOS 12.7.6 Intel? Many Thanks Jean
2
0
27
52m
No Universal for Map App project with Tahoe
Mac Pro 2019, Tahoe 26.3, Xcode 26.2 Mac Mini 2023 M2, Tahoe 26.3, Xcode 26.2 On Mac Pro 2019 the app is only Intel while on Mac Mini 2023 M2 it is ARM64 only. Both have Standard Architectures (Apple Silicon, Intel). Both have Build Active Architecture Only is set to No (Debug + Release). Happen for default new projet macOS -> App and Obj-C, Xib. No change to defaults setting except uncheck "Automaticaly manage signing" and "Signing Certificate" set to "Sign to Run Locally" HOWEVER On Mac Pro 2019, BigSur 11.7.10, Xcode 14.10 the application is build Universal ! Why cannot build universal with Tahoe 26.3, Xcode 26.2 ? Can I submit a Mac applcation to App Store Connect with BigSur 11.7.10, Xcode 14.10 ? What are the minimal version of Mac Os and Xcode to submit a Mac applcation to App Store Connect ?
2
0
32
56m
Notarization stuck over 12 hours
I've submitted a few first notarizations for my electron app - I've verified with all the QA and resources that I am doing the correct thing - but its silently just holding all my notarization requests on apples side with no logs. I'm trying to launch my app this week - how should I proceed?
0
0
6
1h
Translation framework use in Swift 6
I’m trying to integrate Apple’s Translation framework in a Swift 6 project with Approachable Concurrency enabled. I’m following the code here: https://developer.apple.com/documentation/translation/translating-text-within-your-app#Offer-a-custom-translation And, specifically, inside the following code .translationTask(configuration) { session in do { // Use the session the task provides to translate the text. let response = try await session.translate(sourceText) // Update the view with the translated result. targetText = response.targetText } catch { // Handle any errors. } } On the try await session.translate(…) line, the compiler complains that “Sending ‘session’ risks causing data races”. Extended error message: Sending main actor-isolated 'session' to @concurrent instance method 'translate' risks causing data races between @concurrent and main actor-isolated uses I’ve downloaded Apple’s sample code (at the top of linked webpage), it compiles fine as-is on Xcode 26.4, but fails with the same error as soon as I switch the Swift Language Mode to Swift 6 in the project. How can I fix this?
1
0
23
1h
Losing advertising packets when CBCentralManager scanForPeripheralsWithServices is left on
Right now, I am scanning for specific BLE peripherals with my iPad app, using this: [self.cbCentralManager scanForPeripheralsWithServices:serviceUUIDsToScanFor options:@{CBCentralManagerScanOptionAllowDuplicatesKey:@YES}]; I have the "CBCentralManagerScanOptionAllowDuplicatesKey" set true because I need to be able to detect when a peripheral is no longer advertising, so I capture each "didDiscoverPeripheral" callback and set a 3-second timer that notifies the user that that peripheral is no longer in range if another didDiscoverPeripheral hasn't been received in that time. The peripherals all advertise at 100ms intervals. What's weird is that if I leave the scan on for a long time, the advertising packets slow down, and eventually one of those timers times out, around about one or two minutes for the first instance, and then every 10-20 seconds after that. I've checked with ATS for all the BLE traffic, and there are indeed > 3-second gaps in the advertising packets that the iPad sees, so it's not my code introducing the gap. Is there some reason long-running scans should not be done on iPadOS (both 18 and 26.1 used)? I've tested out switching my scan to "stopScan" and restart it every 10 seconds, and that seems to have resolved the issue, but it's unclear why that would matter (and that does not seem like an appropriate use of the stop and start scans). Thanks!
3
0
33
1h
Query with predicate in child view running too frequently.
I'm trying to determine if this is "expected" swiftui behavior or an issue with SwiftUI/Data which needs a feedback request... When a child view has a Query containing a filter predicate, the query is run with each and every edit of the parent view, even when the edit has no impact on the child view (e.g. bindings not changing). In the example below, ContentView has the TextField name, and while data is being entered in it, causes the Query in AddTestStageView to be run with each character typed, e.g. 30 characters result in 30 query executions. (Need "-com.apple.CoreData.SQLDebug 1" launch argument to see SQL output). Removing the filter predicate from the query and filtering in ForEach prevents the issue. In my actual use case, the query has a relatively small result set (<100 rows), but I can see this as a performance issue with the larger result sets. xcode/ios: 26.2 Repro example code: import SwiftUI import SwiftData // Repro to Query filter issue in child view running multiple time unexpectedly // Need "-com.apple.CoreData.SQLDebug 1" launch argument set to see SQL console output. @main struct ReproViewQueryMultipleRunningsApp: App { var body: some Scene { WindowGroup { ContentView() } .modelContainer(DataManager.shared.sharedModelContainer()) } } @Model final class TestStageClass { var id: UUID = UUID() var name: String = "" var isActive: Bool = true var displayOrder: Int = 0 init(name: String, isActive: Bool, displayOrder: Int) { self.name = name self.isActive = isActive self.displayOrder = displayOrder } } struct ContentView: View { @Environment(\.modelContext) var modelContext @State private var name: String = "" @State private var selectedTestStage: TestStageClass = DataManager.shared.getFirstTestStageClass() var body: some View { VStack (spacing: 20) { TextField("Name", text: $name) AddTestStageView(selectedTestStage: $selectedTestStage) } .frame(height: 200) } } #Preview("Sample Data") { ContentView() .modelContainer(DataManager.shared.sharedModelContainer()) } struct AddTestStageView: View { @Environment(\.modelContext) var modelContext @Binding var selectedTestStage: TestStageClass // MARK: - ISSUE LOCATION /// Using this Query with filter causes it to be run after each editing on parent view - such as each letter when editing a name. @Query(filter: #Predicate<TestStageClass> { $0.isActive }) private var testStageClasses: [TestStageClass] /// Using this query doesn't have the issue, then need filter in ForEach. // @Query() private var testStageClasses: [TestStageClass] var body: some View { Picker("stage", selection: $selectedTestStage) { // filter and sort here does not affect issue with above Query predicate filter. ForEach(testStageClasses.filter(\.isActive).sorted(by: { $0.displayOrder < $1.displayOrder } ), id: \.id) { stage in Text("\(stage.name)") .tag(stage) } } } } class DataManager { static let shared = DataManager() private var modelContainer: ModelContainer? = nil public func sharedModelContainer(inMemory: Bool = false) -> ModelContainer { let schema = Schema([TestStageClass.self]) let modelConfiguration = ModelConfiguration(schema: schema, isStoredInMemoryOnly: inMemory) do { self.modelContainer = try ModelContainer(for: schema, configurations: [modelConfiguration]) checkDataExists() return self.modelContainer! } catch { fatalError("Could not create sharedModelContainer. Schema:\(schema.entities.map(\.name)), \((modelConfiguration.isStoredInMemoryOnly) ? "in memory only" : "in disk"):\n\(error.localizedDescription)") } } private func checkDataExists() { let mainContext = self.modelContainer!.mainContext print("checkDataExists") do { let classData: [TestStageClass] = try mainContext.fetch(FetchDescriptor<TestStageClass>()) if classData.isEmpty { mainContext.insert(TestStageClass(name: "Beginning", isActive: true, displayOrder: 0)) mainContext.insert(TestStageClass(name: "Second Middle", isActive: false, displayOrder: 2)) mainContext.insert(TestStageClass(name: "Middle", isActive: true, displayOrder: 1)) mainContext.insert(TestStageClass(name: "End", isActive: true, displayOrder: 3)) } if mainContext.hasChanges { try? mainContext.save() print("Added Default Data for TestStageClass") } } catch { fatalError("Failed to get item count for TestStageClass: \(error.localizedDescription)") } } func getFirstTestStageClass() -> TestStageClass { let mainContext = self.modelContainer!.mainContext var tmp: TestStageClass? do { let classData: [TestStageClass] = try mainContext.fetch(FetchDescriptor<TestStageClass>()) tmp = classData.sorted(by: {$0.displayOrder < $1.displayOrder }).first } catch { fatalError("getFirstTestStageClass: \(error.localizedDescription)") } return tmp! } } Thanks, Steve
0
0
11
1h
Core Model Editor and Params
Optimal Precision • Current Precision: Mixed (Float32, int32) • Optimal Precision: Not specified in the image, but typically involves using the most efficient data type for the model's operations to balance speed and memory usage without significant loss of accuracy. Comparison: • Mixed Precision: Utilizes both Float32 and int32 to optimize performance. Float32 provides high precision, while int32 reduces memory usage and increases computational speed. • Optimal Precision: Aimed at achieving the best trade-off between performance and accuracy, potentially using other data types like Float16 (bfloat16) for even greater efficiency in certain hardware environments. Operation Distribution • Current Distribution: • iOS18.mul: 168 • iOS18.transpose: 126 • iOS18.linear: 98 • iOS18.add: 97 • iOS18.sliceByIndex: 96 • iOS18.expandDims: 74 • iOS18.concat: 72 • iOS18.squeeze: 72 • iOS18.reshape: 67 • iOS18.layerNorm: 49 • iOS18.matmul: 48 • iOS18.gelu: 26 • iOS18.softmax: 24 • Split: 24 • conv: 1 • iOS18.conv: 1 Comparison: • Operation Count: Indicates how frequently each operation is executed. High counts for operations like mul, transpose, and linear suggest these are computationally intensive parts of the model. • Optimization Opportunities: Reducing the count of high-frequency operations or optimizing their execution can improve performance. This might involve pruning unnecessary operations, optimizing algorithms, or leveraging hardware acceleration. General Recommendations • Precision Tuning: Experiment with different precision levels to find the best balance for your specific hardware and accuracy requirements. • Operation Optimization: Focus on optimizing the most frequent operations. Techniques include using more efficient algorithms, parallelizing computations, or utilizing specialized hardware like GPUs or TPUs. • Benchmarking: Regularly benchmark the model to assess the impact of changes and ensure that optimizations lead to meaningful performance improvements. By focusing on these areas, you can potentially enhance the efficiency and performance of your ML model.
0
0
7
2h
Creating powerful, efficient, and maintainable applications.
Recursive and Self-Referential Data Structures Combining recursive and self-referential data structures with frameworks like Accelerate, SwiftMacros, and utilizing SwiftUI hooks can offer significant benefits in terms of performance, maintainability, and expressiveness. Here is how Apple Intelligence breaks it down. Benefits: Natural Representation of Complex Data: Recursive structures, such as trees and graphs, are ideal for representing hierarchical or interconnected data, like file systems, social networks, and DOM trees. Simplified Algorithms: Many algorithms, such as traversals, sorting, and searching, are more straightforward and elegant when implemented using recursion. Dynamic Memory Management: Self-referential structures can dynamically grow and shrink, making them suitable for applications with unpredictable data sizes. Challenges: Performance Overhead: Recursive algorithms can lead to stack overflow if not properly optimized (e.g., using tail recursion). Self-referential structures can introduce memory management challenges, such as retain cycles. Accelerate Framework Benefits: High-Performance Computation: Accelerate provides optimized libraries for numerical and scientific computing, including linear algebra, FFT, and image processing. It can significantly speed up computations, especially for large datasets, by leveraging multi-core processors and GPU acceleration. Parallel Processing: Accelerate automatically parallelizes operations, making it easier to take advantage of modern hardware capabilities. Integration with Recursive Data: Matrix and Vector Operations: Use Accelerate for operations on matrices and vectors, which are common in recursive algorithms like those used in machine learning and physics simulations. FFT and Convolutions: Accelerate's FFT functions can be used in recursive algorithms for signal processing and image analysis. SwiftMacros Benefits: Code Generation and Transformation: SwiftMacros allow you to generate and transform code at compile time, enabling the creation of DSLs, boilerplate reduction, and optimization. Improved Compile-Time Checks: Macros can perform complex compile-time checks, ensuring code correctness and reducing runtime errors. Integration with Recursive Data: DSL for Data Structures: Create a DSL using SwiftMacros to define recursive data structures concisely and safely. Optimization: Use macros to generate optimized code for recursive algorithms, such as memoization or iterative transformations. SwiftUI Hooks Benefits: State Management: Hooks like @State, @Binding, and @Effect simplify state management in SwiftUI, making it easier to handle dynamic data. Side Effects: @Effect allows you to perform side effects in a declarative manner, integrating seamlessly with asynchronous operations. Reusable Logic: Custom hooks enable the reuse of stateful logic across multiple views, promoting code maintainability. Integration with Recursive Data: Dynamic Data Binding: Use SwiftUI's data binding to manage the state of recursive data structures, ensuring that UI updates reflect changes in the underlying data. Efficient Rendering: SwiftUI's diffing algorithm efficiently updates the UI only for the parts of the recursive structure that have changed, improving performance. Asynchronous Data Loading: Combine @Effect with recursive data structures to fetch and process data asynchronously, such as loading a tree structure from a remote server. Example: Combining All Components Imagine you're building an app that visualizes a hierarchical file system using a recursive tree structure. Here's how you might combine these components: Define the Recursive Data Structure: Use SwiftMacros to create a DSL for defining tree nodes. @macro struct TreeNode { var value: T var children: [TreeNode] } Optimize with Accelerate: Use Accelerate for operations like computing the size of the tree or performing transformations on node values. func computeTreeSize(_ node: TreeNode) -> Int { return node.children.reduce(1) { $0 + computeTreeSize($1) } } Manage State with SwiftUI Hooks: Use SwiftUI hooks to load and display the tree structure dynamically. struct FileSystemView: View { @State private var rootNode: TreeNode = loadTree() var body: some View { TreeView(node: rootNode) } private func loadTree() -> TreeNode<String> { // Load or generate the tree structure } } struct TreeView: View { let node: TreeNode var body: some View { List(node.children, id: \.value) { Text($0.value) TreeView(node: $0) } } } Perform Side Effects with @Effect: Use @Effect to fetch data asynchronously and update the tree structure. struct FileSystemView: View { @State private var rootNode: TreeNode = TreeNode(value: "/") @Effect private var loadTreeEffect: () -> Void = { // Fetch data from a server or database } var body: some View { TreeView(node: rootNode) .onAppear { loadTreeEffect() } } } By combining recursive data structures with Accelerate, SwiftMacros, and SwiftUI hooks, you can create powerful, efficient, and maintainable applications that handle complex data with ease.
0
0
11
2h
Inquiry regarding CoreMediaErrorDomain Code=-15517 during LL-HLS Live Playback
Hello, I am currently developing a live streaming application using AVPlayer to play LL-HLS (Low-Latency HLS) content. During our testing phase, we consistently encountered the following error in the logs: CoreMediaErrorDomain Code=-15517 The challenge we are facing is that the error description is quite vague. It only provides cryptic messages such as "Key not found" or "No value information," which makes it extremely difficult to identify the root cause or perform a deep-dive analysis. I have searched through the official Apple Developer documentation and technical notes, but I couldn’t find any specific reference to what Code -15517 signifies in the context of LL-HLS or CoreMedia. Regarding this issue, I have the following questions: What is the specific meaning of this error code (-15517)? Does it relate to missing tags in the HLS manifest, or is it an internal state issue within the AVPlayer stack? Specifically, I would like to know if this is a critical error that disrupts playback, or if it is just a warning that can be safely ignored. Is there any additional logging or debugging tool you would recommend to further investigate "Key not found" issues in LL-HLS? Any insights or guidance from the community or Apple engineers would be greatly appreciated. Thank you in advance for your help.
1
0
21
2h