Search results for

“offloading”

204 results found

Post

Replies

Boosts

Views

Activity

Free Personal Team at device limit with no way to reset - any supported workaround?
Free Personal Team, hitting Your development team has reached the maximum number of registered iPhone devices. I need a local build on a physical device for a demo, so I'm looking for the fastest supported path rather than a fix for the underlying behavior. Context: I hadn't used this Apple ID for development in about two years, so the usual wait a week for registrations to expire advice doesn't seem to apply here. The registrations appear to have persisted well past that window. Already tried: removing and re-adding the account in Xcode, clearing ~/Library/Developer/Xcode/UserData/Provisioning Profiles, deleting the developer profile from the device, and confirming this isn't the separate offloaded-apps issue that causes the maximum number of apps for free development profiles error. Free accounts have no Devices page, so there's nothing to clear manually. I'm aware of two options: enroll in the Developer Program, or create a new Apple ID and use it as a fresh Personal Team. I've also seen reports o
Topic: Code Signing SubTopic: General Tags:
1
0
354
Aug ’26
Generating vertex data in compute shader
Hi there, I am working on a 3d game engine in Swift and Metal. Currently I dynamically generate vertex buffers for terrain chunks on the CPU and pass all models to the GPU via argument buffer and make indirect draw calls. Calculating where vertices should be is costly and I would like to offload the work to a compute shader. Setting up the shader was straightforward and I can see that it (at least as an empty function) is being executed in the CommandBuffer. However, I come to this problem: since I do not know ahead of time how many vertices a chunk of terrain will have, I cannot create a correctly-sized MTLBuffer to pass into the compute function to be populated for later use in a draw call. The only solution I could think of is something like the following: For each chunk model, allocate a VertexBuffer and IndexBuffer that will accommodate the maximum possible number of vertices for a chunk. Pass in the empty too-large buffers to the compute function Populate the too-large buffers and set the actua
6
0
2.1k
Jul ’23
request for a kernel I/O passthrough API for file-backed volumes (FUSE_PASSTHROUGH / ProjFS equivalent)
What I'm building An FSUnaryFileSystem that projects a large, read-mostly tree of existing on-disk files into a sandbox namespace — a build sandbox that lays out an action's declared inputs and points outputs at host scratch. This is squarely the replace a third-party kext (macFUSE-style) with FSKit use case, and it's a projection/overlay filesystem: nearly every file the volume serves is just a view of a regular file that already exists on a local APFS volume. The problem For file content, the only available path for a file-backed (non-block-device) volume is FSVolumeReadWriteOperations — every read that misses UBC is an XPC round-trip into my extension, where I memcpy from the backing file into the kernel buffer. The kernel already has, or could trivially open, the backing file; instead each page-in becomes: pagein → IPC → extension read → copy → return. FSVolumeKernelOffloadedIOOperations looks like the intended fast path, but it's built around FSBlockDeviceResource — i.e. it assumes the volume is backed b
6
0
286
Jun ’26
Reply to RunLoop behaviour change with performBlock?
Can you clarify the circumstances in which mach ports are leaked? Well, the unhelpful (and slightly flippant) answer is basically anytime they're not properly deallocated when they're no longer useful. More practically, the whole reason mach ports create issues IS that it's often quite difficult to connect any given mach port with the specific component responsible for managing that unit. In terms of run loop semantics specifically, I think you'd (potentially) generate a leak anytime you destroy an thread without removing/stopping all of it's input sources*. *Strictly speaking, that isn't necessarily a guaranteed leak. For example, some of our frameworks register thread destruction handlers so to handle clean up. However, at that point you're relying on the details of our own implementation, which is never ideal. Also, keep in mind that this isn't just about mach port leakage, but could involve any other resource who's management happened to be tied to that thread. The while loop in the original post is in a
Topic: App & System Services SubTopic: General Tags:
Nov ’24
Reply to iPhone and iPad accelerometer specifications
Hi all, I'm looking for the specifications for the accelerometers used in current iPhone and iPad devices, including the sensitivity and the update rates possible. We've never published any formal documentation about what the exact capabilities of the hardware were. However, I have a word of caution around this: Despite the documentation saying it's 100Hz, I've not yet found it to be better than 50Hz on any of iPhone SE, 8 or 11, nor iPad mini or Pros. Having worked with many developers using CoreMotion, I've seen the same pattern happen MANY times: A basic motion analysis engine is implemented, typically using the real time API and the with a target queue. The main thread or other busy thread are entangled with that algorithm, either because the code is running directly on that thread or because of implicit relationships which aren't as visible. Testing begins and the results are somewhat positive, however, there are issues with random data glitches or other oddities in the data. The assumption is made that
Topic: App & System Services SubTopic: Core OS Tags:
Sep ’24
Metal Matrix Multiplication reference code
Hi,I have just started experimenting with Metal. I really just want to offload a few matrix multiplications to the GPU.So, I downloaded this perfectly applicable example code and ran it: https://developer.apple.com/library/ios/samplecode/MetalPartialSumsCompute/Introduction/Intro.html#//apple_ref/doc/uid/TP40015013-Intro-DontLinkElementID_2I can run it on my iphone 6 but there are several issues:It crashes sometimes (EXC_BAD_ACCESS (code=1), and other malloc errors). That's a bit worrying for reference code.It says I am getting approximately 0.04 gflops/sec[sic] using either CPU (Accelerate) or GPU (Metal). I believe I should be getting 3+ GFLOPS from the CPU? (http://www.anandtech.com/show/8554/the-iphone-6-review/3) I'm not sure what to expect from the GPU/Metal but I am assuming a considerably higher number.Here's example output:2015-12-02 14:48:27.772 MetalMatrixMultiply[5477:2056717] >> [12] Matrix Dimensions: A = [1248 x 1137], B = [1137 x 2004], C = [1248 x 2004], lda = 1248, ldb = 2008,
1
0
2.2k
Dec ’15
Reply to OpenZFS on FSKit — Proof of Concept
The practical follow-on question: what entitlements exist today for block device ioctls (DKIOCGETBLOCKSIZE, DKIOCGETBLOCKCOUNT)? I'm not sure what you mean here. Having said that, the short answer is that I'm not aware of any entitlements relevant to this area of the system. The open question is whether the sandboxed extension can create and bind a socket at a path reachable by privileged tools outside the sandbox (e.g., /var/run/zfs/zfsd.sock). If that's permitted without a special entitlement, this blocker is resolved for us. First, just to clarify, privilege (that is, running as root) as such doesn't actually matter here. Your FSKit extension can basically talk to whoever it wants (particularly through a socket), so any protection you're doing needs to be something you implement, not the system. I haven't played around much with what's actually possible, however: Your FSKit extension has access to an app group container as well as its own and any tool you write can have access to the same location. If you
Topic: App & System Services SubTopic: Core OS Tags:
Jun ’26
EndpointSecurity: es_new_client freezes all operations until other clients decide pending messages?
I have 2 EndpointSecurity apps. App1 is doing the heavy lifting and processes multiple events(ES_EVENT_TYPE_AUTH_EXEC, ES_EVENT_TYPE_AUTH_OPEN, ES_EVENT_TYPE_AUTH_RENAME, ES_EVENT_TYPE_AUTH_UNLINK, ES_EVENT_TYPE_NOTIFY_CLOSE, ES_EVENT_TYPE_NOTIFY_CREATE ). App2 is responsible for checking whether Full Disk Access is granted or not: int main(int argc, char * argv[]) { ttes_client_t *client; auto res = es_new_client(&client, ^(es_client_t *clt, const es_message_t *msg) { }); tt_exit(res == ES_NEW_CLIENT_RESULT_ERR_NOT_PERMITTED ? 0 : 1); } (please note that none of the apps is a System Extension). Sometimes when App1 is runing and App2 executes, the system hangs. After few days of investigation, it seems that starting a new es client (even without registering any messages) causes the system to block all operations until all the currently pending auth requests from other clients are answered. This makes it very hard to reason about the application. It also requires to basically offload everything to
0
0
488
Jul ’20
Strange Microphone Issue on iOS 17.0.3
Hi all, I'm facing a strange issue on my iPhone 15 Pro Max with iOS 17.0.3 official release. A few days ago I was using WeChat and was making a voice call with my Airpods, and accidentally dropeed one of the Airdpod, after I picked it up, all of a sudden the person on the other end cannot hear me via the voice call anymore. Then I tried to send a voice message on WeChat and noticed it's also failing. Here's a list of things I've tried to investigate/narrow down this issue: I checked in Privacy settings and confirmed the toggle for Microphone is turned on for WeChat, also tried switching it to off then back on. I also checked WeChat's own permission settings and made sure all the toggles for Microphone are turned on, also tried switching them to off then back on. Tested other apps that uses the microphone (e.g. phone, facetime, voice memo, instagram, QQ (also from Tencent) etc.), and they are all working fine. Tried normal restart and hard restart of the phone, issue persists Log out from Wechat and log back i
4
0
3.1k
Oct ’23
Querying data from one-to-many relationship by aggregate in swiftdata
Hi all, I've been struggling a bit with SwiftData, I have a really simple data model but I need to do a fairly complex query over a one-to-many relationship that results in aggregate values. And I want to be able to sort and filter those aggregates. The model looks like this: @Model class Category { var name: String var items = [Item]() } @Model class Item { var added: Date var checked: Date? } In a typical use case I'd expect their to be at most around 50 categories and perhaps 20 items per category. In my UI I would like to be able to sort categories in a couple of ways: by name, by date added and by date checked with a fallback on date added. Also, in my list view I want to be able to list categories and show the checked date of the most recently checked item. I can think of a couple of solutions here, to start of with I can do all the sorting and filtering client-side. In the list view I could retrieve all the categories and then find the most recently checked item per category and go from there. Another
0
0
520
Jan ’24
TTS Alex voice is treated like available when it's actually not
Hello everybody! In my app I allow the user to change TTS voices and English Alex voice is one of possible options. However, there are some cases when it's treated as available when it's actually not. It results in pronouncing the TTS utterance with another voice. To prepare the list of available voices I use next code: NSMutableArray *voices = [NSMutableArray new]; for (AVSpeechSynthesisVoice *voice in [AVSpeechSynthesisVoice speechVoices]) { tt[voices addObject:@{ tttt@id: voice.identifier, tttt@name: voice.name, tttt@language: voice.language, tttt@quality: (voice.quality == AVSpeechSynthesisVoiceQualityEnhanced) ? @500 : @300 tt}]; } To start the playback I use the next code (here it's simplified a bit): AVSpeechUtterance *utterance = [[AVSpeechUtterance alloc] initWithString:text]; utterance.voice = [AVSpeechSynthesisVoice voiceWithIdentifier:voice]; [AVSpeechSynthesizer speakUtterance:utterance]; Cases when AVSpeechSynthesisVoice returns Alex as available when it's not: The easiest way to reproduce it is
3
0
2.7k
Oct ’20
watchOS 11.2 Debug Tunnel Timeout: iPhone Connected, Watch stuck in "Waiting to Reconnect" (Xcode 16.4)
Hello, I am experiencing a critical blocking issue developing a watchOS app. While the iPhone 15 Pro Max is fully Connected via USB (confirmed green light in Network Settings), the Apple Watch Series 7 (watchOS 11.2) remains unreachable by Xcode. Mac: Mac Mini (macOS 15/16). Devices: iPhone 15 Pro Max (iOS 18+), Apple Watch Series 7 (watchOS 11.2). Xcode: 16.4 / Build 26.4. Hardware: Direct USB-C connection (USB 2.0 480Mb/s protocol). Technical Evidence of Protocol Failure: Missing Staging Folders: ~/Library/Developer/Xcode/watchOS DeviceSupport does not exist, implying the handshake fails before symbol stripping/sync begins. CoreDevice Error: Consistently receiving: Previous preparation error: A connection to this device could not be established.; Timed out while attempting to establish tunnel using negotiated network parameters. Missing Keychain Entries: No com.apple.coredevice keys found in Keychain Access, suggesting the Trusted Host handshake is incomplete. mDNS/Discovery: xcrun devicectl list devices sh
1
0
121
Apr ’26
VPN (Packet Tunnel Provider) over SMB
Some users at a certain company reported they are having problems when using my VPN app for Mac (Packet Tunnel Povider), with SMB:Initiating an SMB upload will fail and then their VPN client will disconnect, in some cases the computer needs to be reboot.I've collected logs for my client (nothing suspicious there), and I also got the logs from thier Console.Those are some relevant lines from the Console, but again I don't see anything suspicious:default 17:27:16.194234 -0400 secd Microsoft Outloo[303]/1#16 LF=0 copy_matching Error Domain=NSOSStatusErrorDomain Code=-34018 Client has neither com.apple.application-identifier, com.apple.security.application-groups nor keychain-access-groups entitlements UserInfo={NSDescription=Client has neither com.apple.application-identifier, com.apple.security.application-groups nor keychain-access-groups entitlements} default 17:27:16.252627 -0400 com.apple.WebKit.WebContent Current memory footprint: 14 MB default 17:27:18.079823 -0400 symptomsd rssi (-53) or transmitRate (58
10
0
1.6k
Mar ’20
Discover and connect to BLE peripherals more rapidly in background
We are developing an app which connects to a BLE peripheral in the background whenever it gets close to it. What we have used so far is that we monitor a circular region. When the phone enters the region the app will start scanning for peripherals and when it discovers the peripheral it connects to it. This worked pretty well for the last few iOS versions, perhaps iOS 14-16. It wasn't perfect but for the most part it would feel like it connected rather quickly when you would approach the BLE peripheral. If you listen to music via BLE or talk to someone using your BLE headset then it could sometimes work noticeably worse. But, as said, for the most part it would work satisfactory. Starting with iOS 17 and analyzing the functionality over the past 6 months or so we've noticed a clear worsening of it. It does generally connect to the peripheral but the user might often have to wait for quite some time. Rather frequently the user must even light up the screen of the phone before anything even happens. It appears
2
0
1.3k
May ’24
Lessons learned shipping an open-source NetworkingDriverKit NIC driver (Realtek RTL8127, 10GbE)
I've just shipped a signed NetworkingDriverKit driver for the Realtek RTL8127 10GbE PCIe NICs on Apple Silicon, source at https://github.com/stefb69/RTL812xLucy (directory RTL8127Dext). It runs at line rate (9.4 Gbit/s each way at MTU 1500, 9.9 with jumbo frames) with TSO, checksum offload and four TX queues by service class. Since there are very few public NetworkingDriverKit drivers to learn from, here is what cost me the most time, in case it saves someone else a week. Three of these are filed as feedback. TX packets from native Skywalk flows have a 2-byte data offset (FBxxxxxxxx). getDataVirtualAddress() / getDataIOVirtualAddress() return the buffer base; the frame starts at getDataOff(). BSD-path packets (ping, curl, ssh, DHCP) have offset 0, Network.framework flows (Safari, URLSession, App Store, codesign --timestamp) have offset 2. If you DMA from the base, everything works except every modern client, which sits in SYN_SENT. The headers don't mention it. getMaxTransferUnit() is the maximum MTU
1
0
567
Sep ’26
Free Personal Team at device limit with no way to reset - any supported workaround?
Free Personal Team, hitting Your development team has reached the maximum number of registered iPhone devices. I need a local build on a physical device for a demo, so I'm looking for the fastest supported path rather than a fix for the underlying behavior. Context: I hadn't used this Apple ID for development in about two years, so the usual wait a week for registrations to expire advice doesn't seem to apply here. The registrations appear to have persisted well past that window. Already tried: removing and re-adding the account in Xcode, clearing ~/Library/Developer/Xcode/UserData/Provisioning Profiles, deleting the developer profile from the device, and confirming this isn't the separate offloaded-apps issue that causes the maximum number of apps for free development profiles error. Free accounts have no Devices page, so there's nothing to clear manually. I'm aware of two options: enroll in the Developer Program, or create a new Apple ID and use it as a fresh Personal Team. I've also seen reports o
Topic: Code Signing SubTopic: General Tags:
Replies
1
Boosts
0
Views
354
Activity
Aug ’26
Generating vertex data in compute shader
Hi there, I am working on a 3d game engine in Swift and Metal. Currently I dynamically generate vertex buffers for terrain chunks on the CPU and pass all models to the GPU via argument buffer and make indirect draw calls. Calculating where vertices should be is costly and I would like to offload the work to a compute shader. Setting up the shader was straightforward and I can see that it (at least as an empty function) is being executed in the CommandBuffer. However, I come to this problem: since I do not know ahead of time how many vertices a chunk of terrain will have, I cannot create a correctly-sized MTLBuffer to pass into the compute function to be populated for later use in a draw call. The only solution I could think of is something like the following: For each chunk model, allocate a VertexBuffer and IndexBuffer that will accommodate the maximum possible number of vertices for a chunk. Pass in the empty too-large buffers to the compute function Populate the too-large buffers and set the actua
Replies
6
Boosts
0
Views
2.1k
Activity
Jul ’23
request for a kernel I/O passthrough API for file-backed volumes (FUSE_PASSTHROUGH / ProjFS equivalent)
What I'm building An FSUnaryFileSystem that projects a large, read-mostly tree of existing on-disk files into a sandbox namespace — a build sandbox that lays out an action's declared inputs and points outputs at host scratch. This is squarely the replace a third-party kext (macFUSE-style) with FSKit use case, and it's a projection/overlay filesystem: nearly every file the volume serves is just a view of a regular file that already exists on a local APFS volume. The problem For file content, the only available path for a file-backed (non-block-device) volume is FSVolumeReadWriteOperations — every read that misses UBC is an XPC round-trip into my extension, where I memcpy from the backing file into the kernel buffer. The kernel already has, or could trivially open, the backing file; instead each page-in becomes: pagein → IPC → extension read → copy → return. FSVolumeKernelOffloadedIOOperations looks like the intended fast path, but it's built around FSBlockDeviceResource — i.e. it assumes the volume is backed b
Replies
6
Boosts
0
Views
286
Activity
Jun ’26
Reply to RunLoop behaviour change with performBlock?
Can you clarify the circumstances in which mach ports are leaked? Well, the unhelpful (and slightly flippant) answer is basically anytime they're not properly deallocated when they're no longer useful. More practically, the whole reason mach ports create issues IS that it's often quite difficult to connect any given mach port with the specific component responsible for managing that unit. In terms of run loop semantics specifically, I think you'd (potentially) generate a leak anytime you destroy an thread without removing/stopping all of it's input sources*. *Strictly speaking, that isn't necessarily a guaranteed leak. For example, some of our frameworks register thread destruction handlers so to handle clean up. However, at that point you're relying on the details of our own implementation, which is never ideal. Also, keep in mind that this isn't just about mach port leakage, but could involve any other resource who's management happened to be tied to that thread. The while loop in the original post is in a
Topic: App & System Services SubTopic: General Tags:
Replies
Boosts
Views
Activity
Nov ’24
Reply to iPhone and iPad accelerometer specifications
Hi all, I'm looking for the specifications for the accelerometers used in current iPhone and iPad devices, including the sensitivity and the update rates possible. We've never published any formal documentation about what the exact capabilities of the hardware were. However, I have a word of caution around this: Despite the documentation saying it's 100Hz, I've not yet found it to be better than 50Hz on any of iPhone SE, 8 or 11, nor iPad mini or Pros. Having worked with many developers using CoreMotion, I've seen the same pattern happen MANY times: A basic motion analysis engine is implemented, typically using the real time API and the with a target queue. The main thread or other busy thread are entangled with that algorithm, either because the code is running directly on that thread or because of implicit relationships which aren't as visible. Testing begins and the results are somewhat positive, however, there are issues with random data glitches or other oddities in the data. The assumption is made that
Topic: App & System Services SubTopic: Core OS Tags:
Replies
Boosts
Views
Activity
Sep ’24
Metal Matrix Multiplication reference code
Hi,I have just started experimenting with Metal. I really just want to offload a few matrix multiplications to the GPU.So, I downloaded this perfectly applicable example code and ran it: https://developer.apple.com/library/ios/samplecode/MetalPartialSumsCompute/Introduction/Intro.html#//apple_ref/doc/uid/TP40015013-Intro-DontLinkElementID_2I can run it on my iphone 6 but there are several issues:It crashes sometimes (EXC_BAD_ACCESS (code=1), and other malloc errors). That's a bit worrying for reference code.It says I am getting approximately 0.04 gflops/sec[sic] using either CPU (Accelerate) or GPU (Metal). I believe I should be getting 3+ GFLOPS from the CPU? (http://www.anandtech.com/show/8554/the-iphone-6-review/3) I'm not sure what to expect from the GPU/Metal but I am assuming a considerably higher number.Here's example output:2015-12-02 14:48:27.772 MetalMatrixMultiply[5477:2056717] >> [12] Matrix Dimensions: A = [1248 x 1137], B = [1137 x 2004], C = [1248 x 2004], lda = 1248, ldb = 2008,
Replies
1
Boosts
0
Views
2.2k
Activity
Dec ’15
Reply to OpenZFS on FSKit — Proof of Concept
The practical follow-on question: what entitlements exist today for block device ioctls (DKIOCGETBLOCKSIZE, DKIOCGETBLOCKCOUNT)? I'm not sure what you mean here. Having said that, the short answer is that I'm not aware of any entitlements relevant to this area of the system. The open question is whether the sandboxed extension can create and bind a socket at a path reachable by privileged tools outside the sandbox (e.g., /var/run/zfs/zfsd.sock). If that's permitted without a special entitlement, this blocker is resolved for us. First, just to clarify, privilege (that is, running as root) as such doesn't actually matter here. Your FSKit extension can basically talk to whoever it wants (particularly through a socket), so any protection you're doing needs to be something you implement, not the system. I haven't played around much with what's actually possible, however: Your FSKit extension has access to an app group container as well as its own and any tool you write can have access to the same location. If you
Topic: App & System Services SubTopic: Core OS Tags:
Replies
Boosts
Views
Activity
Jun ’26
EndpointSecurity: es_new_client freezes all operations until other clients decide pending messages?
I have 2 EndpointSecurity apps. App1 is doing the heavy lifting and processes multiple events(ES_EVENT_TYPE_AUTH_EXEC, ES_EVENT_TYPE_AUTH_OPEN, ES_EVENT_TYPE_AUTH_RENAME, ES_EVENT_TYPE_AUTH_UNLINK, ES_EVENT_TYPE_NOTIFY_CLOSE, ES_EVENT_TYPE_NOTIFY_CREATE ). App2 is responsible for checking whether Full Disk Access is granted or not: int main(int argc, char * argv[]) { ttes_client_t *client; auto res = es_new_client(&client, ^(es_client_t *clt, const es_message_t *msg) { }); tt_exit(res == ES_NEW_CLIENT_RESULT_ERR_NOT_PERMITTED ? 0 : 1); } (please note that none of the apps is a System Extension). Sometimes when App1 is runing and App2 executes, the system hangs. After few days of investigation, it seems that starting a new es client (even without registering any messages) causes the system to block all operations until all the currently pending auth requests from other clients are answered. This makes it very hard to reason about the application. It also requires to basically offload everything to
Replies
0
Boosts
0
Views
488
Activity
Jul ’20
Strange Microphone Issue on iOS 17.0.3
Hi all, I'm facing a strange issue on my iPhone 15 Pro Max with iOS 17.0.3 official release. A few days ago I was using WeChat and was making a voice call with my Airpods, and accidentally dropeed one of the Airdpod, after I picked it up, all of a sudden the person on the other end cannot hear me via the voice call anymore. Then I tried to send a voice message on WeChat and noticed it's also failing. Here's a list of things I've tried to investigate/narrow down this issue: I checked in Privacy settings and confirmed the toggle for Microphone is turned on for WeChat, also tried switching it to off then back on. I also checked WeChat's own permission settings and made sure all the toggles for Microphone are turned on, also tried switching them to off then back on. Tested other apps that uses the microphone (e.g. phone, facetime, voice memo, instagram, QQ (also from Tencent) etc.), and they are all working fine. Tried normal restart and hard restart of the phone, issue persists Log out from Wechat and log back i
Replies
4
Boosts
0
Views
3.1k
Activity
Oct ’23
Querying data from one-to-many relationship by aggregate in swiftdata
Hi all, I've been struggling a bit with SwiftData, I have a really simple data model but I need to do a fairly complex query over a one-to-many relationship that results in aggregate values. And I want to be able to sort and filter those aggregates. The model looks like this: @Model class Category { var name: String var items = [Item]() } @Model class Item { var added: Date var checked: Date? } In a typical use case I'd expect their to be at most around 50 categories and perhaps 20 items per category. In my UI I would like to be able to sort categories in a couple of ways: by name, by date added and by date checked with a fallback on date added. Also, in my list view I want to be able to list categories and show the checked date of the most recently checked item. I can think of a couple of solutions here, to start of with I can do all the sorting and filtering client-side. In the list view I could retrieve all the categories and then find the most recently checked item per category and go from there. Another
Replies
0
Boosts
0
Views
520
Activity
Jan ’24
TTS Alex voice is treated like available when it's actually not
Hello everybody! In my app I allow the user to change TTS voices and English Alex voice is one of possible options. However, there are some cases when it's treated as available when it's actually not. It results in pronouncing the TTS utterance with another voice. To prepare the list of available voices I use next code: NSMutableArray *voices = [NSMutableArray new]; for (AVSpeechSynthesisVoice *voice in [AVSpeechSynthesisVoice speechVoices]) { tt[voices addObject:@{ tttt@id: voice.identifier, tttt@name: voice.name, tttt@language: voice.language, tttt@quality: (voice.quality == AVSpeechSynthesisVoiceQualityEnhanced) ? @500 : @300 tt}]; } To start the playback I use the next code (here it's simplified a bit): AVSpeechUtterance *utterance = [[AVSpeechUtterance alloc] initWithString:text]; utterance.voice = [AVSpeechSynthesisVoice voiceWithIdentifier:voice]; [AVSpeechSynthesizer speakUtterance:utterance]; Cases when AVSpeechSynthesisVoice returns Alex as available when it's not: The easiest way to reproduce it is
Replies
3
Boosts
0
Views
2.7k
Activity
Oct ’20
watchOS 11.2 Debug Tunnel Timeout: iPhone Connected, Watch stuck in "Waiting to Reconnect" (Xcode 16.4)
Hello, I am experiencing a critical blocking issue developing a watchOS app. While the iPhone 15 Pro Max is fully Connected via USB (confirmed green light in Network Settings), the Apple Watch Series 7 (watchOS 11.2) remains unreachable by Xcode. Mac: Mac Mini (macOS 15/16). Devices: iPhone 15 Pro Max (iOS 18+), Apple Watch Series 7 (watchOS 11.2). Xcode: 16.4 / Build 26.4. Hardware: Direct USB-C connection (USB 2.0 480Mb/s protocol). Technical Evidence of Protocol Failure: Missing Staging Folders: ~/Library/Developer/Xcode/watchOS DeviceSupport does not exist, implying the handshake fails before symbol stripping/sync begins. CoreDevice Error: Consistently receiving: Previous preparation error: A connection to this device could not be established.; Timed out while attempting to establish tunnel using negotiated network parameters. Missing Keychain Entries: No com.apple.coredevice keys found in Keychain Access, suggesting the Trusted Host handshake is incomplete. mDNS/Discovery: xcrun devicectl list devices sh
Replies
1
Boosts
0
Views
121
Activity
Apr ’26
VPN (Packet Tunnel Provider) over SMB
Some users at a certain company reported they are having problems when using my VPN app for Mac (Packet Tunnel Povider), with SMB:Initiating an SMB upload will fail and then their VPN client will disconnect, in some cases the computer needs to be reboot.I've collected logs for my client (nothing suspicious there), and I also got the logs from thier Console.Those are some relevant lines from the Console, but again I don't see anything suspicious:default 17:27:16.194234 -0400 secd Microsoft Outloo[303]/1#16 LF=0 copy_matching Error Domain=NSOSStatusErrorDomain Code=-34018 Client has neither com.apple.application-identifier, com.apple.security.application-groups nor keychain-access-groups entitlements UserInfo={NSDescription=Client has neither com.apple.application-identifier, com.apple.security.application-groups nor keychain-access-groups entitlements} default 17:27:16.252627 -0400 com.apple.WebKit.WebContent Current memory footprint: 14 MB default 17:27:18.079823 -0400 symptomsd rssi (-53) or transmitRate (58
Replies
10
Boosts
0
Views
1.6k
Activity
Mar ’20
Discover and connect to BLE peripherals more rapidly in background
We are developing an app which connects to a BLE peripheral in the background whenever it gets close to it. What we have used so far is that we monitor a circular region. When the phone enters the region the app will start scanning for peripherals and when it discovers the peripheral it connects to it. This worked pretty well for the last few iOS versions, perhaps iOS 14-16. It wasn't perfect but for the most part it would feel like it connected rather quickly when you would approach the BLE peripheral. If you listen to music via BLE or talk to someone using your BLE headset then it could sometimes work noticeably worse. But, as said, for the most part it would work satisfactory. Starting with iOS 17 and analyzing the functionality over the past 6 months or so we've noticed a clear worsening of it. It does generally connect to the peripheral but the user might often have to wait for quite some time. Rather frequently the user must even light up the screen of the phone before anything even happens. It appears
Replies
2
Boosts
0
Views
1.3k
Activity
May ’24
Lessons learned shipping an open-source NetworkingDriverKit NIC driver (Realtek RTL8127, 10GbE)
I've just shipped a signed NetworkingDriverKit driver for the Realtek RTL8127 10GbE PCIe NICs on Apple Silicon, source at https://github.com/stefb69/RTL812xLucy (directory RTL8127Dext). It runs at line rate (9.4 Gbit/s each way at MTU 1500, 9.9 with jumbo frames) with TSO, checksum offload and four TX queues by service class. Since there are very few public NetworkingDriverKit drivers to learn from, here is what cost me the most time, in case it saves someone else a week. Three of these are filed as feedback. TX packets from native Skywalk flows have a 2-byte data offset (FBxxxxxxxx). getDataVirtualAddress() / getDataIOVirtualAddress() return the buffer base; the frame starts at getDataOff(). BSD-path packets (ping, curl, ssh, DHCP) have offset 0, Network.framework flows (Safari, URLSession, App Store, codesign --timestamp) have offset 2. If you DMA from the base, everything works except every modern client, which sits in SYN_SENT. The headers don't mention it. getMaxTransferUnit() is the maximum MTU
Replies
1
Boosts
0
Views
567
Activity
Sep ’26