External Accessory

RSS for tag

Communicate with accessories connected to a device by the Apple Lightning connector or through Bluetooth using External Accessory.

External Accessory Documentation

Posts under External Accessory tag

87 Posts
Sort by:
Post not yet marked as solved
1 Replies
314 Views
I am using a 2021 MacBook Pro 16" with an Apple M1 Max chip and 64 GB of RAM, running macOS Ventura 13.6. I have been using an external drive, the Seagate BarraCuda Compute 2TB Hard Drive. Last week, I used it about five times to save some photos and work on Excel files. However, when I tried to open it the following day, it prompted me for a password, but it failed to mount. The partition type is Apple_HFS, and it is encrypted because I used it with Time Machine a few years ago. I can hear the noise it typically makes when I was working on it, but it doesn't mount. So, I attempted to view it in Disk Utility, but to no avail. I can see the drive, but the partition I use appears gray, and the Mac attempts to mount it. When I try to click on it in Disk Utility, the application crashes, and I have to force quit it. I also tried purchasing a new external hard drive reader to use with my hard drive, but I encountered the same issue. I also tried to work with the Terminal, but it responds very slowly. For example, the 'diskutil list' command took approximately 5 minutes to generate a response, and when I attempted to eject it, it didn't work and remained stuck loading. I have the last six years of my life stored on this drive, so it would be incredible to recover the data. Do you have any suggestions?
Posted
by
Post not yet marked as solved
2 Replies
1.2k Views
On iOS 17.0.2 my bluetooth devices (CarPlay and earbuds) were performing at normal levels with all sound settings at default. In the gym, I like to max out my bluetooth earbuds. However, after updating to iOS 17.1 Beta 2 (21B5056e), my bluetooth earbuds set at max volume sounded medium. My first troubleshooting method was to check the sound settings... all setting (including accessibility) were left at the default inputs. To further troubleshoot, I tried other downloaded albums on my music library/playlists...all noticeably lower at max volume. I was thinking this might be related to my earbuds. However, when driving, I decided to play the same album in my 2021 GMC Sierra via CarPlay... I had to turn up the dash knob audio substantially higher to replicate what was considered loud (or rather "comfortably loud") in my truck. Apple tech supports only recommendation was to do a system restore and roll back to 17.0.2. Has anyone else tested music quality/sound over bluetooth before and after they updated from 17.0.2. to 17.1 Beta 1/2 ?
Posted
by
Post not yet marked as solved
0 Replies
536 Views
Hi there, We're developing a product which has a BLE module that advertises itself as a BLE MIDI device. The goal for our iOS app is to have the phone auto-connect to the device, which it already bonded with. Exactly like headphones; Bond one time, and everytime the headphones turn on, the phone automaticly pairs/connects to the headphones. At the moment, a new connection is required every time the the device turns on and advertises. I've read on the apple BLE documentation page, that from iOS 16 or later "the system automatically reconnects Bluetooth Low Energy (BLE) MIDI peripherals when powered on, if the device supports pairing. Previously, it was necessary to use Audio MIDI Setup to establish BLE MIDI connections." ( https://developer.apple.com/documentation/coremidi/midi_bluetooth/ ) However, neither our iPhones that run iOS 16+ or macOS 13+ devices re-connect to the BLE MIDI device. How can I achieve this? As per official BLE documentation, pairing is initiated by the central device (smartphone etc.) and the peripheral (BLE MIDI device) should simply store the MAC address + security information of the central device that it is currently bonded with.
Posted
by
Post not yet marked as solved
1 Replies
280 Views
IVANKI USC-C DisplayPort has stopped working for me after updating to Ventura Version 13.6 (22G120).
Posted
by
Post not yet marked as solved
4 Replies
993 Views
Body: Hello, I am facing a challenging issue with my SwiftUI iOS application, which is designed to work on an iPad and connect to an external display. The app, called "EasyJoin," is intended to provide a single-touch interface for joining conference meetings. It pulls events from a calendar and provides a "Join" button to connect to the meeting. The Goal: Mirror the app on an external display in its native aspect ratio. Also mirror any other client applications launched from EasyJoin (such as Google Meet, Teams, WebEx, Zoom) to the external display in its native aspect ratio. The Issue: While I have been successful in displaying the app on the external display, the iPad screen goes black as soon as the external display is connected. I need both the iPad and the external display to show the app simultaneously, each in their native aspect ratios. What I've Tried: Created separate UIWindow objects for the internal and external displays. Used NotificationCenter to listen for UIScreen.didConnectNotification and UIScreen.didDisconnectNotification. Tried managing windows through both AppDelegate and SceneDelegate. Explicitly set windowLevel for both internal and external windows. Despite these efforts, the issue persists. The external display works as expected, but the iPad screen remains black. Here is a snippet of my SceneDelegate.swift: // ... (Code for setting up UIWindow and listening for screen connect/disconnect) @objc func screenDidConnect(notification: Notification) { // ... (Code for setting up external UIWindow) externalWindow?.isHidden = false } @objc func screenDidDisconnect(notification: Notification) { externalWindow?.isHidden = true externalWindow = nil } I would appreciate any guidance or suggestions to resolve this issue. Thank you! Feel free to copy and paste this into a new post on the Apple Developer Forums. Hopefully, you'll get some specialized assistance that can help resolve the issue.
Posted
by
Post not yet marked as solved
3 Replies
708 Views
I'd like to check whether there has been (or there will be) any iOS SDK framework or program that support developing a custom driver for our own hardware device via USB type C port, especially after the release of the new iPhone 15 with type C port supported. In addition, I'd like to understand how the app review process will work if we're releasing a Crypto Wallet application that utilizes the cold wallet hardware device, will it be necessary for us to send a set of hardware over to the Apple review team, or the app review can be arranged without the actual device?
Posted
by
Post not yet marked as solved
0 Replies
493 Views
Hello all, I am interested in trying to develop a short-medium range (>100 meters) tracking device for a hobby project in order to gain some literacy in mobile phone software, and have a few questions. I am new to working with anything iOS so please correct me in any mistakes I make in this query. Is RFID or Bluetooth better for tracking and implementation on iOS? How difficult is device implementation into iOS and apps such as find my iPhone? How would one go about it? If I wanted a tracking device to send notifications based on location/distance from another device, could I do that with Apples framework or would I have to create my own app? What programming language would be used in this sort of endeavor? Would C++ work or does iOS use different ones? Thanks in advance, any and all advice is greatly appreciated.
Posted
by
Post not yet marked as solved
1 Replies
625 Views
I saw a similar post to this where the issue was fixed in the final iOS17 release, but I am still having a problem since my situation is slightly different. I am wondering if its a bug based on current behavior, but was hoping maybe someone knows if the issue is with my setup? I am trying to monitor an external USB camera's audio input using the new iOS17 external call for iPad, over bluetooth. func setupAudioSession() { let audioSession = AVAudioSession.sharedInstance() do { try audioSession.setCategory(.playAndRecord, mode: .default, options: [.allowBluetoothA2DP, .defaultToSpeaker] ) try audioSession.setActive(true) } catch { print("Failed to set up audio session: \(error)") } } When my execution order is: setupAudioSession() // code above // discover and connect the session AV inputs to the external USB // start an audio engine // connect audio engine output to a buffer queue and play // start the session My app does not allow routing to the headphones and directly switches to speaker. However if I change the order to this: setupAudioSession() // code above // discover and connect the session AV inputs to the external USB // start an audio engine // start the session --- !starting before connecting output! // connect audio engine output to a buffer queue and play The session stays connected to Bluetooth and plays over the headphones. However if I suspend the app and relaunch, I get switched back to speaker. I understand maybe the system is trying to prevent an audio feedback loop? But don't understand why launching the session early would get the desired behavior. Any help would be greatly appreciated.
Posted
by
Post not yet marked as solved
0 Replies
314 Views
I know that multiple monitors are not working because macOS does not support MST/Daisy Chaining over DisplayPort. Though I have a Linux Laptop which supports it and I want to use it from time to time. Now the issue is, whenever I connect a second monitor into the Dell, the monitor starts to flicker. So whenever the DP OUT port is connected with my Dell, it becomes unusable with the Mac M2. This seems somewhat related to this issue on latest Ventura. Did anyone try to connect the DP OUT port with their Dell & Mac? What is the behavior? My understanding is that the 2. monitor should be mirrored. But what is happening right now is that the 1. monitor is basically becoming unusable as soon as a 2. one is connected.
Posted
by
Post not yet marked as solved
0 Replies
449 Views
I am working on a Application which requires to identify list of bluetooth paired devices connected to Ipad. I have used scanforperipherals(withServices:nil) in CoreBluetooth framework but I see state is always disconnected even though device is connected to iPad. output : <CBPeripheral: 0x281d000, identifier = 31EADDCE-5DBC-E57F-84DB-1488C20460F9, name = AirPods Pro, mtu = 0, state = disconnected> Later used Retrieveconnectedperipherals method (https://developer.apple.com/documentation/corebluetooth/cbcentralmanager/1518924-retrieveconnectedperipherals ) and tried to fetch the Bluetooth connected devices list. But this method mandates to provide ServiceUUID list of the devices that needs to be fetched which doesn't help me as I need to fetch all devices list. I understand EAAccessoryManager framework gets the list of MFI devices but it mandates to provide protocol names of devices. let connectedDevices = EAAccessoryManager.shared().connectedAccessories as? [EAAccessory] Would like to know if there is any way to fetch the list/count of Bluetooth devices connected to iPad without providing UUIDs/Protocol names. Thanks in advance! Let me know if any other information is required.
Posted
by
Post not yet marked as solved
0 Replies
283 Views
I have an issue where Directory service media read-only is disabled on macOS 11 and later. Media Management settings are below. file=mcxsetup.plist Operating procedure. (1) The login account is admin. (2) Place mcxsetup.plist in /Users/admin folder. (3) Execute the following in the terminal command. $ sudo dscl . -mcximport /Users/admin /Users/admin/mcxsetup.plist (4) Run the following command in the terminal and confirm that the value is set. $ dscl . -mcxexport /Users/admin (4) restart mac (5) login admin (6) Mount USB storage (7) Make sure the USB storage is set to Read Only. (8) admin logout (9) Login with account name=admin (10) USB storage becomes writable Question: (1) Have there been any specification changes since macOS 11? (2) Is it not possible to use it in local environment? (3) does anyone know a workaround? Configuration-Profile-Reference URL https://developer.apple.com/business/documentation/Configuration-Profile-Reference.pdf
Posted
by
Post not yet marked as solved
1 Replies
482 Views
Hello All, I hope my first post here finds everybody doing well. I wish to develop a simple app. I have some coding experience using other technologies. This would be my first iOS and MacOS app. I am asking for advice regarding the choice of tools and or technology. Here is what I think potential advice givers need to know: Motivation is to keep evil coworkers from messing with my Mac when I step away from, (often), my desk In order to thwart their machinations, I have set my Mac to lock after a very short period of inactivity - this is often a pain as I am sitting at my desk when the Mac locks I wear a fairly new iWatch and am using an M2 Macbook Air I want an app that keeps my Mac from locking when I am nearby I want an agent that runs on my Mac that listens for pings from my iWatch I want an app for my iWatch that pings my Mac It would be nice to be able to set the radius of the "nearby zone" and ping rate A ping would interact with my agent so as to keep my Mac from locking If no ping, Mac locks per whatever time-out setting I have on my Mac I know, I know. I could just use some key combos. No need to point out the obvious way of dealing with the bozos, (we have fun), that I work with. Stymying them in this manner would enhance my happiness. I just want a bit of advice on the appropriate way of going about this. Hopefully, anything I learn might someday be applied to the development of other simple apps. Thanks for any thoughts offered! John Ullom
Posted
by
Post not yet marked as solved
0 Replies
467 Views
Hi everyone, I'm currently working on a Bluetooth device that doesn't support pairing. While going through the MFi certification documents, I noticed that pairing seems to be a required feature. Has anyone had experience getting MFi certification for a device that doesn't support pairing? Is it even possible? Any insights or guidance would be greatly appreciated! Thanks in advance for your help!
Posted
by
Post not yet marked as solved
0 Replies
486 Views
Hi, currently I have a project to develop a customized iOS/iPadOS app that is expected to can connect and communicate an External Cameras to iPhone/iPad device through USB Connection. The app should be able to access the taken photo from the External Cameras and/or take a shot executed by the app. The external camera manufacturers are like Canon, Nikon, and Sony. As references, there are some apps that have that capability above released in Appstore: https://apps.apple.com/us/app/camera-connect-control/id1457548017 https://apps.apple.com/id/app/image-capture-go/id1606632530?platform=iphone As far as I know, I can connect to the Camera by using External Accessory framework provided by Apple as long the external device is MFi program supported and I have the detail of command protocol of the the device used. In my case, Canon Camera is listed as MFi device in https://mfi.apple.com/account/accessory-search. But I don't have the detailed command protocol of the device to communicate with. Questions: Is my understanding related External Accessory framework correct? How to connect and communicate external camera to iPhone/iPad via USB by using External Accessory framework? Is there any other work around to do the things like the reference apps in Appstore above? Thank you very much.
Posted
by
Post not yet marked as solved
0 Replies
530 Views
Ranging is working great when I'm removing the BluetoothPeerIdentifier parameter but if I want to do some background ranging, I need to be able to use the removed parameter. Somehow when I'm both AccessoryData and BluetoothPeerIdentifier parameters, I got the NIErrorCodeInvalidConfiguration error code and i can't range anymore. Do you guys have a fix for that? The parameter BluetoothPeerIdentifier is not NULL so it should work properly... Thank you, Marc
Posted
by
Post not yet marked as solved
0 Replies
424 Views
I am using an BLE HID mouse, and I have an option to recenter the mouse according to screen resolution that I get from an iPhone. I have 2 issues regarding this post: Getting the screen resolution of an iPhone 11 sends back the resolution of an iPhone 11 Pro and vise versa. To re-center the pointer, I send an HID movement to the iPhone, first to the corner (doesn't matter which one), second to center which is just the resolution divided by 2 on both width and height. Not consistent, but the pointer doesn't always go to the center. My questions are: Why is the resolution sends differently on these devices? Is there a correct way to center the pointer using HID movement commands?
Posted
by
Post not yet marked as solved
1 Replies
384 Views
While using an HID device that recognized as mouse and keyboard using assistive touch, I noticed that sometimes after some usage, the feature in "AssistiveTouch" menu called, "Perform Touch Gestures", is no longer working although it remains on, as well as the assistive touch that remains on. In order to make it work again, you need to turn off and on the assistive touch feature. What could cause this issue? Does it relate to the HID Descriptor of report map? Or am I sending some commands that can cause this crash? Is there any way to avoid/be aware/get some callback on when this feature crashes using swift?
Posted
by
Post not yet marked as solved
2 Replies
703 Views
I'm developing an app that connects and uses a USB device. Is there a way to build and debug in Xcode with a USB device connected to an iPad or iPhone? I tried connecting a USB hub to ipad, but Xcode didn't recognize it. Using Devices PC:mac mini M1 Soft:Xcode ipad:ipad air(5th) USB Device:MOTU M4(Audio Interface)
Posted
by
K-K
Post not yet marked as solved
0 Replies
332 Views
we have a device which provides both Bluetooth(iAP2) and Wi-Fi hotspot. When we connect an iPhone to this device through Bluetooth, is it possible to connect to its Wi-Fi hotspot automatically without user's interaction and permission automatically? The reason is the steps that switch to BT settings page and set up to connect the BT, then switch to wifi page to connect wifi is too complicated. Cloud someone help me or give some hint? Thanks.
Posted
by