Search results for

“show when run”

115,079 results found

Post

Replies

Boosts

Views

Activity

Reply to Distributing In House Apps via my OWN website
Maybe back up a bit. To distribute iOS apps to internal users of your organization, you need to have an Enterprise Developer account. You can then distribute your iOS apps via your own internal website, as described here: https://support.apple.com/guide/deployment/depce7cefc4d/web I don't have an Enterprise account, so that's all I can say about it. It sounds like you are trying to run iOS apps on your Macs. You can certainly do that. However, that is a feature designed for end users' convenience. From a developer's perspective, it isn't more convenient. You can bypass the complications of the Enterprise account by developing Mac-native apps. Then you can distribute them on your own website as DTS Engineer describes. The difficulty here is going to be how you develop the iOS apps. If you are developing stand-alone apps, you could use SwiftUI or the Mac Catalyst framework to built Mac apps using cross-platform or iOS APIs. But if you are using some 3rd party tool to build your iOS apps, then you'll ha
5d
Reply to Performance degradation of HTTP/3 requests in iOS app under specific network conditions
Thanks for the tips — both already in place. The test app calls finishTasksAndInvalidate() after each run and waits for urlSession(_:didBecomeInvalidWithError:) before proceeding; that's what made the qlog files appear reliably. And yes, I pulled everything into a standalone macOS app — that's where all the measurements below were taken. I've been systematically comparing configurations. The key variable is request size: our /api/launch POST has ~18 KB of headers (cookies, auth tokens, experiment flags) plus a small body. With URLSessionConfiguration.default, measuring requestStart→requestEnd from URLSessionTaskMetrics: H3 · large headers · modern engine · with prewarm 230 ms - 542 ms H3 · large headers · modern engine · no prewarm 34 ms-57 ms H3 · large headers · classic engine · with prewarm 24 ms-26 ms H3 · small headers · any config 0 ms H2 · any config 0 ms (because, as I understand it, sending packets here is at a different level in tcp and the implementation doesn't know when it sent the last
5d
Reply to Reclaiming cached data from an `enumerateDirectory` call
[quote='885813022, DTS Engineer, /thread/824156?answerId=885813022#885813022'] Some of the information here may already be obvious or well understood to you. [/quote] Thank you for taking the time to write all this down. That context is very helpful, especially as I'm not super familiar with the lower level Unix APIs related to this. [quote='885809022, DTS Engineer, /thread/824156?answerId=885809022#885809022'] I don't think that's a safe assumption and, in practice, I think you're very likely to see lots of cases where a lookup ISN'T generated. I don't think a basic ls will generate a lookup call and I'd expect/hope the Finder would avoid it at least some of the time. [/quote] Both of those expectations don't The second expectation doesn't seem to be what happens in reality, at least on macOS 15.7.5. I've been testing with a sample file system that has a directory with 10,000 items. When I do a time ls /Volumes/MyFS/dir, I see that a lookupItem call was done for every single item (actually, 2 for each item,
Topic: App & System Services SubTopic: Core OS Tags:
5d
Can the same widget in an Xcode project support multiple targets?
Hello everyone, my app A now supports iOS Widget C under the same Xcode project. Now I have another app B under this project, and I hope it can also support this Widget C. What should be done? How should the app group be configured? I have found some solutions: for example, add this key under the info.plist corresponding to app B: NSExtension NSExtensionPointIdentifier com.apple.widgetkit-extension NSExtensionPrincipalClass $(PRODUCT_MODULE_NAME).WidgetEntryView However, when I configured it and started running, not only could I not see the support Widget C, but the screen also went black. Thank you all.
1
0
130
5d
HomeKit Firmeware Update Characteristics
Is there any information available on how developers can implement the Firmware Update Readiness and/or Firmware Update Status characteristics in HomeKit? Many consumer devices support this (showing an update available icon), however, there appears to be nothing in the documentation about this characteristic, and it is not listed as an option in the HomeKit Accessory Simulator. Thanks in advance!
1
0
115
5d
Reply to RealityView content disappears when selecting Lock In Place on visionOS
Hi @Kunal07 Thanks for the focused repro, that's genuinely helpful. Could selecting Lock In Place be causing the ImmersiveSpace to be dismissed, which is why the RealityView content vanishes? I'm not yet sure why this only reproduces under TestFlight and not when running locally from Xcode. I'd greatly appreciate it if you could open a bug report. Please include a zipped copy of the minimal Xcode project that reproduces the issue and a reference to this forum post, and post the FB number back here once you do. Bug Reporting: How and Why? has tips on creating your bug report.
Topic: Spatial Computing SubTopic: General Tags:
5d
Reply to Bundle preferred languages mechanism
When a trying into my device and I set to for example something I don’t have en-IE, the system's internal fallback resolution path looks like this: en-IEDoes the app have Ireland English? No. en-GB (Does the app have British English? Yes.) I have that one set. Because your app includes en-GB, the system stops at step 2. It determines that en-GB will provide a much better localized experience. This is exactly right. The system for choosing which language to show in the UI is somewhat complex, taking into account the user's preferred languages, the languages supported by the app itself, and language fallbacks. The language fallbacks also evolve as support for new languages is added to the operating system (and very occasionally over time, if feedback is given that specific fallback languages don't feel right).
Topic: App & System Services SubTopic: General Tags:
5d
Reply to Clarification on HealthKit Observer Delivery Frequency and BGTaskScheduler Behavior
How background tasks and HealthKit work on watchOS was somehow discussed here and here. You can check if they help. iOS has a similar background execution time budget, but isn't as strict as watchOS. In a normal situation (meaning that your app has background execution time budget, the device's battery level is high, and no many apps are competing the background execution time), I'd expect that the system wakes your app and runs the updateHandler of your observer query (HKObserverQuery) whenever a process saves or deletes samples of the specified type. The update frequency (HKUpdateFrequency) for sample types is another factor to consider. For example, stepCount samples have an hourly maximum frequency in iOS, and so the updateHandler will be triggered at most once per hour, even you use enableBackgroundDelivery + .immediate. This is documented in the Discussion section here. Now to your questions: Are HKObserverQuery delivery frequencies (.immediate, .hourly, .daily) strictly best-effort hints rathe
5d
Can CLI apps not use SecItemAdd?
tl;dr: The title and/or can I even add a keychain entitlement to a cli app? I'm trying to store a generated private key and certificate properly in a CLI app. The call to SecItemAdd always results in an error with message A required entitlement isn't present. I assume this is errSecMissingEntitlement, and its docs say it happens when you specify an access group to which your app doesn’t belong. But I'm not even specifying one. Here's a small excerpt (I know it's not a MVCE but the question is pretty general anyway): func storeCert(_ cert: Data) throws { let addQuery = [ kSecClass: kSecClassCertificate, kSecValueRef: cert, kSecAttrLabel: CERT_USER_LABEL, kSecAttrApplicationLabel: CERT_APP_LABEL ] as [String: Any] let status = SecItemAdd(addQuery as CFDictionary, nil) guard status == errSecSuccess else { let msg = SecCopyErrorMessageString(status, nil) as String? ?? throw MyErr.generic(message: Unable to store cert: (msg)) } } I can't add the keychain entitlement to my CLI target, it doesn't show as a
1
0
250
5d
Reply to Reclaiming cached data from an `enumerateDirectory` call
Part 1... Disclaimer: Some of the information here may already be obvious or well understood to you. If it is, then thank you for your patience as I use this as an excuse to push out background information that other developers may find useful. Oh, I think I was a little unclear in what I wrote. What I was trying to say in a call to enumerateDirectory of this nature was that if I call enumerateDirectory with a non-minimal attribute set (i.e. include attributes that need more I/O to fetch), then I see that behavior. But you're right in that iterating over a directory with minimal attributes doesn't generally have additional lookupItem calls in my tests. Again, you have to be careful of the API you're using. The classic Unix directory iteration pattern[1] is to read the directory (readdir-> enumerateDirectory) and then retrieve metadata (stat-> lookupItemNamed). There are two problems with that: At a basic level, it generates a lot of syscalls, each of which nibble away at performance. From the file syste
Topic: App & System Services SubTopic: Core OS Tags:
5d
Bundle preferred languages mechanism
Hi there, I’m curious to understand how the system determines which language to use for an app. The system is currently set to en-IN (English - India). My app supports the following languages: en (the default development language) en-GB (United Kingdom) en-IE (Ireland) en-US (United States) When I run the app, the Bundle.main.preferredLanguages returns [„en-GB“, „en“], which causes the app to be set to en-GB. However, when the app doesn’t support the preferred system language, I would expect it to default to the en language. Surprisingly, this is not the case. This behavior is precisely described in Technical Note TN2418. Unfortunately, there’s no explanation provided. Is this behavior related to the CLDR Linguistic Distance? I also attempted to replace the default development language en with en-001 (English - world), but it had no effect.
3
0
113
5d
Contacts permission not requested on production build (iPhone 16/17 Pro Max)
I’m encountering an issue where my app does not show the Contacts permission prompt in the production environment. This has been observed on iPhone 16 Pro Max and iPhone 17 Pro Max devices, while other iPhone models appear to behave correctly. The behavior is consistent across Xcode builds, TestFlight, and the App Store version when using the production bundle identifier. Instead of returning .notDetermined, the app receives the device’s previous Contacts authorization status, so the system permission prompt is never shown. Expected behavior On first launch after install, the app should prompt the user for Contacts access. Actual behavior (Production build) The app does not prompt for Contacts permission and instead appears to reuse the previous permission state: If the user previously had no access → after uninstall/reinstall, still no access (no prompt shown) If the user previously had limited access → after reinstall, access becomes empty (0 contacts), still no prompt If the user previously had fu
8
0
688
5d
Replacing a passcode profile with a passcode declaration on macOS requires a passcode change
We've put in a feedback assistant request, but not sure if we will get feedback in that channel or not and also want to highlight for others. When replacing a basic passcode profile on a macOS device with a passcode declaration, the user is required to change the password after logging out and back in. Explicitly including the ChangeAtNextAuth key set equal to false, set required a password change after logging out and back in. Once the declaration is active and the password has been changed, future updates to the passcode declaration do not require a password change unless the existing password is not compliant. Steps to reproduce: Install a basic passcode profile on a macOS device Ensure the existing password matches the requirements specified in the profile Install a passcode declaration with the same settings as the passcode profile currently installed Remove the traditional passcode profile from the device After the passcode declaration is installed, check the local pwpolicy with the command pwpolicy get
3
0
712
5d
Reply to Extended Runtime API - Health Monitoring
It turns out we were not able to reproduce the crash with the following steps: Downloaded and installed their attached test app onto both paired iPhone + Apple Watch. Allowed data type authorization requested by the app. On watch launch, background observer query should have started as they implemented in applicationDidFinishLaunching. Could see the HR samples being retrieved by the query in the app’s UI when new data was detected. Put app into background, waited some time, injected new sample. Waited an hour+, injected new sample. Repeated the waiting+sample injection a few times. RE-foregrounded app. Used their refresh UI button. Could see the new samples showing up in UI. In this whole process, we never experienced an app crash or noticed a “CSLHandleBackgroundHealthKitQueryAction watchdog transgression” log on the watch (had a stream open the entire time). For us to further investigate the issue, would you mind to: Provide more granular specific reproduction steps about how to reproduce the crash
5d
AirPods Gestures
Hello together, is there an API or a way to react to AirPods Gestures for an Recording that got started from an Intent or even when the App is open? Scenario: I am walking, riding the bike or do some other mainly hands free activities or can't reach my phone but have my AirPods in my ears. Goal: Via Siri, I am able to start an AudioRecordingIntent and it runs smoothly. I'd like Pause / Resume the recording by Single Tapping the AirPods or to end the Recording by simply double-tapping. Pretty much like if I would mute/unmute or hang up on a call. MPRemoteCommandCenter doesn't seem to be the solution for this. Not sure if this is because the Recording is started through an AudioRecordingIntent.
0
0
284
5d
Reply to Distributing In House Apps via my OWN website
Maybe back up a bit. To distribute iOS apps to internal users of your organization, you need to have an Enterprise Developer account. You can then distribute your iOS apps via your own internal website, as described here: https://support.apple.com/guide/deployment/depce7cefc4d/web I don't have an Enterprise account, so that's all I can say about it. It sounds like you are trying to run iOS apps on your Macs. You can certainly do that. However, that is a feature designed for end users' convenience. From a developer's perspective, it isn't more convenient. You can bypass the complications of the Enterprise account by developing Mac-native apps. Then you can distribute them on your own website as DTS Engineer describes. The difficulty here is going to be how you develop the iOS apps. If you are developing stand-alone apps, you could use SwiftUI or the Mac Catalyst framework to built Mac apps using cross-platform or iOS APIs. But if you are using some 3rd party tool to build your iOS apps, then you'll ha
Replies
Boosts
Views
Activity
5d
Reply to Performance degradation of HTTP/3 requests in iOS app under specific network conditions
Thanks for the tips — both already in place. The test app calls finishTasksAndInvalidate() after each run and waits for urlSession(_:didBecomeInvalidWithError:) before proceeding; that's what made the qlog files appear reliably. And yes, I pulled everything into a standalone macOS app — that's where all the measurements below were taken. I've been systematically comparing configurations. The key variable is request size: our /api/launch POST has ~18 KB of headers (cookies, auth tokens, experiment flags) plus a small body. With URLSessionConfiguration.default, measuring requestStart→requestEnd from URLSessionTaskMetrics: H3 · large headers · modern engine · with prewarm 230 ms - 542 ms H3 · large headers · modern engine · no prewarm 34 ms-57 ms H3 · large headers · classic engine · with prewarm 24 ms-26 ms H3 · small headers · any config 0 ms H2 · any config 0 ms (because, as I understand it, sending packets here is at a different level in tcp and the implementation doesn't know when it sent the last
Replies
Boosts
Views
Activity
5d
Reply to Reclaiming cached data from an `enumerateDirectory` call
[quote='885813022, DTS Engineer, /thread/824156?answerId=885813022#885813022'] Some of the information here may already be obvious or well understood to you. [/quote] Thank you for taking the time to write all this down. That context is very helpful, especially as I'm not super familiar with the lower level Unix APIs related to this. [quote='885809022, DTS Engineer, /thread/824156?answerId=885809022#885809022'] I don't think that's a safe assumption and, in practice, I think you're very likely to see lots of cases where a lookup ISN'T generated. I don't think a basic ls will generate a lookup call and I'd expect/hope the Finder would avoid it at least some of the time. [/quote] Both of those expectations don't The second expectation doesn't seem to be what happens in reality, at least on macOS 15.7.5. I've been testing with a sample file system that has a directory with 10,000 items. When I do a time ls /Volumes/MyFS/dir, I see that a lookupItem call was done for every single item (actually, 2 for each item,
Topic: App & System Services SubTopic: Core OS Tags:
Replies
Boosts
Views
Activity
5d
Can the same widget in an Xcode project support multiple targets?
Hello everyone, my app A now supports iOS Widget C under the same Xcode project. Now I have another app B under this project, and I hope it can also support this Widget C. What should be done? How should the app group be configured? I have found some solutions: for example, add this key under the info.plist corresponding to app B: NSExtension NSExtensionPointIdentifier com.apple.widgetkit-extension NSExtensionPrincipalClass $(PRODUCT_MODULE_NAME).WidgetEntryView However, when I configured it and started running, not only could I not see the support Widget C, but the screen also went black. Thank you all.
Replies
1
Boosts
0
Views
130
Activity
5d
HomeKit Firmeware Update Characteristics
Is there any information available on how developers can implement the Firmware Update Readiness and/or Firmware Update Status characteristics in HomeKit? Many consumer devices support this (showing an update available icon), however, there appears to be nothing in the documentation about this characteristic, and it is not listed as an option in the HomeKit Accessory Simulator. Thanks in advance!
Replies
1
Boosts
0
Views
115
Activity
5d
Reply to RealityView content disappears when selecting Lock In Place on visionOS
Hi @Kunal07 Thanks for the focused repro, that's genuinely helpful. Could selecting Lock In Place be causing the ImmersiveSpace to be dismissed, which is why the RealityView content vanishes? I'm not yet sure why this only reproduces under TestFlight and not when running locally from Xcode. I'd greatly appreciate it if you could open a bug report. Please include a zipped copy of the minimal Xcode project that reproduces the issue and a reference to this forum post, and post the FB number back here once you do. Bug Reporting: How and Why? has tips on creating your bug report.
Topic: Spatial Computing SubTopic: General Tags:
Replies
Boosts
Views
Activity
5d
Reply to Bundle preferred languages mechanism
When a trying into my device and I set to for example something I don’t have en-IE, the system's internal fallback resolution path looks like this: en-IEDoes the app have Ireland English? No. en-GB (Does the app have British English? Yes.) I have that one set. Because your app includes en-GB, the system stops at step 2. It determines that en-GB will provide a much better localized experience. This is exactly right. The system for choosing which language to show in the UI is somewhat complex, taking into account the user's preferred languages, the languages supported by the app itself, and language fallbacks. The language fallbacks also evolve as support for new languages is added to the operating system (and very occasionally over time, if feedback is given that specific fallback languages don't feel right).
Topic: App & System Services SubTopic: General Tags:
Replies
Boosts
Views
Activity
5d
Reply to Clarification on HealthKit Observer Delivery Frequency and BGTaskScheduler Behavior
How background tasks and HealthKit work on watchOS was somehow discussed here and here. You can check if they help. iOS has a similar background execution time budget, but isn't as strict as watchOS. In a normal situation (meaning that your app has background execution time budget, the device's battery level is high, and no many apps are competing the background execution time), I'd expect that the system wakes your app and runs the updateHandler of your observer query (HKObserverQuery) whenever a process saves or deletes samples of the specified type. The update frequency (HKUpdateFrequency) for sample types is another factor to consider. For example, stepCount samples have an hourly maximum frequency in iOS, and so the updateHandler will be triggered at most once per hour, even you use enableBackgroundDelivery + .immediate. This is documented in the Discussion section here. Now to your questions: Are HKObserverQuery delivery frequencies (.immediate, .hourly, .daily) strictly best-effort hints rathe
Replies
Boosts
Views
Activity
5d
Can CLI apps not use SecItemAdd?
tl;dr: The title and/or can I even add a keychain entitlement to a cli app? I'm trying to store a generated private key and certificate properly in a CLI app. The call to SecItemAdd always results in an error with message A required entitlement isn't present. I assume this is errSecMissingEntitlement, and its docs say it happens when you specify an access group to which your app doesn’t belong. But I'm not even specifying one. Here's a small excerpt (I know it's not a MVCE but the question is pretty general anyway): func storeCert(_ cert: Data) throws { let addQuery = [ kSecClass: kSecClassCertificate, kSecValueRef: cert, kSecAttrLabel: CERT_USER_LABEL, kSecAttrApplicationLabel: CERT_APP_LABEL ] as [String: Any] let status = SecItemAdd(addQuery as CFDictionary, nil) guard status == errSecSuccess else { let msg = SecCopyErrorMessageString(status, nil) as String? ?? throw MyErr.generic(message: Unable to store cert: (msg)) } } I can't add the keychain entitlement to my CLI target, it doesn't show as a
Replies
1
Boosts
0
Views
250
Activity
5d
Reply to Reclaiming cached data from an `enumerateDirectory` call
Part 1... Disclaimer: Some of the information here may already be obvious or well understood to you. If it is, then thank you for your patience as I use this as an excuse to push out background information that other developers may find useful. Oh, I think I was a little unclear in what I wrote. What I was trying to say in a call to enumerateDirectory of this nature was that if I call enumerateDirectory with a non-minimal attribute set (i.e. include attributes that need more I/O to fetch), then I see that behavior. But you're right in that iterating over a directory with minimal attributes doesn't generally have additional lookupItem calls in my tests. Again, you have to be careful of the API you're using. The classic Unix directory iteration pattern[1] is to read the directory (readdir-> enumerateDirectory) and then retrieve metadata (stat-> lookupItemNamed). There are two problems with that: At a basic level, it generates a lot of syscalls, each of which nibble away at performance. From the file syste
Topic: App & System Services SubTopic: Core OS Tags:
Replies
Boosts
Views
Activity
5d
Bundle preferred languages mechanism
Hi there, I’m curious to understand how the system determines which language to use for an app. The system is currently set to en-IN (English - India). My app supports the following languages: en (the default development language) en-GB (United Kingdom) en-IE (Ireland) en-US (United States) When I run the app, the Bundle.main.preferredLanguages returns [„en-GB“, „en“], which causes the app to be set to en-GB. However, when the app doesn’t support the preferred system language, I would expect it to default to the en language. Surprisingly, this is not the case. This behavior is precisely described in Technical Note TN2418. Unfortunately, there’s no explanation provided. Is this behavior related to the CLDR Linguistic Distance? I also attempted to replace the default development language en with en-001 (English - world), but it had no effect.
Replies
3
Boosts
0
Views
113
Activity
5d
Contacts permission not requested on production build (iPhone 16/17 Pro Max)
I’m encountering an issue where my app does not show the Contacts permission prompt in the production environment. This has been observed on iPhone 16 Pro Max and iPhone 17 Pro Max devices, while other iPhone models appear to behave correctly. The behavior is consistent across Xcode builds, TestFlight, and the App Store version when using the production bundle identifier. Instead of returning .notDetermined, the app receives the device’s previous Contacts authorization status, so the system permission prompt is never shown. Expected behavior On first launch after install, the app should prompt the user for Contacts access. Actual behavior (Production build) The app does not prompt for Contacts permission and instead appears to reuse the previous permission state: If the user previously had no access → after uninstall/reinstall, still no access (no prompt shown) If the user previously had limited access → after reinstall, access becomes empty (0 contacts), still no prompt If the user previously had fu
Replies
8
Boosts
0
Views
688
Activity
5d
Replacing a passcode profile with a passcode declaration on macOS requires a passcode change
We've put in a feedback assistant request, but not sure if we will get feedback in that channel or not and also want to highlight for others. When replacing a basic passcode profile on a macOS device with a passcode declaration, the user is required to change the password after logging out and back in. Explicitly including the ChangeAtNextAuth key set equal to false, set required a password change after logging out and back in. Once the declaration is active and the password has been changed, future updates to the passcode declaration do not require a password change unless the existing password is not compliant. Steps to reproduce: Install a basic passcode profile on a macOS device Ensure the existing password matches the requirements specified in the profile Install a passcode declaration with the same settings as the passcode profile currently installed Remove the traditional passcode profile from the device After the passcode declaration is installed, check the local pwpolicy with the command pwpolicy get
Replies
3
Boosts
0
Views
712
Activity
5d
Reply to Extended Runtime API - Health Monitoring
It turns out we were not able to reproduce the crash with the following steps: Downloaded and installed their attached test app onto both paired iPhone + Apple Watch. Allowed data type authorization requested by the app. On watch launch, background observer query should have started as they implemented in applicationDidFinishLaunching. Could see the HR samples being retrieved by the query in the app’s UI when new data was detected. Put app into background, waited some time, injected new sample. Waited an hour+, injected new sample. Repeated the waiting+sample injection a few times. RE-foregrounded app. Used their refresh UI button. Could see the new samples showing up in UI. In this whole process, we never experienced an app crash or noticed a “CSLHandleBackgroundHealthKitQueryAction watchdog transgression” log on the watch (had a stream open the entire time). For us to further investigate the issue, would you mind to: Provide more granular specific reproduction steps about how to reproduce the crash
Replies
Boosts
Views
Activity
5d
AirPods Gestures
Hello together, is there an API or a way to react to AirPods Gestures for an Recording that got started from an Intent or even when the App is open? Scenario: I am walking, riding the bike or do some other mainly hands free activities or can't reach my phone but have my AirPods in my ears. Goal: Via Siri, I am able to start an AudioRecordingIntent and it runs smoothly. I'd like Pause / Resume the recording by Single Tapping the AirPods or to end the Recording by simply double-tapping. Pretty much like if I would mute/unmute or hang up on a call. MPRemoteCommandCenter doesn't seem to be the solution for this. Not sure if this is because the Recording is started through an AudioRecordingIntent.
Replies
0
Boosts
0
Views
284
Activity
5d