Post

Replies

Boosts

Views

Activity

Reply to PCIDriverKit entitlements during development
thank you Kevin for that answer. In the meantime I've discovered a few more facts, which I'll detail here. I'll also file some bugs and attach their numbers here. I did manage to get a PCI driver to match and install on a victim machine. I used an Xcode-generated profile that includes our own PCI entitlement, but installed the driver on a machine with entitlement checks turned off. To do this, on the victim machine: boot into recovery and turn SIP off (csrutil disable at the command line) boot back into the OS, and execute: sudo nvram boot-args="amfi_get_out_of_my_way=1 -arm64e_preview_abi dk=0x8001" reboot to let the boot-args take effect change the architecture of the driver to arm64e (it was ${STANDARD_ARCHS} (in build settings/architectures) It is possible that not all of the boot-args are necessary. I had to change the build architecture because it seems like the other arguments make the OS think that everything is a platform binary. The driver still failed entitlement checks until I added dk=0x8001. All of this information takes a lot of searching to find (some of it comes from these very forums) I then tried making a USB driver for development (for a vendor ID we don't have an entitlement for). On my usual Mac, the driver won't load because the entitlement in my provisioning profile is for a specific vendor ID - I can't choose the development USB transport capability. I would have to deploy this driver on a victim machine with SIP off and the same shenanigans as above. This probably wouldn't affect a team with no USB transport entitlement at all, they'd only be able to choose the development flavor of the capability.
Topic: Code Signing SubTopic: Entitlements Tags:
Aug ’25
Reply to ScreenCapture + CMSampleBuffer logic issue
some code accessed a nil pointer. The code doesn't belong to your process (or else you would have landed in the debugger with a BAD_ACCESS error), instead didStop is called. However, almost undoubtedly your code caused the nil pointer access. Take a close look at how you manage video buffers and read the documentation very carefully. CMSampleBufferCreateCopy doesn't actually copy the buffer's data, for example.
Jul ’25
Reply to ScreenCapture + CMSampleBuffer logic issue
what type of object is a ScreenStreamOutput? I don't see it anywhere in Apple's documentation. I'd expect your app, or a component thereof, to conform to SCStreamOutput protocol. So it should implement a func stream( _ stream: SCStream, didOutputSampleBuffer sampleBuffer: CMSampleBuffer, of type: SCStreamOutputType ) that's where you'd put logic which copies the content of the sampleBuffer into your private circular buffer.
Jul ’25
Reply to About posting app in iOS and MacOS
Please don't use the Comments feature to reply to posts (they don't open by default and watchers don't get notifications for them). Mac apps are bundles, directories with a well-known format and a .app extension. They appear to Finder as single files. If you are building with Xcode, the submission process begins with Archiving, not Building. You Archive your app (Product menu), then open the Organizer (in the Window menu), select the archive you just made, and click Distribute Content. To learn more, begin here https://developer.apple.com/macos/submit/. If you are building with some other tool, you'd be better off asking your question on a forum specific to that tool.
Jun ’25
Reply to bInterfaceNumber for multiple interface usb-cdcacm device
you are right, you can't define multiple interface numbers within one IOKitPersonality. But you can define multiple IOKitPersonalities. IOKitPersonalities is a dictionary of dictionaries. The keys are strings (which can be anything meaningful to you, the OS doesn't care what they are), each value is a dictionary. Copy your dictionary which matches against bInterfaceNumber=1, and modify it to match against bInterfaceNumber=2. I believe the rules outlined still apply. https://developer.apple.com/library/archive/qa/qa1076/_index.html
Jun ’25
Reply to DriverKit driver does not appear in iPadOS app settings
The entitlements file looks okay. Remember, the vendor ID is a decimal number. I suggest that you install your app and driver on a Mac. There are more tools available to debug with, and you can add code to explicitly load and unload the driver, while on iPadOS that process is completely automatic. Are you using the same version of iPadOS now as you were using with the working (development version) of the driver? One version of iPadOS didn't show the Driver toggle in Settings, I don't remember which.
Topic: Code Signing SubTopic: General Tags:
Jun ’25
Reply to Is it possible to communicate with peripherals through the TypeC port of Apple 15 or above mobile phones?
You sent the same comment seven times, which probably nobody read. I'm not sure what the comments feature is for; new comments don't bump the visibility of a thread, and they're closed by default. You haven't said what sort of accessory your peripheral is. If it is mass storage, a microphone, a camera, a keyboard or a game controller, there is native support for such devices on iOS. If it is something else, you need some kind of custom software. On iPhone, (and on many models of iPad), you cannot use DriverKit, so your only recourse is EAP and making your device part of the MFi program.
Topic: App & System Services SubTopic: Drivers Tags:
Jun ’25
Reply to I've been fooling around with this and I lose "stuff"
The area on the left in grey is called the "navigator" You've selected the Find navigator, and you expect to see files containing text containing "readNumber". You're searching in an area called "macOS" (selected using the popup underneath the search field. I don't know what that is - it isn't one of the pre-defined search scopes. I usually use "in Project" or "in Project & SDK". In addition, if you look at the bottom of the Find navigator, there's a file name filter. Your search doesn't find "readNumber" at all, so this doesn't make any difference here, but I have no idea where it is searching. Clear the file filter at the bottom and change the search scope to "project" and see if it works then. Also, select the Project navigator, expand the project view and post the screenshot - it should looks something like this if it doesn't, maybe we'll be able to help you out. Incidentally, clearly Xcode is finding something, because it built and ran your program. Also, if you're new to this, why are you building for both macOS and iOS? It would be easier to start with just one.
May ’25
Reply to Multiple Commands Error
Hi. In future, please post error messages as text, not screen shots, they're a lot easier to view that way. Somehow you have almost every file in your target twice. If you're new to Xcode, this could be quite difficult to fix. If you don't want to go that route, open the target in Xcode, select the Build Phases tab, and check the Compile Sources, Link Binary With Libraries and Copy Bundle Resources phases. Remove any duplicate entries. You may find it helpful to create a new, minimal project in Xcode from its iOS app template, so that you can compare a working target with your own.
May ’25
Reply to PCIDriverKit entitlements during development
thank you Kevin for that answer. In the meantime I've discovered a few more facts, which I'll detail here. I'll also file some bugs and attach their numbers here. I did manage to get a PCI driver to match and install on a victim machine. I used an Xcode-generated profile that includes our own PCI entitlement, but installed the driver on a machine with entitlement checks turned off. To do this, on the victim machine: boot into recovery and turn SIP off (csrutil disable at the command line) boot back into the OS, and execute: sudo nvram boot-args="amfi_get_out_of_my_way=1 -arm64e_preview_abi dk=0x8001" reboot to let the boot-args take effect change the architecture of the driver to arm64e (it was ${STANDARD_ARCHS} (in build settings/architectures) It is possible that not all of the boot-args are necessary. I had to change the build architecture because it seems like the other arguments make the OS think that everything is a platform binary. The driver still failed entitlement checks until I added dk=0x8001. All of this information takes a lot of searching to find (some of it comes from these very forums) I then tried making a USB driver for development (for a vendor ID we don't have an entitlement for). On my usual Mac, the driver won't load because the entitlement in my provisioning profile is for a specific vendor ID - I can't choose the development USB transport capability. I would have to deploy this driver on a victim machine with SIP off and the same shenanigans as above. This probably wouldn't affect a team with no USB transport entitlement at all, they'd only be able to choose the development flavor of the capability.
Topic: Code Signing SubTopic: Entitlements Tags:
Replies
Boosts
Views
Activity
Aug ’25
Reply to ScreenCapture + CMSampleBuffer logic issue
some code accessed a nil pointer. The code doesn't belong to your process (or else you would have landed in the debugger with a BAD_ACCESS error), instead didStop is called. However, almost undoubtedly your code caused the nil pointer access. Take a close look at how you manage video buffers and read the documentation very carefully. CMSampleBufferCreateCopy doesn't actually copy the buffer's data, for example.
Replies
Boosts
Views
Activity
Jul ’25
Reply to ScreenCapture + CMSampleBuffer logic issue
what type of object is a ScreenStreamOutput? I don't see it anywhere in Apple's documentation. I'd expect your app, or a component thereof, to conform to SCStreamOutput protocol. So it should implement a func stream( _ stream: SCStream, didOutputSampleBuffer sampleBuffer: CMSampleBuffer, of type: SCStreamOutputType ) that's where you'd put logic which copies the content of the sampleBuffer into your private circular buffer.
Replies
Boosts
Views
Activity
Jul ’25
Reply to What is a reasonable way for a script that runs otool to handle the need to agree to a new license?
sudo xcodebuild -license run it in an empty directory so it doesn't actually build anything. More info in the man page for xcodebuild.
Replies
Boosts
Views
Activity
Jul ’25
Reply to C++ HMAC-SHA256 Signature Works in Python, Fails in C++ — Possible Xcode Runtime Issue?
the timestamp part of "pre-sign" varies from one implementation or invocation to the next - does it have to? I suggest you use a fixed string for the timestamp value for all programs and then look at the requests in Wireshark to see what the differences are.
Topic: Privacy & Security SubTopic: General Tags:
Replies
Boosts
Views
Activity
Jul ’25
Reply to Failed to notarize a "distribution" pkg
I think you're using the wrong certificate type. "Developer ID Application" is for applications. Developer ID Installer is for .pkg files.
Replies
Boosts
Views
Activity
Jun ’25
Reply to About posting app in iOS and MacOS
Please don't use the Comments feature to reply to posts (they don't open by default and watchers don't get notifications for them). Mac apps are bundles, directories with a well-known format and a .app extension. They appear to Finder as single files. If you are building with Xcode, the submission process begins with Archiving, not Building. You Archive your app (Product menu), then open the Organizer (in the Window menu), select the archive you just made, and click Distribute Content. To learn more, begin here https://developer.apple.com/macos/submit/. If you are building with some other tool, you'd be better off asking your question on a forum specific to that tool.
Replies
Boosts
Views
Activity
Jun ’25
Reply to bInterfaceNumber for multiple interface usb-cdcacm device
you are right, you can't define multiple interface numbers within one IOKitPersonality. But you can define multiple IOKitPersonalities. IOKitPersonalities is a dictionary of dictionaries. The keys are strings (which can be anything meaningful to you, the OS doesn't care what they are), each value is a dictionary. Copy your dictionary which matches against bInterfaceNumber=1, and modify it to match against bInterfaceNumber=2. I believe the rules outlined still apply. https://developer.apple.com/library/archive/qa/qa1076/_index.html
Replies
Boosts
Views
Activity
Jun ’25
Reply to iOS 26 bugs
Don't post it here, nobody will take action. File bugs using Feedback Assistant. That's what beta releases are for.
Replies
Boosts
Views
Activity
Jun ’25
Reply to Xcode File Error
There's not much to go on here - tell us which specific file is missing, from what?
Replies
Boosts
Views
Activity
Jun ’25
Reply to DriverKit driver does not appear in iPadOS app settings
The entitlements file looks okay. Remember, the vendor ID is a decimal number. I suggest that you install your app and driver on a Mac. There are more tools available to debug with, and you can add code to explicitly load and unload the driver, while on iPadOS that process is completely automatic. Are you using the same version of iPadOS now as you were using with the working (development version) of the driver? One version of iPadOS didn't show the Driver toggle in Settings, I don't remember which.
Topic: Code Signing SubTopic: General Tags:
Replies
Boosts
Views
Activity
Jun ’25
Reply to Is it possible to communicate with peripherals through the TypeC port of Apple 15 or above mobile phones?
You sent the same comment seven times, which probably nobody read. I'm not sure what the comments feature is for; new comments don't bump the visibility of a thread, and they're closed by default. You haven't said what sort of accessory your peripheral is. If it is mass storage, a microphone, a camera, a keyboard or a game controller, there is native support for such devices on iOS. If it is something else, you need some kind of custom software. On iPhone, (and on many models of iPad), you cannot use DriverKit, so your only recourse is EAP and making your device part of the MFi program.
Topic: App & System Services SubTopic: Drivers Tags:
Replies
Boosts
Views
Activity
Jun ’25
Reply to Increase maximum number of registrated iOS devices
short answer is yes. Longer answer is at this link: https://developer.apple.com/support/compare-memberships/
Replies
Boosts
Views
Activity
May ’25
Reply to I've been fooling around with this and I lose "stuff"
The area on the left in grey is called the "navigator" You've selected the Find navigator, and you expect to see files containing text containing "readNumber". You're searching in an area called "macOS" (selected using the popup underneath the search field. I don't know what that is - it isn't one of the pre-defined search scopes. I usually use "in Project" or "in Project & SDK". In addition, if you look at the bottom of the Find navigator, there's a file name filter. Your search doesn't find "readNumber" at all, so this doesn't make any difference here, but I have no idea where it is searching. Clear the file filter at the bottom and change the search scope to "project" and see if it works then. Also, select the Project navigator, expand the project view and post the screenshot - it should looks something like this if it doesn't, maybe we'll be able to help you out. Incidentally, clearly Xcode is finding something, because it built and ran your program. Also, if you're new to this, why are you building for both macOS and iOS? It would be easier to start with just one.
Replies
Boosts
Views
Activity
May ’25
Reply to Multiple Commands Error
Hi. In future, please post error messages as text, not screen shots, they're a lot easier to view that way. Somehow you have almost every file in your target twice. If you're new to Xcode, this could be quite difficult to fix. If you don't want to go that route, open the target in Xcode, select the Build Phases tab, and check the Compile Sources, Link Binary With Libraries and Copy Bundle Resources phases. Remove any duplicate entries. You may find it helpful to create a new, minimal project in Xcode from its iOS app template, so that you can compare a working target with your own.
Replies
Boosts
Views
Activity
May ’25