Describe the bug
Microsoft released a new Skype version today v8.60.0.76 and OBS Virtual Camera is no longer displayed in the selection list. I've tried to do a codesign --remove-signature trick but it's not working anyway.
Previous version: v8.59.0.77 working fine.
Desktop (please complete the following information):
Interesting. I wonder if Skype followed Zoom and disabled 3rd party camera plugins.
I think so as I also do not see my BlackMagic UltraStudio 4k mini in skype or any of the other virtual cams (Wirecast / ecamm) which worked yesterday before I updated today a well.
I'd also try re-codesigning Skype manually (probably need xcode installed for this)
sudo codesign -f -s - /Applications/Skype.app
And if that doesn't work maybe try the more elaborate fixes to change the entitlements that were shared by some folks in #4. Please report back if you do this as I don't think anyone came up with a reusable command for this.
Codesigning does nothing. I did not test entitlements yet.
Also keep an eye on Console.app while you open Skype and see if you see anything related to obs, CoreMedia, cameras, etc.
error 14:18:24.395447-0700 Skype Helper (Renderer) Cannot find function pointer PlugInMain for factory
error 14:18:24.395493-0700 Skype Helper (Renderer) CMIO_DAL_PlugInManagement.cpp:913:CreatePlugIn CFPlugInInstanceCreate return NULL
Ooh interesting. Can you run this and check the obs-mac-virtualcam version? cat /Library/CoreMediaIO/Plug-Ins/DAL/obs-mac-virtualcam.plugin/Contents/Info.plist | grep -a3 CFBundleShortVersionString
And check to see if there was log right before that in Console. Might not have come from the Skype process. Usually the log you posted happens when the plugin is blocked from loading for some reason (usually codesigning).
Downloaded it an hour ago so it should be the latest.
<string>OBS Virtual Camera</string>
<key>CFBundlePackageType</key>
<string>BNDL</string>
<key>CFBundleShortVersionString</key>
<string>1.1.0</string>
<key>CFBundleVersion</key>
<string>1.1.0</string>
All I see is:
default 14:24:02.839396-0700 Skype Helper Error loading /Library/CoreMediaIO/Plug-Ins/DAL/obs-mac-virtualcam.plugin/Contents/MacOS/obs-mac-virtualcam: dlopen(/Library/CoreMediaIO/Plug-Ins/DAL/obs-mac-virtualcam.plugin/Contents/MacOS/obs-mac-virtualcam, 262): no suitable image found. Did find:
/Library/CoreMediaIO/Plug-Ins/DAL/obs-mac-virtualcam.plugin/Contents/MacOS/obs-mac-virtualcam: code signature in (/Library/CoreMediaIO/Plug-Ins/DAL/obs-mac-virtualcam.plugin/Contents/MacOS/obs-mac-virtualcam) not valid for use in process using Library Validation: mapping process and mapped file (non-platform) have different Team IDs
/Library/CoreMediaIO/Plug-Ins/DAL/obs-mac-virtualcam.plugin/Contents/MacOS/obs-mac-virtualcam: stat() failed with errno=1
error 14:24:02.839458-0700 Skype Helper Cannot find function pointer PlugInMain for factory <CFUUID 0x7fbf4fe0dc50> 35FDFF29-BFCF-4644-AB77-B759DE932ABE in CFBundle/CFPlugIn 0x7fbf4fe0fa70 </Library/CoreMediaIO/Plug-Ins/DAL/obs-mac-virtualcam.plugin> (bundle, not loaded)
error 14:24:02.839502-0700 Skype Helper CMIO_DAL_PlugInManagement.cpp:913:CreatePlugIn CFPlugInInstanceCreate return NULL
error 14:24:02.841476-0700 Skype Helper AddInstanceForFactory: No factory registered for id <CFUUID 0x7fbf4fe0d320> 30010C1C-93BF-11D8-8B5B-000A95AF9C6A
"have different Team IDs" there is the issue
Yep, that's it. I think that's the same error we get with Zoom, but I don't remember off the top of my head. I'd try re-codesigning Skype and adding the com.apple.security.cs.disable-library-validation entitlement like people were doing for Zoom in #4. That's my best guess for a workaround.
Yep, that's it. I think that's the same error we get with Zoom, but I don't remember off the top of my head. I'd try re-codesigning Skype and adding the com.apple.security.cs.disable-library-validation entitlement like people were doing for Zoom in #4. That's my best guess for a workaround.
I've tried the procedure with no luck. :(
Crashing with the following message:
Exception Type: EXC_BAD_ACCESS (Code Signature Invalid)
Exception Codes: 0x0000000000000032, 0x000037d298442040
Exception Note: EXC_CORPSE_NOTIFY
@stickpin can you share the commands you ran to add the entitlement? I suspect something went wrong with codesigning after you changed the entitlement.
@johnboiles
APPLICATION=/Applications/Skype.app && \
codesign -d --entitlements :- $APPLICATION | \
sudo codesign --sign <long_hex_dev_id> $APPLICATION --force --preserve-metadata=identifier,resource-rules,flags --entitlements=entitlements.xml
entitlements.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>com.apple.security.cs.disable-library-validation</key>
<true/>
</dict>
</plist>
not sure if this is the right place to post but I downloaded a previous version (8.59.0.77) for the time being so that the virtual cam would work. Also tried codesign as mentioned already above (like I did with Zoom) and it did not work. I also noticed that Skype also automatically updates the version the next time you start skype and will in turn remove the virtual cam. So I had to create a script to disable the update.
/bin/launchctl setenv DISABLE_UPDATE_CHECK 1
Hopefully this will help those like me who is not so smart in coding to temporary use the previous version for now. Hopefully someone can figure out how to overcome this bug. Seems intentional that everyone is starting to disable virtual cam capabilities.
This command line needs to be run every time you restart your mac because the auto update will be enabled again after a restart. So be sure to run this script first before opening Skype.
Thanks for the tip @davelse.
Yeah the way Apple has architected virtual cameras isn't very secure unfortunately and a malicious virtual camera could access memory from host apps. That is why a lot of apps are disabling them. Apple could solve this by running virtual cameras in a separate process from the host program. That is how Chrome mitigated this issue, but it would make sense for something similar to happen at the OS level. Hopefully Apple will do something about it in 10.16!
FYI:
In case you have Little Snitch, you can block get.skype.com domain, which will also block Skype updates.

