Search results for

“Visual Studio Maui IOS”

109,081 results found

Post

Replies

Boosts

Views

Activity

Face ID (LAContext) authenticate() causes SIGABRT crash immediately on iOS (Flutter local_auth)
I am developing a Flutter iOS application and encountering a crash when using biometric authentication (Face ID) via the local_auth plugin. ■ Environment Flutter: 3.x local_auth: 2.2.0 (also tested with 2.1.6) iOS: real device (Face ID is working normally for device unlock) Firebase Authentication (email/password) Xcode build ■ Issue When calling biometric authentication, the app crashes immediately. Code: final didAuthenticate = await auth.authenticate( localizedReason: 'Authenticate to login', options: const AuthenticationOptions( biometricOnly: false, useErrorDialogs: false, ), ); ■ Error Thread 1: signal SIGABRT Crash occurs in libsystem_kernel.dylib (__pthread_kill) Happens immediately when authenticate() is called No exception is caught in Dart (native crash) ■ Verified NSFaceIDUsageDescription is correctly included in Info.plist Confirmed it exists in the built Runner.app Info.plist localizedReason is non-empty and in English Flutter clean / pod install executed App reinstalled on dev
1
0
222
1w
Xcode 26.3 Simulator renders SwiftUI app only inside a rounded rectangle instead of full screen
Hi everyone, I’m seeing a strange rendering issue in Xcode 26.3 that seems to affect only the iOS Simulator. Environment: Xcode 26.3 SwiftUI app Reproduces in Simulator only Reproduces across multiple simulator device models My code is just a minimal example Expected behavior: The view should fill the entire screen. Actual behavior: The app content is rendered only inside a centered rounded rectangle/card-like area, with black space around it, as if the app canvas is being clipped incorrectly. Minimal reproduction: import SwiftUI @main struct LayoutShowcaseApp: App { var body: some Scene { WindowGroup { Color.green.ignoresSafeArea() } } } I also tried wrapping it in a ZStack and using: .frame(maxWidth: .infinity, maxHeight: .infinity) .background(...) .ignoresSafeArea() but the result is the same. What I already tried: Clean Build Folder Switching simulator device models Resetting simulator content/settings Rebuilding from a fresh minimal SwiftUI project Since this happens with such a minimal example
Topic: UI Frameworks SubTopic: SwiftUI
0
0
220
1w
Attached macro loses generated source file
I’m seeing what looks like a compiler / macro-expansion / build-pipeline issue. Environment: Xcode 26.4 RC (17E192, latest); I believe it is also reproducible on earlier versions. github source code I reduced this to a very small macOS/iOS app plus a local macro package. The app logic is trivial, but app exits immediately on launch with code 138 Important observations: If I inline everything into a single file, the problem disappears. I also see an error like this during investigation: The file path does not exist on the file system: /var/folders/.../swift-generated-sources/@__swiftmacro_18MacroFeedbackRepro20MountActivationState17PreservedRawValuefMm_.swift That makes me suspect this is not an application logic issue, but something in macro expansion / generated source handling / compiler pipeline.
2
0
1.1k
1w
iOS 26: Toolbar button background flashes black during NavigationStack transitions (dark mode)
I’m seeing a visual glitch with toolbar buttons when building with Xcode 26 for iOS 26. During transitions (both pushing in a NavigationStack and presenting a .sheet with its own NavigationStack), the toolbar button briefly flashes the wrong background colour (black in dark mode, white in light mode) before animating to the correct Liquid Glass appearance. This happens even in a minimal example and only seems to affect system toolbar buttons. A custom view with .glassEffect() doesn’t have the issue. I’ve tried: .tint(...), UINavigationBarAppearance/UIToolbarAppearance, and setting backgrounds on hosting/nav/window but none of those made any difference. Here’s a minimal reproducible example: import SwiftUI struct ContentView: View { @State private var showingSheet = false var body: some View { NavigationStack { List { NavigationLink(Push (same stack — morphs)) { DetailView() } Button(Sheet (separate stack — flashes)) { showingSheet = true } } .navigationTitle(Root) .scrollContentBackground(.h
1
0
312
1w
Reply to Video Audio + Speech To Text
This is actually possible, though it requires a different approach than the typical single-AVAudioEngine setup. The key insight is that iOS allows multiple AVCaptureSession instances to coexist under certain conditions. You can configure two separate audio routes: Use AVCaptureSession with the AirPods as the input device for your speech recognition pipeline. Set the audio session category to .playAndRecord with .allowBluetooth option. For video recording with the built-in mic, use a second AVCaptureSession (or the camera API you are already using). The built-in mic can be explicitly selected as the audio input for this session. The catch is you need to manage the audio session category carefully. The .mixWithOthers option is essential here — without it, one session will interrupt the other. Another approach that avoids the dual-session complexity: use a single AVCaptureSession that captures from the built-in mic for video, and run SFSpeechRecognizer (or the new SpeechAnalyzer on macOS 26 / iOS
Topic: Media Technologies SubTopic: Audio Tags:
1w
Maps: opening hours API / Property
I’m currently developing an iOS app that relies heavily on location details. I'm using MapKit and MKMapItem as my primary data source, which works perfectly for standard metadata. However, I’ve hit a roadblock: I want to display opening hours inline within my location details, but it seems Apple doesn't expose a public API or property for this in MKMapItem (even though the data is clearly visible in the native Apple Maps app). Since I'm building this as an indie developer/startup, the Google Places API is unfortunately too expensive for my current budget. ⁠Is there any legitimate, native way to get opening hours from Apple that I might have missed? ⁠If not, what are your best practices or recommended indie-friendly alternatives (e.g., Yelp Fusion API, OpenStreetMap, Foursquare)? Any tips on how to handle this elegantly and cost-efficiently would be highly appreciated! Thanks in advance.
2
0
264
1w
Reply to IsEligibleForAgeFeatures behavior in Brazil
Hi @tomatomato, @jarrodlombardo-eventbase, @raphaelkohncr, Thanks for your continued patience. Before I begin, the answer below applies to current regional requirements as of the iOS 26.4 release, and should also be used as guidance for any upcoming regional regulations. You wrote: 1. What's the return value of IsEligibleForAgeFeatures for a Brazilian user who has NOT touched the age range feature at all, thus hasn't picked one of the three options? The intended usage of isEligibleForAgeFeatures is to determine whether associated laws or regulations may apply to your app based on the person's region and account settings. If your app is eligible for age-gated features and needs to support age assurance for the current user, the property returns true; otherwise, it returns false. It's a simple boolean value—if you require more granularity for the specific regulatory requirements, use requiredRegulatoryFeatures as well. Next, you wrote: 2. How can we test these cases? From the updated sandbox doc, there
Topic: App & System Services SubTopic: General Tags:
1w
Reply to Display Zoom
Hello @joscar, The system doesn't have any APIs to control system level zoom on iOS. You can create one that works within your app by creating alternate views or modifiers for each intended zoom level, and have the app manage the zoom state.  Travis
1w
Reply to isEligibleForAgeFeatures and different legal requirements for different regions
Hi @jarrodlombardo-eventbase, You wrote: How can we determine if the user is eligible for the TX versus other state requirements? Before I begin, the answer below applies to current regional requirements as of the iOS 26.4 release, and should also be used as guidance for any upcoming regional regulations. The Declared Age Range framework provides two ways of determining eligibility and requirements based on the person using your app: isEligibleForAgeFeatures requiredRegulatoryFeatures Use isEligibleForAgeFeatures to determine whether associated laws or regulations may apply to your app based on the person's region and account settings. Use requiredRegulatoryFeatures, in addition to isEligibleForAgeFeatures, to determine which regulatory features apply to your app based on the person's region and account settings. Note: Regulatory features added in upcoming regulations (for example, after iOS 26.4) may or may not be included in the existing set of RegulatoryFeature types in iOS 26.4,
Topic: App & System Services SubTopic: General Tags:
1w
Reply to Glass Effect Label Shadow Clipping During Morph Animation
If you’re set on using native views in iOS 26 (rather than custom LiquidContainers) and have encountered visual glitches, like shadow clipping or view hierarchy issues, when applying .glassEffect to Menu labels, this thread should be helpful. After some research, I found a useful suggestion on Stack Overflow. TLDR; Wrapping your label in .compositingGroup() significantly improves rendering, especially when using more complex labels inside a Menu. To achieve the cleanest appearance, I recommend combining .compositingGroup() with .glassEffect(.clear). Here’s a sample demonstrating this approach: Menu { Button(Duplicate, action: {}) Button(Rename, action: {}) Button(Delete…, action: {}) } label: { VStack(alignment: .leading) { Text(Title) .tint(.primary) Text(Subtitle) .tint(.secondary) } .frame(maxWidth: .infinity, alignment: .leading) .padding() .glassEffect(.clear) } .compositingGroup()
Topic: UI Frameworks SubTopic: SwiftUI Tags:
1w
Reply to Glass Effect Label Shadow Clipping During Morph Animation
It seems like there are two ways of approaching this. One (bad one) is: Adding the padding on the label view to compensate the native shadow. Menu { Button(Duplicate, action: {}) Button(Rename, action: {}) Button(Delete…, action: {}) } label: { Label(PDF, systemImage: doc.fill) .padding() .glassEffect(.regular) .padding(40) // <- Here } Another one, much better: Menu { Button(Duplicate, action: {}) Button(Rename, action: {}) Button(Delete…, action: {}) } label: { Label(PDF, systemImage: doc.fill) .padding() .glassEffect(.clear) } Both have tradeoffs, one is a spatial one, since you have to provide space for it, but maybe useful for someone who is not constrained by space. Another one - visual, since the glass effect .clear, doesn't have a frost. I guess this could be improved by overlaying a white color with low opacity to simulate the same effect.
Topic: UI Frameworks SubTopic: SwiftUI Tags:
1w
Glass Effect Label Shadow Clipping During Morph Animation
Hi all, I’m experiencing a visual bug when applying the glass effect to a Label in Liquid Glass (current version 26.2 on simulator; also reproducible in 26.3.1 on device). Issue: On a label with .glassEffect(.regular), when collapsing via morph animation, the shadow is clipped during the animation, and then suddenly pops back to its un-clipped state, resulting in a jarring visual effect. Minimal Example: import SwiftUI struct ContentView: View { var body: some View { Menu { Button(Duplicate, action: {}) Button(Rename, action: {}) Button(Delete…, action: {}) } label: { Label(PDF, systemImage: doc.fill) .padding() .glassEffect(.regular) } } } #Preview { ContentView() } I am not sure if I am misusing the .glassEffect() on the label and maybe there is another more native way of achieving this look? Any advice or workaround suggestions would be greatly appreciated!
2
0
91
1w
Powermetrics GPU power vs system DC power discrepancy on M4 Max
While analyzing system power on an M4 Max under GPU-heavy compute workloads, I noticed that the the GPU power reported by powermetrics does not come anywhere close to total system DC power reported by the SMC counter PDTR (as used by utilities like mactop). For example, in a heavy GPU workload, powermetrics would report a 65W idle-load delta on the GPU, but at the same time system DC power would rise by 179W, leaving 114W or nearly 2/3 of total system DC power on a Mac Studio M4 Max unexplained. From measurements, the difference appears to correlate with the amount of on-chip data movement (for example, varying bytes-per-FLOP in the workload changes the observed gap). Using SMC and IOReport, I was able to reverse engineer an energy model for the GPU that explains almost all of the energy flow with less than 2% error on the workload I studied. The result is a simple two-term energy roofline model: P_GPU (GPU_combined term in the plot) ≈ a * bytes + b * FLOPs with: ~5 pJ/byte for SRAM movement ~2.7 pJ/
0
0
62
1w
Triggering “realtime” mode for peer-to-peer WiFi via awdl to fix jitter problems
This is a bit complicated to explain so bare with me. I am working on building an app that allows you to send real time video/camera captures from one Apple device to another. I am using a custom UDP protocol built on top of NWListener, NWBrowser, and NWConnection APIs. It works fine, but there are a few issues that seems to all be related to awdl: When transmitting via WiFi over the router (not using peer-to-peer), there are periodic interruptions when the wireless card on the device changes channels for awdl polling. This is resolved by changing the 5GHz WiFi channel on the router to channel 149 (or disabling AWDL altogether which is not really feasible). In order to work around number 1, I decided to build in an option to toggle/prefer peer-to-peer transmission in the app thinking that if everything goes over a peer-to-peer connection the jitter caused from the channel switching should go away. This also works, but with an important caveat. The default transmission is extremely choppy until you take an OS
3
0
133
1w
Face ID (LAContext) authenticate() causes SIGABRT crash immediately on iOS (Flutter local_auth)
I am developing a Flutter iOS application and encountering a crash when using biometric authentication (Face ID) via the local_auth plugin. ■ Environment Flutter: 3.x local_auth: 2.2.0 (also tested with 2.1.6) iOS: real device (Face ID is working normally for device unlock) Firebase Authentication (email/password) Xcode build ■ Issue When calling biometric authentication, the app crashes immediately. Code: final didAuthenticate = await auth.authenticate( localizedReason: 'Authenticate to login', options: const AuthenticationOptions( biometricOnly: false, useErrorDialogs: false, ), ); ■ Error Thread 1: signal SIGABRT Crash occurs in libsystem_kernel.dylib (__pthread_kill) Happens immediately when authenticate() is called No exception is caught in Dart (native crash) ■ Verified NSFaceIDUsageDescription is correctly included in Info.plist Confirmed it exists in the built Runner.app Info.plist localizedReason is non-empty and in English Flutter clean / pod install executed App reinstalled on dev
Replies
1
Boosts
0
Views
222
Activity
1w
Xcode 26.3 Simulator renders SwiftUI app only inside a rounded rectangle instead of full screen
Hi everyone, I’m seeing a strange rendering issue in Xcode 26.3 that seems to affect only the iOS Simulator. Environment: Xcode 26.3 SwiftUI app Reproduces in Simulator only Reproduces across multiple simulator device models My code is just a minimal example Expected behavior: The view should fill the entire screen. Actual behavior: The app content is rendered only inside a centered rounded rectangle/card-like area, with black space around it, as if the app canvas is being clipped incorrectly. Minimal reproduction: import SwiftUI @main struct LayoutShowcaseApp: App { var body: some Scene { WindowGroup { Color.green.ignoresSafeArea() } } } I also tried wrapping it in a ZStack and using: .frame(maxWidth: .infinity, maxHeight: .infinity) .background(...) .ignoresSafeArea() but the result is the same. What I already tried: Clean Build Folder Switching simulator device models Resetting simulator content/settings Rebuilding from a fresh minimal SwiftUI project Since this happens with such a minimal example
Topic: UI Frameworks SubTopic: SwiftUI
Replies
0
Boosts
0
Views
220
Activity
1w
Attached macro loses generated source file
I’m seeing what looks like a compiler / macro-expansion / build-pipeline issue. Environment: Xcode 26.4 RC (17E192, latest); I believe it is also reproducible on earlier versions. github source code I reduced this to a very small macOS/iOS app plus a local macro package. The app logic is trivial, but app exits immediately on launch with code 138 Important observations: If I inline everything into a single file, the problem disappears. I also see an error like this during investigation: The file path does not exist on the file system: /var/folders/.../swift-generated-sources/@__swiftmacro_18MacroFeedbackRepro20MountActivationState17PreservedRawValuefMm_.swift That makes me suspect this is not an application logic issue, but something in macro expansion / generated source handling / compiler pipeline.
Replies
2
Boosts
0
Views
1.1k
Activity
1w
iOS 26: Toolbar button background flashes black during NavigationStack transitions (dark mode)
I’m seeing a visual glitch with toolbar buttons when building with Xcode 26 for iOS 26. During transitions (both pushing in a NavigationStack and presenting a .sheet with its own NavigationStack), the toolbar button briefly flashes the wrong background colour (black in dark mode, white in light mode) before animating to the correct Liquid Glass appearance. This happens even in a minimal example and only seems to affect system toolbar buttons. A custom view with .glassEffect() doesn’t have the issue. I’ve tried: .tint(...), UINavigationBarAppearance/UIToolbarAppearance, and setting backgrounds on hosting/nav/window but none of those made any difference. Here’s a minimal reproducible example: import SwiftUI struct ContentView: View { @State private var showingSheet = false var body: some View { NavigationStack { List { NavigationLink(Push (same stack — morphs)) { DetailView() } Button(Sheet (separate stack — flashes)) { showingSheet = true } } .navigationTitle(Root) .scrollContentBackground(.h
Replies
1
Boosts
0
Views
312
Activity
1w
Reply to Video Audio + Speech To Text
This is actually possible, though it requires a different approach than the typical single-AVAudioEngine setup. The key insight is that iOS allows multiple AVCaptureSession instances to coexist under certain conditions. You can configure two separate audio routes: Use AVCaptureSession with the AirPods as the input device for your speech recognition pipeline. Set the audio session category to .playAndRecord with .allowBluetooth option. For video recording with the built-in mic, use a second AVCaptureSession (or the camera API you are already using). The built-in mic can be explicitly selected as the audio input for this session. The catch is you need to manage the audio session category carefully. The .mixWithOthers option is essential here — without it, one session will interrupt the other. Another approach that avoids the dual-session complexity: use a single AVCaptureSession that captures from the built-in mic for video, and run SFSpeechRecognizer (or the new SpeechAnalyzer on macOS 26 / iOS
Topic: Media Technologies SubTopic: Audio Tags:
Replies
Boosts
Views
Activity
1w
Maps: opening hours API / Property
I’m currently developing an iOS app that relies heavily on location details. I'm using MapKit and MKMapItem as my primary data source, which works perfectly for standard metadata. However, I’ve hit a roadblock: I want to display opening hours inline within my location details, but it seems Apple doesn't expose a public API or property for this in MKMapItem (even though the data is clearly visible in the native Apple Maps app). Since I'm building this as an indie developer/startup, the Google Places API is unfortunately too expensive for my current budget. ⁠Is there any legitimate, native way to get opening hours from Apple that I might have missed? ⁠If not, what are your best practices or recommended indie-friendly alternatives (e.g., Yelp Fusion API, OpenStreetMap, Foursquare)? Any tips on how to handle this elegantly and cost-efficiently would be highly appreciated! Thanks in advance.
Replies
2
Boosts
0
Views
264
Activity
1w
Reply to How to delete rogue iOS simulators and reclaim disk space?
Yeah, that's probably a bug in the iOS Simulator runtime that incorrectly annotated some of the files within the data directory. I bet if you look in that directory, you'll see some leftover spotlight files. I think you can delete them manually with sudo rm -rf ~/Library/Developer/CoreSimulator/Devices/...
Replies
Boosts
Views
Activity
1w
Reply to IsEligibleForAgeFeatures behavior in Brazil
Hi @tomatomato, @jarrodlombardo-eventbase, @raphaelkohncr, Thanks for your continued patience. Before I begin, the answer below applies to current regional requirements as of the iOS 26.4 release, and should also be used as guidance for any upcoming regional regulations. You wrote: 1. What's the return value of IsEligibleForAgeFeatures for a Brazilian user who has NOT touched the age range feature at all, thus hasn't picked one of the three options? The intended usage of isEligibleForAgeFeatures is to determine whether associated laws or regulations may apply to your app based on the person's region and account settings. If your app is eligible for age-gated features and needs to support age assurance for the current user, the property returns true; otherwise, it returns false. It's a simple boolean value—if you require more granularity for the specific regulatory requirements, use requiredRegulatoryFeatures as well. Next, you wrote: 2. How can we test these cases? From the updated sandbox doc, there
Topic: App & System Services SubTopic: General Tags:
Replies
Boosts
Views
Activity
1w
Reply to Display Zoom
Hello @joscar, The system doesn't have any APIs to control system level zoom on iOS. You can create one that works within your app by creating alternate views or modifiers for each intended zoom level, and have the app manage the zoom state.  Travis
Replies
Boosts
Views
Activity
1w
Reply to isEligibleForAgeFeatures and different legal requirements for different regions
Hi @jarrodlombardo-eventbase, You wrote: How can we determine if the user is eligible for the TX versus other state requirements? Before I begin, the answer below applies to current regional requirements as of the iOS 26.4 release, and should also be used as guidance for any upcoming regional regulations. The Declared Age Range framework provides two ways of determining eligibility and requirements based on the person using your app: isEligibleForAgeFeatures requiredRegulatoryFeatures Use isEligibleForAgeFeatures to determine whether associated laws or regulations may apply to your app based on the person's region and account settings. Use requiredRegulatoryFeatures, in addition to isEligibleForAgeFeatures, to determine which regulatory features apply to your app based on the person's region and account settings. Note: Regulatory features added in upcoming regulations (for example, after iOS 26.4) may or may not be included in the existing set of RegulatoryFeature types in iOS 26.4,
Topic: App & System Services SubTopic: General Tags:
Replies
Boosts
Views
Activity
1w
Reply to Glass Effect Label Shadow Clipping During Morph Animation
If you’re set on using native views in iOS 26 (rather than custom LiquidContainers) and have encountered visual glitches, like shadow clipping or view hierarchy issues, when applying .glassEffect to Menu labels, this thread should be helpful. After some research, I found a useful suggestion on Stack Overflow. TLDR; Wrapping your label in .compositingGroup() significantly improves rendering, especially when using more complex labels inside a Menu. To achieve the cleanest appearance, I recommend combining .compositingGroup() with .glassEffect(.clear). Here’s a sample demonstrating this approach: Menu { Button(Duplicate, action: {}) Button(Rename, action: {}) Button(Delete…, action: {}) } label: { VStack(alignment: .leading) { Text(Title) .tint(.primary) Text(Subtitle) .tint(.secondary) } .frame(maxWidth: .infinity, alignment: .leading) .padding() .glassEffect(.clear) } .compositingGroup()
Topic: UI Frameworks SubTopic: SwiftUI Tags:
Replies
Boosts
Views
Activity
1w
Reply to Glass Effect Label Shadow Clipping During Morph Animation
It seems like there are two ways of approaching this. One (bad one) is: Adding the padding on the label view to compensate the native shadow. Menu { Button(Duplicate, action: {}) Button(Rename, action: {}) Button(Delete…, action: {}) } label: { Label(PDF, systemImage: doc.fill) .padding() .glassEffect(.regular) .padding(40) // <- Here } Another one, much better: Menu { Button(Duplicate, action: {}) Button(Rename, action: {}) Button(Delete…, action: {}) } label: { Label(PDF, systemImage: doc.fill) .padding() .glassEffect(.clear) } Both have tradeoffs, one is a spatial one, since you have to provide space for it, but maybe useful for someone who is not constrained by space. Another one - visual, since the glass effect .clear, doesn't have a frost. I guess this could be improved by overlaying a white color with low opacity to simulate the same effect.
Topic: UI Frameworks SubTopic: SwiftUI Tags:
Replies
Boosts
Views
Activity
1w
Glass Effect Label Shadow Clipping During Morph Animation
Hi all, I’m experiencing a visual bug when applying the glass effect to a Label in Liquid Glass (current version 26.2 on simulator; also reproducible in 26.3.1 on device). Issue: On a label with .glassEffect(.regular), when collapsing via morph animation, the shadow is clipped during the animation, and then suddenly pops back to its un-clipped state, resulting in a jarring visual effect. Minimal Example: import SwiftUI struct ContentView: View { var body: some View { Menu { Button(Duplicate, action: {}) Button(Rename, action: {}) Button(Delete…, action: {}) } label: { Label(PDF, systemImage: doc.fill) .padding() .glassEffect(.regular) } } } #Preview { ContentView() } I am not sure if I am misusing the .glassEffect() on the label and maybe there is another more native way of achieving this look? Any advice or workaround suggestions would be greatly appreciated!
Replies
2
Boosts
0
Views
91
Activity
1w
Powermetrics GPU power vs system DC power discrepancy on M4 Max
While analyzing system power on an M4 Max under GPU-heavy compute workloads, I noticed that the the GPU power reported by powermetrics does not come anywhere close to total system DC power reported by the SMC counter PDTR (as used by utilities like mactop). For example, in a heavy GPU workload, powermetrics would report a 65W idle-load delta on the GPU, but at the same time system DC power would rise by 179W, leaving 114W or nearly 2/3 of total system DC power on a Mac Studio M4 Max unexplained. From measurements, the difference appears to correlate with the amount of on-chip data movement (for example, varying bytes-per-FLOP in the workload changes the observed gap). Using SMC and IOReport, I was able to reverse engineer an energy model for the GPU that explains almost all of the energy flow with less than 2% error on the workload I studied. The result is a simple two-term energy roofline model: P_GPU (GPU_combined term in the plot) ≈ a * bytes + b * FLOPs with: ~5 pJ/byte for SRAM movement ~2.7 pJ/
Replies
0
Boosts
0
Views
62
Activity
1w
Triggering “realtime” mode for peer-to-peer WiFi via awdl to fix jitter problems
This is a bit complicated to explain so bare with me. I am working on building an app that allows you to send real time video/camera captures from one Apple device to another. I am using a custom UDP protocol built on top of NWListener, NWBrowser, and NWConnection APIs. It works fine, but there are a few issues that seems to all be related to awdl: When transmitting via WiFi over the router (not using peer-to-peer), there are periodic interruptions when the wireless card on the device changes channels for awdl polling. This is resolved by changing the 5GHz WiFi channel on the router to channel 149 (or disabling AWDL altogether which is not really feasible). In order to work around number 1, I decided to build in an option to toggle/prefer peer-to-peer transmission in the app thinking that if everything goes over a peer-to-peer connection the jitter caused from the channel switching should go away. This also works, but with an important caveat. The default transmission is extremely choppy until you take an OS
Replies
3
Boosts
0
Views
133
Activity
1w