Setting Team Identifier on Mac


I am having issues in the code-signed version of my app where virtual video devices are not appearing - I believe this is an issue with how I am setting the team identifier.

Currently I am initialising the SDK using (apologies I am not clear how to format the text as code):

ZoomSDKInitParams parms = [[ZoomSDKInitParams alloc] init];
parms.needCustomizedUI = NO;
parms.teamIdentifier = @"3
[[ZoomSDK sharedSDK] initSDKWithParams: pams];

I believe I have the correct teamIdentifier - all the libraries are signed with:

–sign “Developer ID Application: Richard Williamson (3***A)”

And I am able notarize and run this all successfully, other than the stuff that requires extra libraries.

I do get this error in the log which shows that this is the issue (I think)

Error loading /Library/CoreMediaIO/Plug-Ins/DAL/NDIVirtualCamera.plugin/Contents/MacOS/NDIVirtualCamera: dlopen(/Library/CoreMediaIO/Plug-Ins/DAL/NDIVirtualCamera.plugin/Contents/MacOS/NDIVirtualCamera, 262): no suitable image found. Did find:
/Library/CoreMediaIO/Plug-Ins/DAL/NDIVirtualCamera.plugin/Contents/MacOS/NDIVirtualCamera: code signature in (/Library/CoreMediaIO/Plug-Ins/DAL/NDIVirtualCamera.plugin/Contents/MacOS/NDIVirtualCamera) not valid for use in process using Library Validation: mapping process and mapped file (non-platform) have different Team IDs

Hi @richard1, thanks for the post.

There does not appear to be anything wrong with the way you are setting the team identifier within the SDK. If you are still experiencing issues, it is possible that you are not using the correct value.


Thanks Jon - turned out I needed to enable hardened runtime to get the entitlements to be picked up - I found getting the code to sign and notarise successfully involved a lot of trial and error!

Hi @richard1,

Glad to hear it’s working now! Please don’t hesitate to reach out for assistance in the future.


I actually lied in my earlier reply -I actually fixed this by disabling library validation, so at the moment in order to code sign successfully I have:

  • Code signed all frameworked etc with my certificate
  • Enabled hardened runtime
  • Enabled the audio and video permissions in hardered runtime
  • Disabled library validation in hardened runtime

Which coupled together allows me to code sign, notarise and for users to use virtual cameras etc.

Is the above all correct? If so it might be worth adding this to the readme (unless it’s there already and I’m blind?)