I have tried multiple ways of doing the entitlements.txt fix and Skype does start for me, but it does not load the virtual cameras. Not the OBS one neither any other. So it may be a different kind of problem here?
It's becoming quite annoying that these app providers are closing down like that.
Thanks for the great Thread.
For fixing Skype I had to dig a little.
It is necessary to "unsign" or resign an helper
here is the command
sudo codesign --remove-signature /Applications/Skype.app/Contents/Frameworks/Skype Helper (Renderer).app/
Great trick, could you add those steps to the Compatibility section on the wiki?
Thanks for the great Thread.
For fixing Skype I had to dig a little.
It is necessary to "unsign" or resign an helperhere is the command
sudo codesign --remove-signature /Applications/Skype.app/Contents/Frameworks/Skype Helper (Renderer).app/
Excellent! Thank you!
I tried copying and pasting the command and received an error saying "no matches found". I realized there is a couple of dashes missing at the end. In case anyone wants to copy and paste, this should work... But thank you redsector72 for the command and johnboiles for this thread.
sudo codesign --remove-signature /Applications/Skype.app/Contents/Frameworks/Skype\ Helper\ \\(Renderer\\).app
Thanks all! For me, only this one worked: 1 backslash instead of 2 around (Renderer):
sudo codesign --remove-signature /Applications/Skype.app/Contents/Frameworks/Skype\ Helper\ \(Renderer\).app
For Discord, use
sudo codesign --remove-signature /Applications/Discord.app/Contents/Frameworks/Discord\ Helper\ \(Renderer\).app
By way of the Ecamm help center, Virtual Camera Missing After Skype Update, a version of the command without backslashes (quotes instead):
codesign --remove-signature "/Applications/Skype.app/Contents/Frameworks/Skype Helper (Renderer).app"
Worked for me with Skype 8.61.0.95.
The --remove-signature worked for me as well.
Is there a way to readd the signature back?
Well, then the virtual camera will likely not work anymore.
So yes, you could, but then you would have the problem you had before again.
@gxalpha yes, however it would be good to know how to readd/restore the signature, since removing the signature has implications, no?
You would probably have to reinstall the app to get the original signature back
Closing as a duplicate of #4. But it would probably be good to compile all these code signing workarounds for various apps into a page on the OBS wiki or something.
Most helpful comment
Excellent! Thank you!
I tried copying and pasting the command and received an error saying "no matches found". I realized there is a couple of dashes missing at the end. In case anyone wants to copy and paste, this should work... But thank you redsector72 for the command and johnboiles for this thread.
sudo codesign --remove-signature /Applications/Skype.app/Contents/Frameworks/Skype\ Helper\ \\(Renderer\\).app