Overview

Post

Replies

Boosts

Views

Created

Unable to enable Finder Sync Extension
Hi, I am developing a NSReplicatedFileProvider extension. Part of that I am also doing a Finder Sync Extension, but I am for whatever reason unable to enable the extension. What am I missing? it is signed properly, it has the right app group. Is there anything else I nede to enable for it? When I do this: pluginkit -m | grep -i XXXFinderSync I get com.clio.XXX-Desktop.XXXFinderSync(1.0) Not that - shows up as bullet point. The hyphen signifies it is disabled.
0
0
26
1w
CXCallDirectoryProvider – Numbers added but blocking not working
Hi all, I'm working on a Call Directory Extension using CXCallDirectoryExtensionContext. I want to add a list of numbers to be blocked. Here's the function I use: override func beginRequest(with context: CXCallDirectoryExtensionContext) { context.delegate = self let blockedNumbers = loadNumberEntries(forKey: blockedKey) let identifiedNumbers = loadNumberEntries(forKey: identifiedKey) addAllBlocking(blockedNumbers, to: context) addAllIdentification(identifiedNumbers, to: context) context.completeRequest() } private func addAllBlocking(_ entries: [NumberEntry], to context: CXCallDirectoryExtensionContext) { let numbers: [Int64] = entries.compactMap { Int64($0.countryCode + $0.phone) }.sorted() for number in numbers { context.addBlockingEntry(withNextSequentialPhoneNumber: number) print("# Added blocking entry: \(number)") } } When I run this, I see in the console: # Added blocking entry: (*my number with country code*) So it seems the number is added correctly. However, in practice, the number is not blocked on the device. I’ve made sure that: The number is stored with the country code prefix. The extension is enabled in Settings → Phone → Call Blocking & Identification. The extension is reloaded after adding numbers. The array of numbers is sorted in ascending order before calling addBlockingEntry. Despite all this, the number still isn’t blocked. Does anyone know why the print shows the number added, but it doesn’t actually block the call? Am I missing something in the way CXCallDirectoryExtensionContext works? Thanks for any advice!
0
0
830
1w
Urgent: App Store Rejection under Guideline 4.3
Our Application [7 Dawns: Echoes] was recently rejected by the App Store for Guideline 4.3 Apple ID:6753892922 Bundle ID:com.ark.jylhgl.ios Change of Operating Entity Our company, has obtained exclusive global operating rights (excluding Mainland China, Hong Kong, Macau, Taiwan, and certain regions of South Korea) from the copyright owner. The previous distributor’s version, Eternal Sword M (App ID 1369681345, Bundle ID com.emagroups.ea2), has been fully removed from the App Store. Our cooperation with them officially ended on December 29, 2023. New Version Updates This submission is not a duplicate, but a newly operated and updated version. We introduced new gameplay systems (7-day seasonal competitive mode, team-based PvP, dispatch and multi-pet strategy systems), optimized monetization and in-game economy, and improved performance and UI (including redesigned app icon and key interfaces). Evidence Submitted We have provided the Operating Authorization Letter and Software Copyright Certificate via App Store Connect and email to the review team. and we have submitted Review Support but no reply!
1
0
91
1w
Limited Homebrew App Distribution with Apple Review for Small-Scale Developers
Hello Apple Developer Team I am an independent iOS developer creating highly specialized applications for a very small private audience of fewer than ten users These applications are tightly coupled with custom hardware that I design and manufacture myself for example automotive air suspension control systems Due to the extremely narrow scope and non commercial nature of these apps maintaining a full Apple Developer Program membership is economically impractical The applications are not distributed publicly are not monetized and are used only by a small group of people who share the same technical hobby All application code is written entirely by me There are no copyright violations no private API usage no hidden functionality no tracking and no malicious behavior The apps do not compromise iOS security do not harm users and do not discredit Apple or the iOS platform The software only functions when paired with proprietary hardware under my control At present the only viable way to install these apps is by using free developer certificates with a seven day expiration period This creates a significant usability burden Users must constantly re sign and reinstall the apps Non technical users frequently make mistakes during this process which leads to frustration and discourages experimentation learning and hardware innovation I would like to propose that Apple consider a limited and tightly controlled homebrew style distribution option where non App Store applications could be installed only after Apple review and approval similar in spirit to TestFlight or app notarization This could include strict limitations such as a very small number of allowed users no monetization no public discovery and clear labeling as private experimental or hardware coupled software Apple would retain full control over approval enforcement and revocation at all times Such a mechanism would preserve the security and trust model of iOS while supporting independent engineers hardware developers and advanced hobbyists It would reduce incentives for unofficial sideloading and encourage innovation at a grassroots level without weakening platform safety I deeply respect Apple’s focus on security quality and user trust This proposal is not about bypassing the App Store but about enabling a controlled reviewed and extremely limited path for legitimate non commercial hardware specific applications I hope this message can receive timely consideration and that if such an approach aligns with Apple’s platform goals it could be explored for inclusion in upcoming iOS versions where feasible Thank you for your time and for supporting the developer community Best regards Anzor Tekuev Independent iOS Developer
0
0
64
1w
Does UNNotificationRequest have a 64-notification scheduling limit?
Hi, We have a simple calendar reminder app that uses UNNotificationRequest to schedule local notifications for user events. I’m wondering whether UNNotificationRequest has a system-imposed limit of 64 upcoming scheduled notifications, similar to the deprecated UILocalNotification. We’re asking because one of our users is not receiving recently scheduled reminders. Our current workflow is: We schedule notifications on app launch and when the app is about to quit. Before scheduling, we call removeAllPendingNotificationRequests(). We then fetch the 64 nearest upcoming events and schedule them using UNUserNotificationCenter.current().add(...). This approach works fine during our testing, but we’re unsure what might be causing the issue for some users. Any insights would be appreciated. Thanks!
0
0
90
1w
SubscriptionStoreView(groupID:) bug in TestFlight
Hello, I seem to have a strange bug when testing 2 of my Apps that calls SubscriptionStoreView(groupID: storekitmanager.groupID), where storekitmanager is using @Observable, with groupID from the Subscription Group in App Store Connect. They have the following: Yearly, Biannually, and Monthly. Their productIDs and groupIDs have been configured in each app with the correct IDs. In my main Apple ID, when the SubscriptionStoreView is presented, selecting Monthly, tap Subscribe, and nothing happens. Selecting either Yearly or Biannually, tap Subscribe and the Confirmation Dialog that triggers faceID/touchID will appear correctly. This happens in both Apps for TestFlight. I have a Manage Subscriptions button that uses: manageSubscriptionsSheet(isPresented:subscriptionGroupID:) I can change the subscription to Monthly in that manage subscriptions. However, if I switch to a Sandbox Apple Account, the "bug" described above does not happen. The Sandbox account when selecting Monthly and tap Subscribe will trigger the Confirmation Dialog (in both Apps). Not sure if my main account is "stuck" in some loop where it is trying to purchase Monthly in TestFlight but it is not completed. Has anyone ever encountered such a bug?
0
0
67
1w
Is there is any provision to use Private API's in mac Application
I understand that private APIs are not permitted under Apple’s App Review Guidelines. However, our application requires I²C communication, and we are currently considering the following APIs: IOAVServiceReadI2C IOAVServiceWriteI2C IOI2CSendRequest Could you please confirm: Is there any provision to use these APIs in a Mac App Store–approved application? Are there public alternatives available for achieving I²C communication on macOS? Thank you for your guidance.
1
0
61
1w
Is it possible to distinguish real vs manually added running data in HealthKit?
I am developing an iOS application that utilizes running workout data from the iOS Health app / Fitness app via HealthKit, with explicit user permission. Before finalizing the app design, I would like to clarify several technical aspects related to data reliability, manual entry, record modification, and GPS route availability in HealthKit. My questions are as follows: 1. Identifying manually added (non-physical) running workouts When a running workout is created in the Health app without actual physical movement (for example, a workout manually added by the user), is there any metadata, flag, or key in HealthKit that allows developers to distinguish these records from workouts generated through actual motion tracking (iPhone or Apple Watch)? 2. Editing existing running workout records Is it possible for users, or for third-party apps with HealthKit write permission, to edit an existing running workout (e.g., distance, duration, calories) after it has been saved? • If edits are allowed, are the original values preserved in any way, or are they fully overwritten? 3. Detecting modified workout records If a running workout (whether originally auto-recorded or manually created) has been edited after creation, is there any identifier, metadata field, source revision, or versioning mechanism in HealthKit that allows developers to detect that the workout has been modified? 4. Access to GPS route / running path data For outdoor running workouts recorded with location services enabled: • Does HealthKit provide access to GPS route data (running paths / location traces) associated with a workout? • Is this route data accessible to third-party apps with user permission? • Is route data available only for workouts recorded on Apple Watch, or also for iPhone-only recordings? • Is there a way to determine programmatically whether a running workout includes valid GPS route data? The overall goal is to understand whether, when building an app that relies on HealthKit running data, it is technically possible to differentiate motion-based workouts from manually added or edited records, and to assess the availability of route information for outdoor runs. Any clarification or references to official documentation would be greatly appreciated. Thank you
1
0
37
1w
App Clip URLs Save Error
I am encountering a persistent error in App Store Connect when attempting to save URLs in the App Clip URLs section of my app version. The issue is as follows: When I enter the URL (e.g., https://4o.c.smart321.com/c/l0) and click save, I receive a 409 Conflict error with the code ENTITY_ERROR.ATTRIBUTE.TYPE. The error detail states: "does not match the uri pattern must be a valid RFC 3986 URI". The Error Log: { "errors" : [ { "id" : "9f032dd6-f456-4c90-ad9c-245c5ed041d7", "status" : "409", "code" : "ENTITY_ERROR.ATTRIBUTE.TYPE", "title" : "An attribute in the provided entity has the wrong type", "detail" : "does not match the uri pattern must be a valid RFC 3986 URI", "source" : { "pointer" : "/data/attributes/invocationUrls/1" } } ] } Conflicting Status: Interestingly, the exact same URL has already been configured under Advanced App Clip Experiences, where it currently shows a status of "Received". My AASA file is https://4o.c.smart321.com/.well-known/apple-app-site-association I have verified that the URL follows the standard HTTPS format and contains no hidden characters. Could you please clarify why the URL is being rejected in the App Version section while being accepted in the Advanced Experiences section?
2
0
138
1w
SKANからMMPツールへ計測データポストバックについて
【背景】 現在、各広告実績(コスト、クリック数など)とCV実績(Adjustローデータ)を紐付け、広告ダッシュボードを構築しております。 iOSアプリキャンペーンにおいて、AD名での紐付け(SQL上でのjoin)が必須となり、ご質問させていただきました。 【質問】 SKAN側の仕様について、計測時SKANからMMP側にデータを送信しているかと思います。 この送信データに、ADG名、AD名は付与されているのでしょうか。 Adjsut担当者様より、リファレンスは無いがポストバック値にはある、とご説明いただきました。 SKAN側でリファレンス等あればご教示いただけますと幸いです。 また、SKAN4.0からは source-identifier がポストバックデータに含まる認識ですが、 この4桁の数値からADやADGを特定することは可能なのでしょうか。 MMPや広告主側で各ADにsource-identifierに紐付けは不可で、媒体側で自動発行される認識をしており、発行粒度/規定も媒体ごとに異なっていると理解しております。 ご返答いただけますと大変ありがたいです。 ▼参考リファレンス https://developer.apple.com/documentation/storekit/verifying-an-install-validation-postback#3592477
0
0
42
1w
Using Content Inset Adjustments on macOS Tahoe with Liquid Glass in nested NSScrollViews inside Sidebar
I have the following code (compile as a standalone file): #import <Cocoa/Cocoa.h> @interface AppDelegate : NSObject <NSApplicationDelegate> @property (strong) NSWindow *window; @end @implementation AppDelegate - (void)applicationDidFinishLaunching:(NSNotification *)notification { // Create main window self.window = [[NSWindow alloc] initWithContentRect:NSMakeRect(100, 100, 800, 600) styleMask:(NSWindowStyleMaskTitled | NSWindowStyleMaskClosable | NSWindowStyleMaskResizable | NSWindowStyleMaskMiniaturizable) backing:NSBackingStoreBuffered defer:NO]; [self.window setTitle:@"Nested ScrollView Demo"]; [self.window makeKeyAndOrderFront:nil]; // Split view controller NSSplitViewController *splitVC = [[NSSplitViewController alloc] init]; // Sidebar NSViewController *sidebarVC = [[NSViewController alloc] init]; sidebarVC.view = [[NSView alloc] initWithFrame:NSMakeRect(0, 0, 200, 600)]; sidebarVC.view.wantsLayer = YES; NSSplitViewItem *sidebarItem = [NSSplitViewItem sidebarWithViewController:sidebarVC]; sidebarItem.minimumThickness = 150; sidebarItem.maximumThickness = 400; [splitVC addSplitViewItem:sidebarItem]; // Content view controller NSViewController *contentVC = [[NSViewController alloc] init]; // Vertical scroll view (outer) NSScrollView *verticalScrollView = [[NSScrollView alloc] initWithFrame:NSMakeRect(0, 0, 600, 600)]; verticalScrollView.automaticallyAdjustsContentInsets = YES; verticalScrollView.hasVerticalScroller = YES; verticalScrollView.hasHorizontalScroller = NO; verticalScrollView.autoresizingMask = NSViewWidthSizable | NSViewHeightSizable; NSView *verticalContent = [[NSView alloc] initWithFrame:NSMakeRect(0, 0, 600, 1200)]; verticalContent.wantsLayer = YES; verticalContent.layer.backgroundColor = [[NSColor blueColor] CGColor]; [verticalScrollView setDocumentView:verticalContent]; // Add several horizontal scroll sections CGFloat sectionHeight = 150; for (int i = 0; i < 5; i++) { // Horizontal scroll view inside section NSScrollView *horizontalScroll = [[NSScrollView alloc] initWithFrame:NSMakeRect(0, verticalContent.frame.size.height - (i+1)*sectionHeight - i*20, 600, sectionHeight)]; horizontalScroll.hasHorizontalScroller = YES; horizontalScroll.hasVerticalScroller = NO; horizontalScroll.autoresizingMask = NSViewWidthSizable | NSViewHeightSizable; NSView *horizontalContent = [[NSView alloc] initWithFrame:NSMakeRect(0, 0, 1200, sectionHeight)]; horizontalContent.wantsLayer = YES; // Add labels horizontally for (int j = 0; j < 6; j++) { NSTextField *label = [NSTextField labelWithString:[NSString stringWithFormat:@"Item %d-%d", i+1, j+1]]; label.frame = NSMakeRect(20 + j*200, sectionHeight/2 - 15, 180, 30); [horizontalContent addSubview:label]; } horizontalScroll.documentView = horizontalContent; [verticalContent addSubview:horizontalScroll]; } contentVC.view = verticalScrollView; NSSplitViewItem *contentItem = [NSSplitViewItem splitViewItemWithViewController:contentVC]; contentItem.automaticallyAdjustsSafeAreaInsets = YES; contentItem.minimumThickness = 300; [splitVC addSplitViewItem:contentItem]; self.window.contentViewController = splitVC; // Sidebar label NSTextField *label = [NSTextField labelWithString:@"Sidebar"]; label.translatesAutoresizingMaskIntoConstraints = NO; [sidebarVC.view addSubview:label]; [NSLayoutConstraint activateConstraints:@[ [label.centerXAnchor constraintEqualToAnchor:sidebarVC.view.centerXAnchor], [label.centerYAnchor constraintEqualToAnchor:sidebarVC.view.centerYAnchor] ]]; } @end int main(int argc, const char * argv[]) { @autoreleasepool { NSApplication *app = [NSApplication sharedApplication]; AppDelegate *delegate = [[AppDelegate alloc] init]; [app setDelegate:delegate]; [app run]; } return 0; } Obviously, since the contents of the right part (the content of the sidebar) has its content inset, the horizontal scrolling views cannot extend to the left beneath the sidebar. I can change line 39 to say verticalScrollView.automaticallyAdjustsContentInsets = NO; which will make the inner horizontal scroll views able to extend below the sidebar, but then I'd lose out on the automatic inset management to not have other content overlap beneath the sidebar. So what can I do here? I've tried manually changing the frame of the inner scroll views to start on a negative x, but that does not allow me to scroll all the way to the leftmost content. I'm hoping I won't have to adjust for safe areas manually for the outer scroll view. I'd also appreciate tips on how to fix the fact that veritical scrolling doesn't work when your mouse is in a horizontal scroll view. Thanks! P.S. same thing also exists on UIKit.
0
0
111
1w
No output appears on tvOS simulator when creating a new game project Xcode 26.2
When I create a new tvOS game and run the default project the simulator window appears but nothing is shown. When I create a MultiPlatform Game project and run the demo project for AppleTV the simulator work correctly. I do not get any errors just a blank screen. Also clicking on the Home icon in the simulator or the actual AppleTV does nothing. Drew
0
0
113
1w
Tkinter module in Python 3 is broken on macOS 26
When I try to invoke the tkinter module in Python 3 that is bundled with Xcode Developer Tools, I get a message saying that my system version is too low: $ /usr/bin/python3 -m tkinter macOS 26 (2602) or later required, have instead 16 (1602) ! zsh: abort /usr/bin/python3 -m tkinter It seems like the system version reported is macOS 16, which I assume is the version code before the decision to rename all OS platforms to 26. This is a very low level mistake and should be fixed as soon as possible.
1
0
714
1w
RESCIND_CONSENT notification not delivered in Sandbox environment
I am currently testing the Declared Age Range / Parental Consent flow in the Sandbox environment, and I am experiencing an issue where the RESCIND_CONSENT App Store Server Notification is not being delivered to my server. 🔍 Test Environment iOS version: iOS 26.2 (Sandbox environment) App Store Server Notifications: Sandbox environment 🔄 Test Scenario App Settings > Developer > Sign in with a Sandbox account Launch the app In App Settings > Developer > Sandbox Account > Management > Revoke App Consent, enter the app’s Bundle ID, tap the Revoke Consent button, and confirm that the revocation completion popup message is displayed Check whether App Store Server Notifications are received by the server Confirm that the RESCIND_CONSENT notification is not received by the server ✅ Expected Result The App Store Server sends a RESCIND_CONSENT notification to the Sandbox endpoint The notification payload includes appTransactionId The server can block app access based on the corresponding appTransactionId ❌ Actual Result No RESCIND_CONSENT notification is received in the Sandbox environment ❓ Questions Is this behavior an intended limitation of the Sandbox environment, or is it a known issue or bug? Is it possible that RESCIND_CONSENT notifications will only be delivered starting January 1, 2026? Additionally, when a RESCIND_CONSENT server notification is received, I currently update my database with the appTransactionId and the registration date. When a minor attempts to access the app, I check the latest appTransactionId status, and if the most recent state indicates consent has been revoked, I block app access and prompt the user to request parental consent again using PermissionKit.
1
0
73
1w