Dive into the vast array of tools and services available to developers.

Posts under General subtopic

Post

Replies

Boosts

Views

Activity

Does Privacy Manifest reason C617.1 cover fstat on POSIX shared memory?
Our iOS app uses shm_open to create an app-owned, App Group-scoped POSIX shared-memory object. Before allowing access to previously authorized offline data, we call fstat on its file descriptor to verify the object's size, owner UID, and permission mode. We do not access file timestamps, use this information for fingerprinting, or send the metadata off-device. Apple's approved reason C617.1 refers to files inside app or App Group containers. However, POSIX shared-memory objects have no filesystem entry. Does C617.1 cover this specific use of fstat? If not, should we request a new approved reason?
0
0
32
4h
iPadOS: Intermittent disconnection after NEHotspotConfigurationManager automatic hotspot join
Background We are developing Share&Share, an offline device-to-device content transfer application. An iPad automatically joins a nearby Samsung Android LocalOnlyHotspot. The hotspot credentials are delivered through an authenticated, encrypted Bluetooth Low Energy (BLE) session. On iPadOS, our application decrypts the credentials natively in Swift and uses NEHotspotConfigurationManager.apply() to join the hotspot. We are investigating an intermittent connection problem during the initial automatic join. We have also submitted a private report through Apple Feedback Assistant: Feedback ID: FB25408475 Test environment Receiver: Physical iPad with a Home button. Sender/hotspot: Samsung SM-E055F. Android version: Android 16. Hotspot security: WPA2/WPA3 transition configuration. iOS implementation: Swift and NetworkExtension. joinOnce = false. The hidden property is not explicitly set. Observed behaviour Two independently instrumented automatic-join sessions showed a similar sequence: A1: The iPad associates with the Samsung hotspot and completes the WPA3 authentication exchange recorded by the Samsung. Approximately 3.35 seconds after the iPad-side join completion, iOS records a beacon-loss/roam declaration and the connection drops. A2: iOS attempts to reconnect, but the authentication exchange does not complete. A3: iOS automatically reconnects successfully, obtains a DHCP address and remains connected during the observation period. The same encrypted credentials work during both the initial and subsequent successful attempts. The apply() completion handler returns without an error. We understand that this does not establish that the device has joined successfully or that local IP connectivity is ready. What we have investigated The first join used cached beacon information approximately eight seconds old; the subsequent successful join used fresh scan information. AWDL activity was observed, but we have not established a causal relationship. Location Services scanning does not explain the first failure in our second instrumented session. The diagnostic label "Beacons Lost" is not being treated as proof of actual missed beacon frames. We have not independently established which WPA mode the iPad negotiated. We have not yet measured TCP readiness during the failed and successful attempts. We do not currently have a standalone minimal Xcode reproduction project. The behaviour was observed using our Flutter-based iOS probe and physical devices. Questions for developers familiar with NetworkExtension Has anyone observed intermittent first-join instability with NEHotspotConfigurationManager when joining a newly created Android LocalOnlyHotspot using WPA2/WPA3 transition mode? Are there documented limitations or known issues involving the first automatic join to a newly created hotspot profile? What is the recommended supported approach for determining that the intended Wi-Fi network is genuinely connected after apply() completes? What is the most reliable way to establish that local TCP communication is ready before beginning an application-level transfer? Are there additional public diagnostic facilities or measurements that could help distinguish Wi-Fi association instability from DHCP or subsequent network-path problems? We are looking for a documented, App Store-compatible approach. We are not assuming a particular root cause and do not want to rely on private APIs or undocumented system behaviour. Any practical experience or pointers to relevant Apple documentation would be appreciated.
0
0
36
18h
Node.js aborts before JavaScript execution under sandbox-exec on macOS — LIBIGNITION termination code 2
I am investigating a startup failure when running Node.js under a restrictive sandbox-exec profile. I would appreciate guidance on diagnosing the failure and on a supported way to run a command-line process with restricted filesystem access and no network access. I have not established whether this is caused by my profile, the operating system, or another interaction. Environment macOS 26.6.2, build 25G83 Apple silicon, ARM64, without Rosetta Official Node.js 22.23.4 darwin-arm64 distribution; its archive SHA-256 matches the published checksum Python 3.14 launching the process from Terminal No sudo, application code, third-party JavaScript modules, credentials, or real user data The Node version above identifies the downloaded distribution. I have not confirmed a successful node --version execution in this restricted environment. Launch configuration The invocation has this form: /usr/bin/sandbox-exec -f <PROFILE> <NODE> -e <JS> <INPUT> <WORK>Python uses subprocess.Popen, with: Working directory set to <WORK> start_new_session=True Standard output and error captured through pipes A 10-second execution deadline and a 6-second termination/cleanup allowance Only these environment variables are supplied; the parent environment is not inherited: PATH=<NODE_DIR>:/usr/bin:/bin HOME=<WORK> TMPDIR=<WORK>NODE_OPTIONS and DYLD_* are not set. The JavaScript starts with: console.log("NODE_JS_ENTRY");It then uses node:fs to read a synthetic input and write markers in the permitted work directory. The initial console marker is never observed. Filesystem and network restrictions The profile uses (deny default) and (deny network*). It permits process creation, execution of the specified Node binary, and sysctl-read. File reads are allowed for the Node binary, synthetic input/work directories, /System/Library, /usr/lib, and the specific devices /dev/null, /dev/random, and /dev/urandom. Ancestor-directory metadata access is listed using individual literal paths. Writes are allowed only inside the work directory. The Node binary and synthetic fixtures are in separate dedicated directories under the user's Documents directory. This is a description of the profile, not a complete runnable reproduction. Paths are anonymized here. I tested two additional permission variants: A — ancestor metadata and existence checks: (allow file-read-metadata file-test-existence (literal "/System/Volumes") (literal "/System/Volumes/Preboot"))A+B — the above plus Cryptexes reads and executable mapping: (allow file-read* file-map-executable file-test-existence (subpath "/System/Volumes/Preboot/Cryptexes"))Neither variant resolved the startup failure. No general Mach/IPC permissions, broad /etc read access, localhost access, or system.sb import were added. Observed results The original profile and both variants terminated with SIGABRT, without the initial JavaScript marker. For A and A+B: Python reported child return code -6. Standard output and error were both empty. The parent sent no termination signal; these were not timeout terminations. The direct child was reaped, and its process group was no longer present. For two earlier executions using the original profile, I matched saved crash reports to the process and Node binary image. They showed: Exception: EXC_CRASH / SIGABRT Termination namespace: 0x23 Termination code: 2 Termination flags: 582The stack included: __abort_with_payload abort_with_payload_wrapper_internal abort_with_reason ignition_halt boot_boot ignite dyld4::CacheFinder::CacheFinder dyld4::ProcessConfig::DyldCache::DyldCache dyld4::ProcessConfig::ProcessConfig dyld4::start startApple's public XNU definitions identify namespace 35 as OS_REASON_LIBIGNITION. I have not established the meaning of code 2 for this OS build. I have not inspected matching crash stacks for A or A+B, so I cannot claim they stopped at the same internal location. Questions Is sandbox-exec a supported mechanism for this use case on this macOS version? If not, what supported approach can enforce both restricted filesystem access and no network access for a command-line process and its children? What diagnostic information would distinguish a missing sandbox permission from a loader/cache initialization problem? Does this termination signature suggest a documented diagnostic procedure or known issue? My goal is to reach JavaScript execution while preserving the restrictions, rather than broadly allowing filesystem access or network communication. I can provide a sanitized profile and relevant diagnostic excerpts if needed. Thank you. Correction and update after checking the saved crash reports: The original-profile runs were on macOS 26.6.2 (25G83), while the A and A+B runs were on macOS 26.7.2 (25G332). My initial post did not distinguish these environments correctly. The saved reports for A and A+B have now been matched to the recorded execution times, process IDs, and Node image information. Both show SIGABRT, termination namespace 0x23, code 2, and the same 11-frame sequence of function names and offsets as the original-profile reports, including ignite, boot_boot, and ignition_halt. The Node image UUID is unchanged, but the OS version and dyld image identifiers differ. These results therefore must not be treated as a controlled comparison in which only the sandbox profile changed. The matching termination signatures do not establish an identical root cause. The specific reason for LIBIGNITION code 2 remains unknown. No additional executions or permission changes have been performed.
1
0
111
1d
Apple Watch Ultra 49MM doesnt show Developer Mode & Trusted Computer
I want to test my new project named "WristTok" https://github.com/roulettegun/WristTok But I cant make all my 3 apple watch work. From SE to Ultra not a single one have a Developer Mode and Trusted Computer. I already make sure that all devices were connected to the same WIFI. I also tried some way from fellow Developer but it doesnt work. I hope someone can help me fix my problem.
0
0
80
3d
Looking for Opportunities to Join iOS App Beta Testing Teams
Hello Apple Developer Community, I am interested in testing iOS apps through TestFlight and learning more about app development. I currently use an iPhone 15 and have a free Apple Developer account. I am looking for legitimate opportunities to participate in beta testing teams, test apps, and provide useful feedback to developers. I would appreciate any advice on how to connect with developers or organizations that welcome new beta testers. Thank you for your time and guidance.
0
0
21
1w
MetricKit for System Extension
I saw another post https://developer.apple.com/forums/thread/652719 where it was mentioned at this point MetricKit is not meant to be enabled within the App Extension targets and it's up to the container app to receive the payloads on behalf of the extensions. But what's the guidance to use MetricKit for System Extension targets on macOS? I've tried subscribing to diagnostic reports from both a container app and its system extension on macOS, neither could receive any payload from the system extension. (The subscriber within the container app did receive payloads for its own reports - e.g. when the container app crashed itself, so I'm somewhat sure my test code was set up properly)
3
0
1.9k
1w
Question when using Rork to Sign in Apple Developer Account
Hi, When I used Rork to sign in Apple Developer Account to test my App, I got this message below "Apple rejected the sign-in request before checking the credentials (Apple app-token request, HTTP 503). The client identity this app sends is probably out of date." Screenshot below Does anyone knows why? What should I do? Thanks!
1
0
121
1w
How can I disable sharing age range with an app
I am still in development phase of an app, I integrated AgeRangeAPI and shared age range with my app. When I go to system settings > profile > personal information > Age Range for Apps , I see the app and it says "Shared", but I can't unshare anymore. I can unshare globally but now per app. I know the AgeRangeAPI can be tested from the Developer > Account > Manage, but that kind of testing skips the native UI I want to test again full scenario to see what real users will experience, I want to see the real UI of sharing again.
4
0
111
1w
Transporter upload fails with ITMS-90237: Invalid signature when publishing .NET MAUI Mac Catalyst package
Hello everyone, I’m running into a code signing validation failure when delivering a .NET MAUI Mac Catalyst app to App Store Connect via Transporter. I’d appreciate any help in figuring out what is misconfigured. Environment: .NET 9 MAUI (net9.0-maccatalyst) Build host: Mac Delivery tool: Transporter (App Store Connect) Issue: The packaging process itself appears to succeed and produces a .pkg file, but Transporter fails during validation with the following error: text The product archive package's signature is invalid. Ensure that it is signed with your "3rd Party Mac Developer Installer" certificate. (90237) Publish command: I’m publishing and signing from the command line, following Microsoft’s documentation for publishing .NET MAUI Mac Catalyst apps to the Mac App Store. bash dotnet publish -f net9.0-maccatalyst -c Release -p:EnableCodeSigning=true -p:EnablePackageSigning=true -p:CodesignKey="Apple Distribution: Ping Zhang (*********D)" -p:CodesignProvision="AideApp_MacCatalyst" -p:CodesignEntitlements="Platforms/MacCatalyst/Entitlements.plist" -p:PackageSigningKey="3rd Party Mac Developer Installer: Ping Zhang (Y2K7Q6HU4D)" -p:CreatePackage=true What I’ve checked so far: The 3rd Party Mac Developer Installer certificate is present in my keychain. The certificate has not expired. The certificate matches the correct team and App ID. The generated .pkg is what I’m uploading through Transporter. Questions: Is there anything wrong with the PackageSigningKey or CodesignKey parameters in the command above? Does .NET MAUI actually apply the 3rd Party Mac Developer Installer signature to the .pkg when EnablePackageSigning=true and CreatePackage=true are used? Should the CodesignKey be an Apple Distribution certificate, or should it also be a 3rd Party Mac Developer Application certificate for Mac App Store distribution? Are there any additional steps required to ensure the .pkg is signed correctly before uploading with Transporter? How can I verify whether the .pkg was signed with the correct installer certificate? For example, would pkgutil --check-signature be sufficient? Any guidance would be greatly appreciated. Thank you!
1
0
490
2w
Feature Request - MapKit JS: Add "above roads or labels" OverlayLevel to TileOverlay
The MapKit Framework for Swift lets a developer control where a raster/tile overlay is drawn relative to other map content using MKOverlayLevel (.aboveRoads | .aboveLabels) passed to MKMapView.addOverlay(). MapKit JS has no equivalent. There is no level parameter to say "draw this above roads" or "draw this above labels." Please add an overlay-level option to MapKit JS 1️⃣ MapKit JS with TileOverlay Opacity=1 An opacity slider is implemented to help the map viewer to orient themselves with the MapKit JS Hybrid style with a sample raster TileOverlay. 2️⃣ MapKit JS with opacity via slider 3️⃣ MapKit for Swift demonstrates the options for above roads or labels
1
0
249
3w
Python 3.9.x CVE multiple vulnerabilities
Python 3.10 and 3.11 Multiple Vulnerabilities (CVE-2022-4303,CVE-2023-0286) Python 3.10.x Buffer Overflow Vulnerability (CVE-2022-37454) Python 3.11.x Exposure of Sensitive Information Vulnerability (CVE-2023-40217) Python 3.12 and 3.11.10 Input Validation Flaw Vulnerability (CVE-2023-27043) Python 3.13.x and 3.14.x Multiple Vulnerabilities (CVE-2026-2297,CVE-2026-3644,CVE-2026-4224) Python 3.11.x Denial of Service (DoS) Vulnerability (CVE-2020-10735) Python Denial of Service (DoS) Vulnerability (CVE-2023-52425) Python 3.10 and 3.11 URL Blocklist Bypass Vulnerability (CVE-2023-24329) Python 3.10.x to 3.14.x Multiple Vulnerabilities (CVE-2024-12718,CVE-2025-4138,CVE-2025-4330,CVE-2025-4517) Python 3.11.x Denial of Service (DoS) Vulnerability (CVE-2020-10735) Python 3.10 and 3.11 Multiple Vulnerabilities (CVE-2022-4303,CVE-2023-0286) Python 3.10.x Buffer Overflow Vulnerability (CVE-2022-37454) Python 3.13.x and 3.14.x Multiple Vulnerabilities (CVE-2026-2297,CVE-2026-3644,CVE-2026-4224) Python Denial of Service (DoS) Vulnerability (CVE-2023-52425) Python 3.10 and 3.11 URL Blocklist Bypass Vulnerability (CVE-2023-24329) Python 3.10.x to 3.14.x Multiple Vulnerabilities (CVE-2024-12718,CVE-2025-4138,CVE-2025-4330,CVE-2025-4517) Python 3.11.x Exposure of Sensitive Information Vulnerability (CVE-2023-40217) Python 3.12 and 3.11.10 Input Validation Flaw Vulnerability (CVE-2023-27043)
2
0
411
3w
macOS Installer.app: how to omit Destination Select and Installation Type from the GUI wizard (not just skip them)
We ship a signed, notarized product archive (.pkg) built with pkgbuild + productbuild and a custom InstallerPlugins pane (ChoosePlugin.bundle). The payload must always install to the system volume (/). There is no supported alternate directory. customize="never" is set because there is a single component package; the user must not pick packages either. What we already do In Distribution.xml: Introduction ChoosePlugin.bundle Target Install PackageSelection is omitted. customize="never" is set. Observed behavior (current macOS) Destination Select (Target) If Target is kept in SectionOrder, the pane still appears in the wizard (often with a read-only / single-volume UI). That step is unused product-wise: the user cannot choose another location. If Target is removed from SectionOrder, Installer.app hangs on the Installation pane at “Preparing for installation…” (pagecontroller / no selected volume). So Target cannot be dropped if we still use the GUI Installer. Installation Type (PackageSelection) The pane does not run (correct). The sidebar still lists “Installation Type” (and often “Summary”) as grayed items. There is no documented way to hide those labels. There is no public InstallerPlugins API to auto-advance the native Destination Select pane (gotoNextPane only applies to our custom section). Question Is there a supported way (Distribution XML, InstallerSections.plist, productbuild, or otherwise) to: Not show Destination Select at all in Installer.app, while still installing to / and not hanging on Installation; and Not list Installation Type (and unused Summary) in the left-hand wizard list, when customize="never" and PackageSelection is omitted? If this is not supported, please confirm that: Destination Select must remain in SectionOrder for GUI installs even with rootVolumeOnly + domains limited to localSystem; and sidebar entries for unused built-in sections cannot be removed. Environment Product archive via productbuild --distribution --plugins macOS 13+ (tested on current macOS / Apple silicon) Custom plugin is universal (arm64 + x86_64) Silent / MDM path (installer -pkg … -target /) is acceptable for automation; this request is GUI Installer.app only.
0
0
197
4w
Apple Watch Missing Developer Mode Option
I have an iPhone 14 running iOS 16.1 and my series 5 watch running watchOS 9.1. I was able to turn on Developer Mode on the phone by going to Settings--> Privacy & Security --> Developer Mode. On the watch however (I'm doing this directly on the watch and not on the watch app on the phone) once I'm in Privacy & Security, there is no option to select Developer Mode. How do I get my watch in Developer Mode in order to get a successful build in xCode?
45
9
33k
4w
Adding more API explainations
This is inspired by a thread I made on a different subject. The point is a response from an Apple person that I've read before. Things that have no documentation header at all require you to go to these forums to get the hidden knowledge. Is it feasible to fill in the blank items? Do you know what else gets stuck if there's no documentation? Agents. And they can't join the forums and ask about out-of-band knowledge.
0
0
292
4w
OSX27 SDK on macOS 26; TAPI file malformed/unknown architecture
Overnight I ran into a problem considering the C/C++ toolchain on macOS 26.6.2 and M1-series Mac which I'll be describing in this post. I have the Command Line Tools installed (through xcode-select --install) and xcode-select -p shows /Library/Developer/CommandLineTools. clang -v reports Apple clang version 21.0.0 (clang-2100.1.1.101). ld -v reports: @(#)PROGRAM:ld PROJECT:ld-1267 BUILD 16:38:58 Jun 8 2026 configured to support archs: armv6 armv7 armv7s arm64 arm64e arm64_32 i386 x86_64 x86_64h armv6m armv7k armv7m armv7em armv8m.main armv8.1m.main will use ld-classic for: armv6 armv7 armv7s i386 armv6m armv7k armv7m armv7em LTO support using: LLVM version 21.0.0 (static support for 30, runtime is 30) TAPI support using: Apple TAPI version 21.0.0 (tapi-2100.0.2.6) By compiling and linking a basic C or C++ executable, there is an error reported by Clang / ld: ld: tapi error: malformed file /Library/Developer/CommandLineTools/SDKs/MacOSX27.0.sdk/usr/lib/libSystem.B.tbd:4:20: error: unknown architecture ... arm64e.x1-macos ... ... rest omitted Notice how SDKs/MacOSX27.0.sdk exists in the installation even though macOS 26 is the host system. I have attempted to remove /Library/Developer/CommandLineTools and performing xcode-select --install again, but the MACOSX27 SDK is still present. The linker likely reports the error due to a mismatch between itself and the SDK/TAPI declaration, or the TAPI declaration and the host system. The Command Line Tools were not updated manually prior to receiving this error. It seems like an OTA update took place, as this problem happened overnight. If so, that does sound like an insecure design. My quick fix was to remove the macOS 27 SDK from the system which allows Clang to find the macOS 26 SDK instead: $ cd /Library/Developer/CommandLineTools/SDKs $ ls MacOSX27* MacOSX27.0.sdk MacOSX27.sdk $ sudo rm -rf MacOSX27* This is of course not a permanent solution before updating the host system to macOS 27, and therefore this post. Tags: ld, xcode-select, tapi, malformed file, unknown architecture
5
0
611
4w
Is it possible to remove the 3 1024x1024 app icon pngs from assets catalog for apps with Icon Composer app icons?
I am trying to slim my app as much as possible, as it really has no assets and I'm trying to be as apple native as possible, and it seems like 2.8MB out of my 4.5MB (on disk) app is because of the assets.car containing pre-rendered app icon images, which seems wasteful to bundle into the app I ran assetutil -I Assets.car > assets.json and the output shows: "RenditionName" : "AppIcon1024x1024_UIAppearanceAny_934C06E8-EFEE-45F8-8FF6-8AA1C5A331E2-5653-00000994CD30DD2A.png", "SizeOnDisk" : 1085726 ... "RenditionName" : "AppIcon1024x1024_UIAppearanceDark_61E3B30A-4E8A-4427-89EE-9BE9233265D9-5653-00000994CD6F1916.png", "SizeOnDisk" : 1230822 ... "RenditionName" : "AppIcon1024x1024_ISAppearanceTintable_395EBE2C-F852-46DB-B18D-07F4FD33A361-5653-00000994CDA26BA3.png", "SizeOnDisk" : 494329 I tried just deleting the entire Assets part of the Xcode project and got the same results This seems like something that Apple's OSs should be able to just generate once the app is installed if needed instead of prepackaging in every .app and wasting space if not used. Am I crazy for wanting this? I got my AppIcon.icon down from 15KB to 5KB but having 2.8MB wasted for something that doesn't seem important at all bothers me
8
0
1.3k
Oct ’26
EU Cyber Resilience Act: checking Swift package dependencies for actively exploited vulnerabilities
Since 11 September 2026, the EU Cyber Resilience Act requires anyone selling software in the EU - including paid iOS and Mac apps - to report actively exploited vulnerabilities in their products: an early warning within 24 hours, a notification within 72 hours, through ENISA's reporting platform. It also covers app versions already on sale. The practical first question for most of us is "does anything I ship depend on a package with a known exploited vulnerability?" I couldn't find a tool that treats Swift Package Manager as a first-class ecosystem, so I wrote a small open-source one: reads Package.resolved (v1-v3) and Podfile.lock writes a CycloneDX 1.6 SBOM (useful later for the CRA technical documentation) checks each pinned package against OSV, and marks findings as exploited if CISA's KEV list or ENISA's EUVD lists them runs locally, in Xcode Cloud or as a GitHub Action, and only fails the build on exploited issues by default pipx install cra-scan GitHub repo (Apache-2.0, no dependencies) Two things worth knowing: micro and small companies can't be fined for missing the 24-hour early warning (Art. 64), but the 72-hour notification still applies. The rest of the CRA (technical file, support period, CE marking) applies from 11 December 2027, and for most apps it's self-assessment. How are others approaching this? Feedback on missed matches is very welcome, especially for CocoaPods, which the tool can't match yet.
0
0
358
Oct ’26
Using SpeechAnalyzer in my Swift Student Challenge submission
Hi there, I’m currently developing an App Playground for the Swift Student Challenge, and a core feature of my playground uses SpeechAnalyzer with SpeechTranscriber from Apple’s Speech framework to transcribe microphone input to text. I understand that SpeechTranscriber performs transcription on-device and does not use the internet. However, from the dev documentation for AssetInventory, it looks like the required language/model assets may first need to be downloaded from Apple’s servers for devices that may not have it installed by default. Since Swift Student Challenge submissions are evaluated offline, I’m unsure how this should be handled. My main questions are: If the device on which my playground is tested does not already have the required SpeechTranscriber asset installed, will transcription fail when the submission is run offline? Is it safe for my submission to depend on SpeechAnalyzer / SpeechTranscriber as a core feature, or should I redesign it to work even if it is unavailable? Thank you!! :)
1
0
244
Oct ’26
Does Privacy Manifest reason C617.1 cover fstat on POSIX shared memory?
Our iOS app uses shm_open to create an app-owned, App Group-scoped POSIX shared-memory object. Before allowing access to previously authorized offline data, we call fstat on its file descriptor to verify the object's size, owner UID, and permission mode. We do not access file timestamps, use this information for fingerprinting, or send the metadata off-device. Apple's approved reason C617.1 refers to files inside app or App Group containers. However, POSIX shared-memory objects have no filesystem entry. Does C617.1 cover this specific use of fstat? If not, should we request a new approved reason?
Replies
0
Boosts
0
Views
32
Activity
4h
iPadOS: Intermittent disconnection after NEHotspotConfigurationManager automatic hotspot join
Background We are developing Share&Share, an offline device-to-device content transfer application. An iPad automatically joins a nearby Samsung Android LocalOnlyHotspot. The hotspot credentials are delivered through an authenticated, encrypted Bluetooth Low Energy (BLE) session. On iPadOS, our application decrypts the credentials natively in Swift and uses NEHotspotConfigurationManager.apply() to join the hotspot. We are investigating an intermittent connection problem during the initial automatic join. We have also submitted a private report through Apple Feedback Assistant: Feedback ID: FB25408475 Test environment Receiver: Physical iPad with a Home button. Sender/hotspot: Samsung SM-E055F. Android version: Android 16. Hotspot security: WPA2/WPA3 transition configuration. iOS implementation: Swift and NetworkExtension. joinOnce = false. The hidden property is not explicitly set. Observed behaviour Two independently instrumented automatic-join sessions showed a similar sequence: A1: The iPad associates with the Samsung hotspot and completes the WPA3 authentication exchange recorded by the Samsung. Approximately 3.35 seconds after the iPad-side join completion, iOS records a beacon-loss/roam declaration and the connection drops. A2: iOS attempts to reconnect, but the authentication exchange does not complete. A3: iOS automatically reconnects successfully, obtains a DHCP address and remains connected during the observation period. The same encrypted credentials work during both the initial and subsequent successful attempts. The apply() completion handler returns without an error. We understand that this does not establish that the device has joined successfully or that local IP connectivity is ready. What we have investigated The first join used cached beacon information approximately eight seconds old; the subsequent successful join used fresh scan information. AWDL activity was observed, but we have not established a causal relationship. Location Services scanning does not explain the first failure in our second instrumented session. The diagnostic label "Beacons Lost" is not being treated as proof of actual missed beacon frames. We have not independently established which WPA mode the iPad negotiated. We have not yet measured TCP readiness during the failed and successful attempts. We do not currently have a standalone minimal Xcode reproduction project. The behaviour was observed using our Flutter-based iOS probe and physical devices. Questions for developers familiar with NetworkExtension Has anyone observed intermittent first-join instability with NEHotspotConfigurationManager when joining a newly created Android LocalOnlyHotspot using WPA2/WPA3 transition mode? Are there documented limitations or known issues involving the first automatic join to a newly created hotspot profile? What is the recommended supported approach for determining that the intended Wi-Fi network is genuinely connected after apply() completes? What is the most reliable way to establish that local TCP communication is ready before beginning an application-level transfer? Are there additional public diagnostic facilities or measurements that could help distinguish Wi-Fi association instability from DHCP or subsequent network-path problems? We are looking for a documented, App Store-compatible approach. We are not assuming a particular root cause and do not want to rely on private APIs or undocumented system behaviour. Any practical experience or pointers to relevant Apple documentation would be appreciated.
Replies
0
Boosts
0
Views
36
Activity
18h
Node.js aborts before JavaScript execution under sandbox-exec on macOS — LIBIGNITION termination code 2
I am investigating a startup failure when running Node.js under a restrictive sandbox-exec profile. I would appreciate guidance on diagnosing the failure and on a supported way to run a command-line process with restricted filesystem access and no network access. I have not established whether this is caused by my profile, the operating system, or another interaction. Environment macOS 26.6.2, build 25G83 Apple silicon, ARM64, without Rosetta Official Node.js 22.23.4 darwin-arm64 distribution; its archive SHA-256 matches the published checksum Python 3.14 launching the process from Terminal No sudo, application code, third-party JavaScript modules, credentials, or real user data The Node version above identifies the downloaded distribution. I have not confirmed a successful node --version execution in this restricted environment. Launch configuration The invocation has this form: /usr/bin/sandbox-exec -f <PROFILE> <NODE> -e <JS> <INPUT> <WORK>Python uses subprocess.Popen, with: Working directory set to <WORK> start_new_session=True Standard output and error captured through pipes A 10-second execution deadline and a 6-second termination/cleanup allowance Only these environment variables are supplied; the parent environment is not inherited: PATH=<NODE_DIR>:/usr/bin:/bin HOME=<WORK> TMPDIR=<WORK>NODE_OPTIONS and DYLD_* are not set. The JavaScript starts with: console.log("NODE_JS_ENTRY");It then uses node:fs to read a synthetic input and write markers in the permitted work directory. The initial console marker is never observed. Filesystem and network restrictions The profile uses (deny default) and (deny network*). It permits process creation, execution of the specified Node binary, and sysctl-read. File reads are allowed for the Node binary, synthetic input/work directories, /System/Library, /usr/lib, and the specific devices /dev/null, /dev/random, and /dev/urandom. Ancestor-directory metadata access is listed using individual literal paths. Writes are allowed only inside the work directory. The Node binary and synthetic fixtures are in separate dedicated directories under the user's Documents directory. This is a description of the profile, not a complete runnable reproduction. Paths are anonymized here. I tested two additional permission variants: A — ancestor metadata and existence checks: (allow file-read-metadata file-test-existence (literal "/System/Volumes") (literal "/System/Volumes/Preboot"))A+B — the above plus Cryptexes reads and executable mapping: (allow file-read* file-map-executable file-test-existence (subpath "/System/Volumes/Preboot/Cryptexes"))Neither variant resolved the startup failure. No general Mach/IPC permissions, broad /etc read access, localhost access, or system.sb import were added. Observed results The original profile and both variants terminated with SIGABRT, without the initial JavaScript marker. For A and A+B: Python reported child return code -6. Standard output and error were both empty. The parent sent no termination signal; these were not timeout terminations. The direct child was reaped, and its process group was no longer present. For two earlier executions using the original profile, I matched saved crash reports to the process and Node binary image. They showed: Exception: EXC_CRASH / SIGABRT Termination namespace: 0x23 Termination code: 2 Termination flags: 582The stack included: __abort_with_payload abort_with_payload_wrapper_internal abort_with_reason ignition_halt boot_boot ignite dyld4::CacheFinder::CacheFinder dyld4::ProcessConfig::DyldCache::DyldCache dyld4::ProcessConfig::ProcessConfig dyld4::start startApple's public XNU definitions identify namespace 35 as OS_REASON_LIBIGNITION. I have not established the meaning of code 2 for this OS build. I have not inspected matching crash stacks for A or A+B, so I cannot claim they stopped at the same internal location. Questions Is sandbox-exec a supported mechanism for this use case on this macOS version? If not, what supported approach can enforce both restricted filesystem access and no network access for a command-line process and its children? What diagnostic information would distinguish a missing sandbox permission from a loader/cache initialization problem? Does this termination signature suggest a documented diagnostic procedure or known issue? My goal is to reach JavaScript execution while preserving the restrictions, rather than broadly allowing filesystem access or network communication. I can provide a sanitized profile and relevant diagnostic excerpts if needed. Thank you. Correction and update after checking the saved crash reports: The original-profile runs were on macOS 26.6.2 (25G83), while the A and A+B runs were on macOS 26.7.2 (25G332). My initial post did not distinguish these environments correctly. The saved reports for A and A+B have now been matched to the recorded execution times, process IDs, and Node image information. Both show SIGABRT, termination namespace 0x23, code 2, and the same 11-frame sequence of function names and offsets as the original-profile reports, including ignite, boot_boot, and ignition_halt. The Node image UUID is unchanged, but the OS version and dyld image identifiers differ. These results therefore must not be treated as a controlled comparison in which only the sandbox profile changed. The matching termination signatures do not establish an identical root cause. The specific reason for LIBIGNITION code 2 remains unknown. No additional executions or permission changes have been performed.
Replies
1
Boosts
0
Views
111
Activity
1d
Apple Watch Ultra 49MM doesnt show Developer Mode & Trusted Computer
I want to test my new project named "WristTok" https://github.com/roulettegun/WristTok But I cant make all my 3 apple watch work. From SE to Ultra not a single one have a Developer Mode and Trusted Computer. I already make sure that all devices were connected to the same WIFI. I also tried some way from fellow Developer but it doesnt work. I hope someone can help me fix my problem.
Replies
0
Boosts
0
Views
80
Activity
3d
Looking for Opportunities to Join iOS App Beta Testing Teams
Hello Apple Developer Community, I am interested in testing iOS apps through TestFlight and learning more about app development. I currently use an iPhone 15 and have a free Apple Developer account. I am looking for legitimate opportunities to participate in beta testing teams, test apps, and provide useful feedback to developers. I would appreciate any advice on how to connect with developers or organizations that welcome new beta testers. Thank you for your time and guidance.
Replies
0
Boosts
0
Views
21
Activity
1w
MetricKit for System Extension
I saw another post https://developer.apple.com/forums/thread/652719 where it was mentioned at this point MetricKit is not meant to be enabled within the App Extension targets and it's up to the container app to receive the payloads on behalf of the extensions. But what's the guidance to use MetricKit for System Extension targets on macOS? I've tried subscribing to diagnostic reports from both a container app and its system extension on macOS, neither could receive any payload from the system extension. (The subscriber within the container app did receive payloads for its own reports - e.g. when the container app crashed itself, so I'm somewhat sure my test code was set up properly)
Replies
3
Boosts
0
Views
1.9k
Activity
1w
Question when using Rork to Sign in Apple Developer Account
Hi, When I used Rork to sign in Apple Developer Account to test my App, I got this message below "Apple rejected the sign-in request before checking the credentials (Apple app-token request, HTTP 503). The client identity this app sends is probably out of date." Screenshot below Does anyone knows why? What should I do? Thanks!
Replies
1
Boosts
0
Views
121
Activity
1w
How can I disable sharing age range with an app
I am still in development phase of an app, I integrated AgeRangeAPI and shared age range with my app. When I go to system settings > profile > personal information > Age Range for Apps , I see the app and it says "Shared", but I can't unshare anymore. I can unshare globally but now per app. I know the AgeRangeAPI can be tested from the Developer > Account > Manage, but that kind of testing skips the native UI I want to test again full scenario to see what real users will experience, I want to see the real UI of sharing again.
Replies
4
Boosts
0
Views
111
Activity
1w
Transporter upload fails with ITMS-90237: Invalid signature when publishing .NET MAUI Mac Catalyst package
Hello everyone, I’m running into a code signing validation failure when delivering a .NET MAUI Mac Catalyst app to App Store Connect via Transporter. I’d appreciate any help in figuring out what is misconfigured. Environment: .NET 9 MAUI (net9.0-maccatalyst) Build host: Mac Delivery tool: Transporter (App Store Connect) Issue: The packaging process itself appears to succeed and produces a .pkg file, but Transporter fails during validation with the following error: text The product archive package's signature is invalid. Ensure that it is signed with your "3rd Party Mac Developer Installer" certificate. (90237) Publish command: I’m publishing and signing from the command line, following Microsoft’s documentation for publishing .NET MAUI Mac Catalyst apps to the Mac App Store. bash dotnet publish -f net9.0-maccatalyst -c Release -p:EnableCodeSigning=true -p:EnablePackageSigning=true -p:CodesignKey="Apple Distribution: Ping Zhang (*********D)" -p:CodesignProvision="AideApp_MacCatalyst" -p:CodesignEntitlements="Platforms/MacCatalyst/Entitlements.plist" -p:PackageSigningKey="3rd Party Mac Developer Installer: Ping Zhang (Y2K7Q6HU4D)" -p:CreatePackage=true What I’ve checked so far: The 3rd Party Mac Developer Installer certificate is present in my keychain. The certificate has not expired. The certificate matches the correct team and App ID. The generated .pkg is what I’m uploading through Transporter. Questions: Is there anything wrong with the PackageSigningKey or CodesignKey parameters in the command above? Does .NET MAUI actually apply the 3rd Party Mac Developer Installer signature to the .pkg when EnablePackageSigning=true and CreatePackage=true are used? Should the CodesignKey be an Apple Distribution certificate, or should it also be a 3rd Party Mac Developer Application certificate for Mac App Store distribution? Are there any additional steps required to ensure the .pkg is signed correctly before uploading with Transporter? How can I verify whether the .pkg was signed with the correct installer certificate? For example, would pkgutil --check-signature be sufficient? Any guidance would be greatly appreciated. Thank you!
Replies
1
Boosts
0
Views
490
Activity
2w
Feature Request - MapKit JS: Add "above roads or labels" OverlayLevel to TileOverlay
The MapKit Framework for Swift lets a developer control where a raster/tile overlay is drawn relative to other map content using MKOverlayLevel (.aboveRoads | .aboveLabels) passed to MKMapView.addOverlay(). MapKit JS has no equivalent. There is no level parameter to say "draw this above roads" or "draw this above labels." Please add an overlay-level option to MapKit JS 1️⃣ MapKit JS with TileOverlay Opacity=1 An opacity slider is implemented to help the map viewer to orient themselves with the MapKit JS Hybrid style with a sample raster TileOverlay. 2️⃣ MapKit JS with opacity via slider 3️⃣ MapKit for Swift demonstrates the options for above roads or labels
Replies
1
Boosts
0
Views
249
Activity
3w
Python 3.9.x CVE multiple vulnerabilities
Python 3.10 and 3.11 Multiple Vulnerabilities (CVE-2022-4303,CVE-2023-0286) Python 3.10.x Buffer Overflow Vulnerability (CVE-2022-37454) Python 3.11.x Exposure of Sensitive Information Vulnerability (CVE-2023-40217) Python 3.12 and 3.11.10 Input Validation Flaw Vulnerability (CVE-2023-27043) Python 3.13.x and 3.14.x Multiple Vulnerabilities (CVE-2026-2297,CVE-2026-3644,CVE-2026-4224) Python 3.11.x Denial of Service (DoS) Vulnerability (CVE-2020-10735) Python Denial of Service (DoS) Vulnerability (CVE-2023-52425) Python 3.10 and 3.11 URL Blocklist Bypass Vulnerability (CVE-2023-24329) Python 3.10.x to 3.14.x Multiple Vulnerabilities (CVE-2024-12718,CVE-2025-4138,CVE-2025-4330,CVE-2025-4517) Python 3.11.x Denial of Service (DoS) Vulnerability (CVE-2020-10735) Python 3.10 and 3.11 Multiple Vulnerabilities (CVE-2022-4303,CVE-2023-0286) Python 3.10.x Buffer Overflow Vulnerability (CVE-2022-37454) Python 3.13.x and 3.14.x Multiple Vulnerabilities (CVE-2026-2297,CVE-2026-3644,CVE-2026-4224) Python Denial of Service (DoS) Vulnerability (CVE-2023-52425) Python 3.10 and 3.11 URL Blocklist Bypass Vulnerability (CVE-2023-24329) Python 3.10.x to 3.14.x Multiple Vulnerabilities (CVE-2024-12718,CVE-2025-4138,CVE-2025-4330,CVE-2025-4517) Python 3.11.x Exposure of Sensitive Information Vulnerability (CVE-2023-40217) Python 3.12 and 3.11.10 Input Validation Flaw Vulnerability (CVE-2023-27043)
Replies
2
Boosts
0
Views
411
Activity
3w
macOS Installer.app: how to omit Destination Select and Installation Type from the GUI wizard (not just skip them)
We ship a signed, notarized product archive (.pkg) built with pkgbuild + productbuild and a custom InstallerPlugins pane (ChoosePlugin.bundle). The payload must always install to the system volume (/). There is no supported alternate directory. customize="never" is set because there is a single component package; the user must not pick packages either. What we already do In Distribution.xml: Introduction ChoosePlugin.bundle Target Install PackageSelection is omitted. customize="never" is set. Observed behavior (current macOS) Destination Select (Target) If Target is kept in SectionOrder, the pane still appears in the wizard (often with a read-only / single-volume UI). That step is unused product-wise: the user cannot choose another location. If Target is removed from SectionOrder, Installer.app hangs on the Installation pane at “Preparing for installation…” (pagecontroller / no selected volume). So Target cannot be dropped if we still use the GUI Installer. Installation Type (PackageSelection) The pane does not run (correct). The sidebar still lists “Installation Type” (and often “Summary”) as grayed items. There is no documented way to hide those labels. There is no public InstallerPlugins API to auto-advance the native Destination Select pane (gotoNextPane only applies to our custom section). Question Is there a supported way (Distribution XML, InstallerSections.plist, productbuild, or otherwise) to: Not show Destination Select at all in Installer.app, while still installing to / and not hanging on Installation; and Not list Installation Type (and unused Summary) in the left-hand wizard list, when customize="never" and PackageSelection is omitted? If this is not supported, please confirm that: Destination Select must remain in SectionOrder for GUI installs even with rootVolumeOnly + domains limited to localSystem; and sidebar entries for unused built-in sections cannot be removed. Environment Product archive via productbuild --distribution --plugins macOS 13+ (tested on current macOS / Apple silicon) Custom plugin is universal (arm64 + x86_64) Silent / MDM path (installer -pkg … -target /) is acceptable for automation; this request is GUI Installer.app only.
Replies
0
Boosts
0
Views
197
Activity
4w
Apple Watch Missing Developer Mode Option
I have an iPhone 14 running iOS 16.1 and my series 5 watch running watchOS 9.1. I was able to turn on Developer Mode on the phone by going to Settings--> Privacy & Security --> Developer Mode. On the watch however (I'm doing this directly on the watch and not on the watch app on the phone) once I'm in Privacy & Security, there is no option to select Developer Mode. How do I get my watch in Developer Mode in order to get a successful build in xCode?
Replies
45
Boosts
9
Views
33k
Activity
4w
Adding more API explainations
This is inspired by a thread I made on a different subject. The point is a response from an Apple person that I've read before. Things that have no documentation header at all require you to go to these forums to get the hidden knowledge. Is it feasible to fill in the blank items? Do you know what else gets stuck if there's no documentation? Agents. And they can't join the forums and ask about out-of-band knowledge.
Replies
0
Boosts
0
Views
292
Activity
4w
OSX27 SDK on macOS 26; TAPI file malformed/unknown architecture
Overnight I ran into a problem considering the C/C++ toolchain on macOS 26.6.2 and M1-series Mac which I'll be describing in this post. I have the Command Line Tools installed (through xcode-select --install) and xcode-select -p shows /Library/Developer/CommandLineTools. clang -v reports Apple clang version 21.0.0 (clang-2100.1.1.101). ld -v reports: @(#)PROGRAM:ld PROJECT:ld-1267 BUILD 16:38:58 Jun 8 2026 configured to support archs: armv6 armv7 armv7s arm64 arm64e arm64_32 i386 x86_64 x86_64h armv6m armv7k armv7m armv7em armv8m.main armv8.1m.main will use ld-classic for: armv6 armv7 armv7s i386 armv6m armv7k armv7m armv7em LTO support using: LLVM version 21.0.0 (static support for 30, runtime is 30) TAPI support using: Apple TAPI version 21.0.0 (tapi-2100.0.2.6) By compiling and linking a basic C or C++ executable, there is an error reported by Clang / ld: ld: tapi error: malformed file /Library/Developer/CommandLineTools/SDKs/MacOSX27.0.sdk/usr/lib/libSystem.B.tbd:4:20: error: unknown architecture ... arm64e.x1-macos ... ... rest omitted Notice how SDKs/MacOSX27.0.sdk exists in the installation even though macOS 26 is the host system. I have attempted to remove /Library/Developer/CommandLineTools and performing xcode-select --install again, but the MACOSX27 SDK is still present. The linker likely reports the error due to a mismatch between itself and the SDK/TAPI declaration, or the TAPI declaration and the host system. The Command Line Tools were not updated manually prior to receiving this error. It seems like an OTA update took place, as this problem happened overnight. If so, that does sound like an insecure design. My quick fix was to remove the macOS 27 SDK from the system which allows Clang to find the macOS 26 SDK instead: $ cd /Library/Developer/CommandLineTools/SDKs $ ls MacOSX27* MacOSX27.0.sdk MacOSX27.sdk $ sudo rm -rf MacOSX27* This is of course not a permanent solution before updating the host system to macOS 27, and therefore this post. Tags: ld, xcode-select, tapi, malformed file, unknown architecture
Replies
5
Boosts
0
Views
611
Activity
4w
Is it possible to remove the 3 1024x1024 app icon pngs from assets catalog for apps with Icon Composer app icons?
I am trying to slim my app as much as possible, as it really has no assets and I'm trying to be as apple native as possible, and it seems like 2.8MB out of my 4.5MB (on disk) app is because of the assets.car containing pre-rendered app icon images, which seems wasteful to bundle into the app I ran assetutil -I Assets.car > assets.json and the output shows: "RenditionName" : "AppIcon1024x1024_UIAppearanceAny_934C06E8-EFEE-45F8-8FF6-8AA1C5A331E2-5653-00000994CD30DD2A.png", "SizeOnDisk" : 1085726 ... "RenditionName" : "AppIcon1024x1024_UIAppearanceDark_61E3B30A-4E8A-4427-89EE-9BE9233265D9-5653-00000994CD6F1916.png", "SizeOnDisk" : 1230822 ... "RenditionName" : "AppIcon1024x1024_ISAppearanceTintable_395EBE2C-F852-46DB-B18D-07F4FD33A361-5653-00000994CDA26BA3.png", "SizeOnDisk" : 494329 I tried just deleting the entire Assets part of the Xcode project and got the same results This seems like something that Apple's OSs should be able to just generate once the app is installed if needed instead of prepackaging in every .app and wasting space if not used. Am I crazy for wanting this? I got my AppIcon.icon down from 15KB to 5KB but having 2.8MB wasted for something that doesn't seem important at all bothers me
Replies
8
Boosts
0
Views
1.3k
Activity
Oct ’26
EU Cyber Resilience Act: checking Swift package dependencies for actively exploited vulnerabilities
Since 11 September 2026, the EU Cyber Resilience Act requires anyone selling software in the EU - including paid iOS and Mac apps - to report actively exploited vulnerabilities in their products: an early warning within 24 hours, a notification within 72 hours, through ENISA's reporting platform. It also covers app versions already on sale. The practical first question for most of us is "does anything I ship depend on a package with a known exploited vulnerability?" I couldn't find a tool that treats Swift Package Manager as a first-class ecosystem, so I wrote a small open-source one: reads Package.resolved (v1-v3) and Podfile.lock writes a CycloneDX 1.6 SBOM (useful later for the CRA technical documentation) checks each pinned package against OSV, and marks findings as exploited if CISA's KEV list or ENISA's EUVD lists them runs locally, in Xcode Cloud or as a GitHub Action, and only fails the build on exploited issues by default pipx install cra-scan GitHub repo (Apache-2.0, no dependencies) Two things worth knowing: micro and small companies can't be fined for missing the 24-hour early warning (Art. 64), but the 72-hour notification still applies. The rest of the CRA (technical file, support period, CE marking) applies from 11 December 2027, and for most apps it's self-assessment. How are others approaching this? Feedback on missed matches is very welcome, especially for CocoaPods, which the tool can't match yet.
Replies
0
Boosts
0
Views
358
Activity
Oct ’26
Using SpeechAnalyzer in my Swift Student Challenge submission
Hi there, I’m currently developing an App Playground for the Swift Student Challenge, and a core feature of my playground uses SpeechAnalyzer with SpeechTranscriber from Apple’s Speech framework to transcribe microphone input to text. I understand that SpeechTranscriber performs transcription on-device and does not use the internet. However, from the dev documentation for AssetInventory, it looks like the required language/model assets may first need to be downloaded from Apple’s servers for devices that may not have it installed by default. Since Swift Student Challenge submissions are evaluated offline, I’m unsure how this should be handled. My main questions are: If the device on which my playground is tested does not already have the required SpeechTranscriber asset installed, will transcription fail when the submission is run offline? Is it safe for my submission to depend on SpeechAnalyzer / SpeechTranscriber as a core feature, or should I redesign it to work even if it is unavailable? Thank you!! :)
Replies
1
Boosts
0
Views
244
Activity
Oct ’26