on-line entitlement format to obtain relevant "transport.usb|idVendor"

  1. The situation:

1A) On last week our development team applied on-line for three idVendors with the format as the following:

USB-VendorID:  547h(1351), 3488h(13448),4B4h(1204)
Describe your apps:  it shall be functional equivalence of existing Android-SDK for X-ray sensor-models:...with 15..25 text lines of the description below

1B) We received auto-reply, that we granted all the the entitlements. We've expected to have entitlements like approx like the these:

  <key>com.apple.developer.driverkit.transport.usb</key> <array>
  <dict> <key>idVendor</key> <integer>1351</integer> </dict>
  <dict> <key>idVendor</key> <integer>131448</integer> </dict>
  <dict> <key>idVendor</key> <integer>1204</integer> </dict> </array>

1C) Unexpectingly (for us) ASCII-strings-fragment from our iOS-target-binary "com.rayence.dexta.driver" (built with automatic signing; seemingly this shall be our actual granted prvisionintg profile) looks as the next:

   <plist version="1.0"> <dict>	<key>com.apple.developer.driverkit</key> <true/><key>com.apple.developer.driverkit.transport.usb</key>
   <array><dict> <key>idVendor</key> <string>*</string>	</dict></array> </dict>

1D) Repectively, now we shall specify (in our dext's entitlements in XCOde-project)

   <key>com.apple.developer.driverkit.transport.usb</key> <array>
   <dict> <key>idVendor</key> <string>*</string> </dict> </array>

In DExt's info.plist we have "normal":

 <key>IOKitPersonalities</key>	<dict>
   <key>IOKitPersonality_EzHD</key> <dict>  blah-blah
   <key>idVendor</key><integer>1351</integer>
   <key>IOKitPersonality_EzR</key> <dict>  blah-blah
   <key>idVendor</key><integer>131448</integer>
   <key>IOKitPersonality_EzR</key> <dict>  blah-blah
   <key>idVendor</key><integer>1204</integer>
   blah-blah

  1. Our ambiguities:

2a) Without exact "1D)", our DExt-installer-application never starts in iPAD. OS-loader generates obectievly-meaningless error-messages and seemingly-meaninglessly suggest to look "system-logs" (which seemingly don't contain relevant information)

2b) With exatct "1D)",

2ba) the reaction (presence/absence and timing of relevant console.app's messages) of our iPAD 17.4 on plugging/unplugging our gadgets look "non-logical". It isn't completly wrong but suspicious. E.g. our Swift-module randomly receive/dontreceive relevant events and can't connect communicate driver's instance for newly-attached physical gadgets. We realize, thses it could be our bugs; but we need disambiguation to debug the issues (or at least to be sure that the quirks are like in production system).

2bd) we would prefer debug/develop rather with real "idVendor=number nnn"s in provisioning profile (than with "idVendor=string *"). So we could be sure that quircs "2ba" are like in a production system.

  1. Respective question:

Which format in on-line application ~1A) shall we use to obtain provisioning profile 1B)

Answered by ssmith_c in 794133022

are you building for development or for distribution?

The auto-generated profile for a development build will include the "*" wildcard for idVendor. Your entitlement for your driver (which you specify should contain the specific vendor ID values, just like your IOKit personality dictionary.

When you build for distribution, you have to do some steps manually. There was a fairly recent post about this by Kevin Elliot, but of course I can't find it now.

Accepted Answer

are you building for development or for distribution?

The auto-generated profile for a development build will include the "*" wildcard for idVendor. Your entitlement for your driver (which you specify should contain the specific vendor ID values, just like your IOKit personality dictionary.

When you build for distribution, you have to do some steps manually. There was a fairly recent post about this by Kevin Elliot, but of course I can't find it now.

Thank you :) Right now: - I'm building "for developing". Three months later: - "for communicating with End-User-Apps-developers of ... of "various backgrounds" The situation:

  • I see "non-logical logs" of USB-gadget-attachment in "Console.app"; though that app is obviously buggy and "really misses messages", timing of certain "logs' in my tests look "non-logical" (so I am suspecting/expecting huge bugs in the core of OS development)
  • such bugs aren't fatal; but those shall be "stable bugs~=features"
  • but to treat (potential) system-bugs (or my bugs andOS quirks) as "features" I would prefer to have the same (as much as possible) "binaries with resources" at "development" and at "distribution"
on-line entitlement format to obtain relevant "transport.usb|idVendor"
 
 
Q