My phone broke a little bit ago, with the screen either flashing green or it being green continuously. I asked somebody who would know and he said that the connection from the motherboard to the screen is messed up. It’s refurbished so that makes sense. Since then, the issue has gone away. it stopped a few days ago but I have insurance on it through a third party and I’m wondering if I should still make a claim.
Hardware
RSS for tagDelve into the physical components of Apple devices, including processors, memory, storage, and their interaction with the software.
Post
Replies
Boosts
Views
Activity
Hi everyone,
I am seeking clarification regarding the communication capabilities between an ESP32 microcontroller and Apple's latest devices, specifically the iPhone 16 Pro Max and iPad Pro, both equipped with USB-C ports.
Background:
MFi Certification: Historically, establishing communication between external devices and iOS devices required MFi (Made for iPhone/iPad) certification. But I remember this being necessary in the Lightning Cable to USB era.
With the introduction of USB-C ports in recent iPhone and iPad models, there is an indication that MFi certification may no longer be necessary for certain peripherals. Perhaps I'm not confident on the terminology here: https://mfi.apple.com/en/who-should-join
Project Requirements: I am working on a sensor research project that necessitates the collection of low-latency time-series data from an ESP32 microcontroller, which features a USB-C port. The data needs to be transmitted to an iPhone 16 Pro Max or iPad Pro. Bluetooth communication has proven insufficient due to its limited data transfer rates (~1.2 Mbps with L2CAP). While NEHotspot could be an alternative, it restricts the iPad's internet connectivity. Therefore, establishing a direct USB-C connection between the ESP32 and the iOS device appears to be the most viable solution.
Questions:
MFi Certification Necessity: Is MFi certification still required for an ESP32 microcontroller to communicate with iPhone 16 Pro Max or iPad Pro via USB-C?
USB-C Communication Support: Do the iPhone 16 Pro Max and iPad Pro natively support serial communication over USB-C with microcontrollers like the ESP32? If not, are there recommended protocols or interfaces to facilitate this communication?
App Development Considerations: Would developing a custom iOS application be necessary to handle data transmission from the ESP32 over USB-C? If so, are there specific APIs or frameworks provided by Apple to support this functionality?
Data Transfer Rates: Considering the need for high-speed data transfer, are there any limitations or considerations regarding the data transfer rates achievable through a USB-C connection between the ESP32 and iOS devices?
Thank you!
I have a device. After pairing, it is shown as connected in the Bluetooth list of the mobile phone. Before iOS 18, I could retrieve the device through the retrieveConnectedPeripherals method, but after iOS 18, I cannot retrieve it. What is the reason? Because when the device is connected, it no longer sends broadcast packets. How can I retrieve the device?
Invalid entitlement for core nfc framework. The sdk version '18.2' and min OS version '14.0' are not compatible for the entitlement 'com.apple.developer.nfc.readersession.formats' because 'NDEF is disallowed'.
Anyone knows what is the correct configuration SDK version and minimum iOS deployment target for NFC that has NDEF format?
Is it mandatory to use classic Bluetooth (Bluetooth Classic) to connect game controllers that support Apple’s MFi games and Arcade games, or can game controllers be developed using only Bluetooth Low Energy (BLE) for such accessories?
We would like to be able to distinguish between iPhones and Apple Watches when scanning for devices using a Laird BLE module.
We know that we can identify an Apple device from the manufacturer data returned in the scan report. 0x004C is the registered identifier for Apple.
In the remaining data returned is it possible identify the device type?
We note that empirically, 4C001005 seems to correlate to an Apple Watch. How reliable is this?
It is useful for us, because it means we do not need to connect to this device to see if it is advertising a service that we own.
Connecting over BLE is of course an expensive operation.
Here is a simple snippet of a Swift App doing a similar thing, to illustrate the question:
func centralManager(_ central: CBCentralManager, didDiscover peripheral: CBPeripheral, advertisementData: [String : Any], rssi RSSI: NSNumber)
{
guard
let manufData: Data = advertisementData[CBAdvertisementDataManufacturerDataKey] as? Data
else
{
return
}
let hexEncodedManufData: String = manufData.map { String(format: "%02hhx", $0) }.joined()
print("Manufacturer Data: \(hexEncodedManufData): ")
// Manufacturer Data: 4c001007351ff9f9036238: Apple device
// Manufacturer Data: 4c001006331ec0640f88: Apple device
// Manufacturer Data: 4c0010052b18804eb1: Apple watch?
// Manufacturer Data: 4c0010052b18804eb1: Apple watch?
}
I have a 2019 iMac 5K with an Apple 2TB internal, which I've been using since June 2019. DriveDx says the drive is working correctly and has 94% of lifetime remaining. When I switched from Sonoma to Sequoia, I backed everything up several ways, reformatted the internal, installed 15.0 from a USB drive, copied all of my data back and then installed each app one by one.
For years I generally ran Disk Utility every couple of weeks and never had any problems.
Because I've had lots of software problems running Sequoia, I've tried just about every version of the OS--release, public beta and developer beta. Right now I'm running 15.3 beta 2.
When I installed this version, I reformatted the internal drive, installed 15.3 beta 2 and restored my programs and data from Time Machine. After that I ran Disk Utility. At the top level, Apple SSD SM2048L..., showed no errors and neither did any of the drives below the top. But after a few days if I run Disk Utility, Container disk3 shows errors, as does the bottom Macintosh HD. See bellow. And this happens after every fresh install. Good and clean for a couple of days, then the errors in Disk Utility start showing up.
These errors have apparently caused no problems, but I'd like to get them fixed. How do I do it as Disk Utility is not fixing them? And because I'm having these errors in DU is my internal going bad?
I know Disk Utility shows it's performing repairs and the disk is OK afterward, but it's apparently not as I get the same result every time I run Disk Utility.
Thank you for your help.
/Users/imac4/Desktop/Disk Utility/Screenshot 2025-01-16 at 8.42.58 AM.jpg
Hi everyone,
I try to understand Matter Support and how to get the onboardingPayload from the commissionDevice func.
I followed the docs from https://developer.apple.com/documentation/mattersupport/adding-matter-support-to-your-ecosystem
I also added the Matter Extension, added the NSBonjourServices, included the Matter Extension and did .perform(). The UI shows up correctly and I can scan the QR-Code, which shows pair it to your ecosystem.
I launched the extension via Xcode in my application, but the RequestHandler isn't triggering.
Did I miss something? Can someone point me into the right direction please?
Current if we use the removeAccessory(_:completionHandler:) method in ASAccessorySession, it removes the accessory from the system and all apps that have previously paired also lose access.
Is there a way to remove the paired accessory only from the app from where the removeAccessory() call is being made? This would be useful in cases where one or more accessories are shared across apps and we need to manage them.
Hi, could you please help on the following points :
Does iOS supports HCE Felica emulation support in Japan?
Does iOS supports Felica card emulation using NFC & SE platform ?
Thanks
Hello!
In our App we found out the сrash at QuickLook after users updated their iPhones up to iOS 18.
Crash report:
SIGABRT 0x0000000000000000
Crashed: Thread
0 libsystem_kernel.dylib __abort_with_payload + 8
1 libsystem_kernel.dylib abort_with_payload_wrapper_internal + 104
2 libsystem_kernel.dylib abort_with_payload_wrapper_internal + 0
3 libobjc.A.dylib _objc_fatalv(unsigned long long, unsigned long long, char const*, char*) + 116
4 libobjc.A.dylib _objc_fatalv(unsigned long long, unsigned long long, char const*, char*) + 0
5 libobjc.A.dylib weak_register_no_lock + 396
6 libobjc.A.dylib objc_initWeak + 440
7 UIKitCore -[UIViewController viewDidMoveToWindow:shouldAppearOrDisappear:] + 1412
8 UIKitCore -[_UIRemoteViewController viewDidMoveToWindow:shouldAppearOrDisappear:] + 396
9 UIKitCore -[UIView(Internal) _didMoveFromWindow:toWindow:] + 1180
10 UIKitCore -[_UISizeTrackingView _didMoveFromWindow:toWindow:] + 112
11 UIKitCore -[UIView(Internal) _didMoveFromWindow:toWindow:] + 712
12 UIKitCore __45-[UIView(Hierarchy) _postMovedFromSuperview:]_block_invoke + 128
13 CoreAutoLayout -[NSISEngine withBehaviors:performModifications:] + 84
14 UIKitCore -[UIView _postMovedFromSuperview:] + 512
15 UIKitCore __UIViewWasRemovedFromSuperview + 136
16 UIKitCore -[UIView(Hierarchy) removeFromSuperview] + 248
17 QuickLook -[QLToolbarController setAccessoryView:animated:] + 576
18 QuickLook __55-[QLPreviewController _presentLoadedPreviewCollection:]_block_invoke + 120
19 QuickLookUICore QLRunInMainThread + 60
20 QuickLook -[QLPreviewController _presentLoadedPreviewCollection:] + 116
21 QuickLook __48-[QLPreviewController _presentPreviewCollection]_block_invoke_2 + 68
22 QuickLook (Missing)
23 libswift_Concurrency.dylib swift::runJobInEstablishedExecutorContext(swift::Job*) + 252
After research, we found out that a crash occurs in QuickLook when a user tries to open a file with unknown mimeType - application/octet-stream.
QuickLook convert that files to known type (for an example - application/pdf), but crashes for the first opening the file.
Any help would be greatly appreciated!
Hello!
We currently require the development of an iOS system for encrypting and authorizing photos, videos, voice memos, or other files stored on our devices to a connected USB-C storage. The encrypted files can be accessed through authorization. We have already encrypted and authorized the files to be stored on the app's mobile storage, and cannot directly store them to USB-C (this requirement is based on the Apple camera RroRes, which uses external storage for direct storage). We are seeking technical support from Apple.
why is it that this code doesn't show the bluetooth device name but in the iOS settings it is displayed correctly. Thank you.
import UIKit
import CoreBluetooth
import CoreLocation
class BluetoothViewController: UIViewController, CBCentralManagerDelegate, CLLocationManagerDelegate {
var centralManager: CBCentralManager!
var locationManager: CLLocationManager!
override func viewDidLoad() {
super.viewDidLoad()
// Initialize central manager
centralManager = CBCentralManager(delegate: self, queue: nil)
// Initialize location manager to request location access
locationManager = CLLocationManager()
locationManager.delegate = self
}
// CBCentralManagerDelegate Methods
func centralManagerDidUpdateState(_ central: CBCentralManager) {
switch central.state {
case .poweredOn:
// Bluetooth is powered on, request location permission if needed
if CLLocationManager.locationServicesEnabled() {
locationManager.requestWhenInUseAuthorization()
}
startScanning()
case .poweredOff:
print("Bluetooth is powered off.")
case .resetting:
print("Bluetooth is resetting.")
case .unauthorized:
print("Bluetooth is unauthorized.")
case .unknown:
print("Bluetooth state is unknown.")
case .unsupported:
print("Bluetooth is unsupported on this device.")
@unknown default:
fatalError("Unknown Bluetooth state.")
}
}
func startScanning() {
// Start scanning for devices (you can add service UUIDs to filter specific devices)
centralManager.scanForPeripherals(withServices: nil, options: [CBScanOptionAllowDuplicatesKey: true])
print("Scanning for Bluetooth devices...")
}
func centralManager(_ central: CBCentralManager, didDiscover peripheral: CBPeripheral, advertisementData: [String : Any], rssi: NSNumber) {
// This method is called when a peripheral is discovered
let deviceName = peripheral.name ?? "Unknown"
let deviceAddress = peripheral.identifier.uuidString
print("Found device: \(deviceName), \(deviceAddress)")
// Optionally, you can stop scanning after discovering a device
// centralManager.stopScan()
}
func centralManager(_ central: CBCentralManager, didConnect peripheral: CBPeripheral) {
print("Connected to peripheral: \(peripheral.name ?? "Unknown")")
}
// CLLocationManagerDelegate Methods (for location services)
func locationManager(_ manager: CLLocationManager, didChangeAuthorization status: CLAuthorizationStatus) {
if status == .authorizedWhenInUse {
// Permission granted, now start scanning
startScanning()
} else {
print("Location permission is required for Bluetooth scanning.")
}
}
// Optionally handle when scanning stops or any errors occur
func centralManager(_ central: CBCentralManager, didFailToConnect peripheral: CBPeripheral, error: Error?) {
print("Failed to connect to peripheral: \(error?.localizedDescription ?? "Unknown error")")
}
func centralManager(_ central: CBCentralManager, didDisconnectPeripheral peripheral: CBPeripheral, error: Error?) {
print("Disconnected from peripheral: \(peripheral.name ?? "Unknown")")
}
}
Apple intelligence isn’t working, it says i have it but that’s it’s also downloading. Whenever i do have it on none of the features work, what do i do
Currently, we use UIDocumentPickerViewController to read the user's connected sdcard. However, this requires the user to select manually, and the event cannot be monitored.
But recently I found that ImageCaptureCore's ICDeviceBrowserDelegate can monitor the plug-in and unplug events in the didAddDevice callback, but cannot obtain the path of the storage card.
I wonder if there is a way to combine the advantages of both, so that with the user's consent, the card reader events can be monitored and the content can be read directly without the user manually selecting the folder
Receiving "The disk you attached was not readable by this computer." for an external USB recorder that worked with MacOS 14
Aiworth voice recorder.
Six months ago I wrote FB14122473, detailing how the built-in CDC (or FTDI) VCP serial port driver is limited to 3 Mbps or less. Thing is, there are some FTDI devices that can do 12 Mbps (maybe more), and I have devices I need to communicate with at 4 Mbps. I had to use the FTDI SDK to be able to communicate with these.
I was hoping this post might help draw attention to that bug report.
I have a 4-input, 4-output hardware device and an 8-input, 8-output virtual device, which I combine into an aggregate device. I am using the SimplyCoreAudio library to get the channel count. The code is as follows:
aggregationDevice!.channels(scope: .input) =>> 12 aggregationDevice!.channels(scope: .output) =>> 12
When the program's MicrophoneMode is set to standard, the channel count is correct. However, when I set the MicrophoneMode to voiceIsolation, the channel count is incorrect:
aggregationDevice!.channels(scope: .input) =>> 4 aggregationDevice!.channels(scope: .output) =>> 12
Below is the code for creating the aggregate device:
func createAggregateDevice(mainDevice: AudioDevice,
secondDevice: AudioDevice?,
named name: String,
uid: String) -> AudioDevice?
{
guard let mainDeviceUID = mainDevice.uid else { return nil }
var deviceList: [[String: Any]] = [
[
kAudioSubDeviceUIDKey: mainDeviceUID,
kAudioSubDeviceDriftCompensationKey:1
]
]
// make sure same device isn't added twice
if let secondDeviceUID = secondDevice?.uid, secondDeviceUID != mainDeviceUID {
deviceList.append([
kAudioSubDeviceUIDKey: secondDeviceUID,
kAudioSubDeviceDriftCompensationKey:1,
kAudioSubDeviceInputChannelsKey:8
])
}
let desc: [String: Any] = [
kAudioAggregateDeviceNameKey: name,
kAudioAggregateDeviceUIDKey: uid,
kAudioAggregateDeviceSubDeviceListKey: deviceList,
kAudioAggregateDeviceMainSubDeviceKey: mainDeviceUID,
kAudioAggregateDeviceIsPrivateKey:false,
]
var deviceID: AudioDeviceID = 0
let error = AudioHardwareCreateAggregateDevice(desc as CFDictionary, &deviceID)
guard error == noErr else {
return nil
}
return AudioDevice.lookup(by: deviceID)
}
I hope someone can tell me the reason Thank you!
At present, I am using the avfoundation external device API to connect my iPad to a DSLR camera for data collection. On my end, I am using AVCapture Video Data Output to obtain raw data for processing and rendering. However, the pixelbuf returned from the system layer is incomplete, with only a portion cropped in the middle. But using the Mac API is normal. I would like to ask how to obtain the complete pixelbuf of the image on iPad
I upgraded my iPhone 13 Pro Max last week, but I am unable to connect my Sony WH-1000XM5 headphones via Bluetooth. I'm not sure why everything else connects just fine except my headphones. Please send help.