Hello,
We are currently using Hub which uses CYPD3125 PD chip, It is used to connect with both Android and iOS devices. While our device works seamlessly with Android devices, we are encountering an issue when connecting to iOS devices, specifically the iPad Pro.
Issue Description:
The Powerpack/Hub is intended to handle Power Delivery (PD) communications.
When connected to an Android device, the PD packets are exchanged correctly, and the device functions as expected.
However, when connected to an iPad Pro, we observe abnormal PD packet exchanges which lead to malfunctioning of the Powerpack/Hub.
Observations:
Attached is a snapshot of the PD packets we captured while troubleshooting the issue in a scenario where the AC power adapter was initially connected. After a few seconds, we removed the plug, waited for a few seconds, and then plugged in the AC power again. This was the scenario when we captured the PD packets, as seen in the snapshot. The packets appear to be different when compared to those captured with an Android device.
Below is the screenshot of the PD packet capture with Apple device:
Below is the screenshot of the PD packet capture with Android device:
Technical Observations:
Initial Connection: The connection initiates but does not follow the expected PD communication sequence.
Packet Structure: In the capture, the iPad Pro shows a series of PD Msg types including Src Cap, Req, and Accept, but there are also unexpected messages such as Hard Reset and Soft Reset that disrupt the communication.
Timing Issues: The timestamps show irregular intervals between packets when connected to the iPad Pro, suggesting possible timing synchronization issues.
Unexpected Resets: The capture shows a Hard Reset event at packet 9, which is not observed in the Android device captures. This suggests the iPad Pro might be detecting an error and attempting to reset the connection.
Steps Taken:
Verified the firmware and hardware implementation of the Powerpack/Hub.
Ensured compliance with USB PD standards.
Tested with multiple iPad Pro units to rule out device-specific issues.
Additional Details: We have also tested with iPad Air and observed the same issue. The tests were conducted on both iOS version 16 and 17. We are attaching a USB PD capture with an Android device where it is working fine as expected. The PD packets were captured in a scenario where the AC power adapter was initially connected. After a few seconds, we removed the plug, waited for a few seconds, and then plugged in the AC power again. This was the scenario when we captured the PD packets, as seen in the snapshot.
Despite these steps, the issue persists. We seek guidance on any issues or peculiarities with iOS devices and USB PD communication.
Thanks
Apple Developers
RSS for tagThis is a dedicated space for developers to connect, share ideas, collaborate, and ask questions. Introduce yourself, network with other developers, and foster a supportive community.
Selecting any option will automatically load the page
Post
Replies
Boosts
Views
Activity
Dear Dev Team,
I am writing to report a severe battery drain issue after updating my Apple Watch to watchOS 11 (22R5318h). Since the update, my watch’s battery life has drastically reduced, going from 100% to 0% in just 4 hours.
I have taken the following steps to resolve the issue, but none have been successful:
1. Performed a fresh reset of the watch.
2. Reset my iPhone.
3. Disabled background app activity.
4. Enabled airplane mode and power saving mode.
Despite these efforts, the problem persists. My watch’s battery health is at 100%, so I believe the issue is related to the software update.
I would appreciate your assistance in resolving this matter as it is significantly affecting the usability of my Apple Watch.
Thank you for your attention to this issue.
——————-
Update 1: I have rolled back from iOS 18 beta 4 to iOS 18 beta 3 after reading that the update might be causing the issue with the Apple Watch. Following this, I reset my Apple Watch, including the cellular plan, and did not restore from a backup. However, the problem still persists.
Additionally, I have noticed that the charging time from 30% to 100% has increased to 3 hours and 23 minutes using a 20W Apple charger.
I've implemented a file provider for macos, and it works well. Now I'm trying to add partial download support in my implementation. however, it doesn't seem to work.
As per documentation, I've implemented
protocol NSFileProviderPartialContentFetching
and its method
func fetchPartialContents(for: NSFileProviderItemIdentifier, version: NSFileProviderItemVersion, request: NSFileProviderRequest, minimalRange: NSRange, aligningTo: Int, options: NSFileProviderFetchContentsOptions, completionHandler: (URL?, NSFileProviderItem?, NSRange, NSFileProviderMaterializationFlags, (any Error)?) -> Void) -> Progress
Now, I'm testing my implementation, and I open a movie from my File Provider using VLC. I see that
fetchPartialContents get a hit. I download requested range, and return it through completionHandler. However VLC gives a read error.
here is my implementation of fetchPartialContents:
private func align(range: NSRange, to alignment: Int) -> NSRange {
let start = range.location - (range.location % alignment)
let end = range.location + range.length
let alignedEnd = ((end + alignment - 1) / alignment) * alignment
let alignedLength = alignedEnd - start
return NSRange(location: start, length: alignedLength)
}
unc fetchPartialContents(for itemIdentifier: NSFileProviderItemIdentifier, version requestedVersion: NSFileProviderItemVersion, request: NSFileProviderRequest, minimalRange requestedRange: NSRange, aligningTo alignment: Int, options: NSFileProviderFetchContentsOptions = [], completionHandler: @escaping (URL?, NSFileProviderItem?, NSRange, NSFileProviderMaterializationFlags, (any Error)?) -> Void) -> Progress {
let alignedRange = align(range: requestedRange, to: alignment)
let progress = Progress(totalUnitCount: 100)
let data = downloadData(for: alignedRange)
progress.completedUnitCount = 100;
tempFileHandle = try FileHandle(forWritingTo: tempFileURL)
tempFileHandle.seek(toFileOffset: UInt64(alignedRange.location))
tempFileHandle.write(data!)
tempFileHandle.closeFile()
let item = FileProviderItem(identifier: itemIdentifier,)
completionHandler(tempFileURL, item, alignedRange, [], nil)
} catch {
completionHandler(nil, nil, alignedRange, [], error)
}
}
I beleive I'm doing everhting correctly & as per documentation, but certainly there is something is wrong. Can someone help me about it?
cheers,
who has iPhone 15 pro Max could you tell me the diagonal length of the back panel where the cameras are inserted?
I'm not developer, so I don't know why I was sent to this forum, but: when I got a Beta OS notification from Apple for Sequoia ( I was using Sonoma), I accepted it and installed it, even though it was still in Beta. Since then, everything still works OK, but now I get a notification from Adobe 4-5 times per day telling me: "CCLIbrary.app" would like to access data from other apps". I can either "allow" or "don't allow" . I don't have the slightest idea what to do with the information. Other than avoiding beta versions of the Mac OS
I'm on a Mac mini running Sequoia , OS15
Topic:
Community
SubTopic:
Apple Developers
Appl waitlist still showing
Topic:
Community
SubTopic:
Apple Developers
When try to install the latest MacOS 15.1 Beta on my MacBook M2 the install went through without showing any error.
But after the restart I'm still on MacOS 15.0 Beta 4.
Any Idea, whats wrong here?
who was like me : i register a new account ,but at pay time,be reject. then show me :Contact us to continue the process,There may be an issue with your account that needs to be resolved before you can continue with the sign-up process. Please contact support.
i call many phone and post many email but is nothing,who can deal it? i buy a new macbook and iphone for this.but just start be force end.Do I need to return the product for a refund?
an error occurred downloading IOS 18.1 , what the solution for this
Topic:
Community
SubTopic:
Apple Developers
I am developing an app in Flutter and I need to implement iOS CallKit functionality to identify and store caller data within the app. I would like to know how to integrate CallKit into a Flutter application and what steps I need to follow to manage caller identification and data storage.
I have done some research and understand that I will need to write native Swift code to handle CallKit, but I am not sure how to properly integrate it with Flutter and manage communication between the native code and Dart code.
My specific questions are:
How do I set up CallKit in a Flutter project?
What permissions and configurations do I need in the Info.plist file?
How can I receive and handle incoming call data using CallKit?
How can I communicate this data to the Dart code in Flutter to store and display it in the user interface?
Any code examples, tutorials, or advice would be greatly appreciated. Thanks in advance for your help.
I have tried several approaches to implement iOS CallKit in my Flutter app:
Online Forums: I have researched various online forums and discussion boards where developers share their experiences and solutions for integrating CallKit with Flutter. Unfortunately, I have not found a complete solution that addresses my specific requirements.
Pub.dev Packages: I have explored different packages available on pub.dev, such as flutter_callkit_incoming and flutter_callkit, and tried to implement them in my project. However, I have encountered issues with proper integration and communication between the native Swift code and Flutter.
GitHub Repositories: I have also looked at several GitHub repositories where developers have shared their implementations of CallKit in Flutter. While these repositories provided some insights, I was unable to achieve the desired functionality on my physical device.
Despite following the instructions and examples from these sources, I have not been able to get CallKit to work correctly on my physical device. I am expecting to be able to identify the caller, and store the caller data within my Flutter app.
I too have experienced loss of internet connectivity even though both wifi and cell data are connected and are available. I also experienced this with iOS 17 including latest betas. I have noticed that on iOS 18 Beta releases that the loss of internet seems to be triggered when I enable VPN and then disable VPN. If I enable VPN again, internet data does partially return however some apps don’t show access to internet still.
Nothing fixes this other than a power off/on.
Resetting network settings , airplane mode on/off doesn’t resolve the issue.
This was not an issue using iOS 16. Problems started with iOS 17 and are still there in iOS 18.
Topic:
Community
SubTopic:
Apple Developers
I can't install iOS 18 beta 5. I have a developer account... I installed iOS 18.1 Apple intelligence, could that be the problem?
In iOS 18 beta 5 version, setting the conversion to NSAttributedString using [.documentType: NSAttributedString.DocumentType.html] occasionally causes crashes
The same issue was encountered in previous versions. However, after running the code on the main thread, it no longer crashed. But after upgrading to the iOS 18 beta 5 version, it occasionally crashes even when running on the main thread.
How can this issue be resolved?
Topic:
Community
SubTopic:
Apple Developers
When I submitted my app, they rejected it because the app crashed when implementing the app. They sent me the crash logs. Can someone guide me on how to read them and navigate me to identify the help?
crashlog-268C087C-3E75-4982-A08D-60DEFEE5AD95.txt
crashlog-22278F0D-EF70-4799-B6E0-C2E001A960D6.txt
Topic:
Community
SubTopic:
Apple Developers
I'm trying to access my own financial data (I'm building a dashboard for my own personal finances) but can't seem to find an API for this.
I found FinanceKit but it sounds like you have to be a big company to use that and that and it's more of a swift SDK than a generic API endpoint.
Does anyone know how I can access my financial data without manual downloads?
Topic:
Community
SubTopic:
Apple Developers
Tags:
Wallet
Developer Tools
Apple Pay
Sign in with Apple REST API
When Will iOS 18.1 Beta Be Available on the iPhone 14 Pro & 14 Pro Max?
Spring files in java are not running on NetBeans IDE.
Please help me regarding this issue.
Topic:
Community
SubTopic:
Apple Developers
We recently submitted the app and I am putting some normal screenshots for submission. For that, I need to change those and present them in an attractive way, but there's no edit option for screenshots in Apple Connect. Is there any potential to change it? Also, it is published from my personal account and I need to change my personal name to the app name. Is there any potential to change it also?
Topic:
Community
SubTopic:
Apple Developers
CC spu/dynamicoverlay/dynamicoverlay_buffer.lo
CC spu/dynamicoverlay/dynamicoverlay_queue.lo
CC spu/dynamicoverlay/dynamicoverlay_commands.lo
CC spu/dynamicoverlay/dynamicoverlay.lo
CCLD libdynamicoverlay_plugin.la
CC stream_extractor/libarchive_plugin_la-archive.lo
CCLD libarchive_plugin.la
ld: library 'b2' not found
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make[4]: *** [libarchive_plugin.la] Error 1
make[3]: *** [all-recursive] Error 1
make[2]: *** [all] Error 2
make[1]: *** [all-recursive] Error 1
make: *** [all] Error 2
I'm trying to convert a view (ScrollView) to PDF, on my physical device iPhone 7 with iOS 15.8 it works perfectly, but on my friends' iPhone 11 and iPhone 13 both with iOS 17+ the application crashes at the time of conversion, it also crashes in the xCode preview and in the Simulators without showing errors.
I call the function like this:
Button(action: {
if included && !saving {
if signatureImage != nil {
exportPDF(name: "ToR-(patient.name)-(patient.id)") {
self
} completion: { status, url in
if let url = url, status {
self.PDFUrl = url
self.showActionSheet.toggle()
print("URL => (url) - Status (status)")
} else {
print("Failed")
}
}
} else {
self.scrollToBottom = true
}
}
}) {
if saving {
ProgressView()
.tint(Color("MainColor"))
.scaleEffect(1.5)
} else {
Text(NSLocalizedString("Save", comment: ""))
}
}
And the function is this:
import SwiftUI
import UIKit
extension View {
func convertToScrollView<Content: View>(@ViewBuilder content: @escaping () -> Content) -> UIScrollView {
let scrollView = UIScrollView()
let hostingController = UIHostingController(rootView: content()).view!
hostingController.translatesAutoresizingMaskIntoConstraints = false
let constraints = [
hostingController.leadingAnchor.constraint(equalTo: scrollView.leadingAnchor),
hostingController.trailingAnchor.constraint(equalTo: scrollView.trailingAnchor),
hostingController.topAnchor.constraint(equalTo: scrollView.topAnchor),
hostingController.bottomAnchor.constraint(equalTo: scrollView.bottomAnchor),
hostingController.widthAnchor.constraint(equalToConstant: screenBounds().width)
]
scrollView.addSubview(hostingController)
scrollView.addConstraints(constraints)
scrollView.layoutIfNeeded()
return scrollView
}
func exportPDF<Content: View>(name: String, @ViewBuilder content: @escaping () -> Content, completion: @escaping (Bool, URL?) -> ()) {
let documentDirectory = FileManager.default.urls(for: .cachesDirectory, in: .userDomainMask).first!
let outputFileURL = documentDirectory.appendingPathComponent("\(name).pdf")
let pdfView = convertToScrollView {
content()
}
pdfView.tag = 1009
let size = pdfView.contentSize
pdfView.frame = CGRect(x: 0, y: getSafeArea().top, width: size.width, height: size.height)
getRootController().view.insertSubview(pdfView, at: 0)
let renderer = UIGraphicsPDFRenderer(bounds: CGRect(x: 0, y: 0, width: size.width, height: size.height))
do {
try renderer.writePDF(to: outputFileURL, withActions: { context in
context.beginPage()
pdfView.layer.render(in: context.cgContext)
})
completion(true, outputFileURL)
}
catch {
completion(false, nil)
print(error.localizedDescription)
}
getRootController().view.subviews.forEach { view in
if view.tag == 1009 {
view.removeFromSuperview()
}
}
//pdfView.removeFromSuperview()
}
func screenBounds() -> CGRect {
return UIScreen.main.bounds
}
func getRootController() -> UIViewController {
guard let screen = UIApplication.shared.connectedScenes.first as? UIWindowScene else {
return .init()
}
guard let root = screen.windows.first?.rootViewController else {
return .init()
}
return root
}
func getSafeArea() -> UIEdgeInsets {
guard let screen = UIApplication.shared.connectedScenes.first as? UIWindowScene else {
return .zero
}
guard let safeArea = screen.windows.first?.safeAreaInsets else {
return .zero
}
return safeArea
}
}