WebGL render blank screen in MacOS sandbox - macos

I have an app that runs WebGL to render video for Mac App (Electron). It works fine when running on local build. However it renders blank screen on MacOS app store bulid in Sandbox mode. Checked the frames passed to shader and it looks ok. What could be wrong in this case? Any permission do we need for Mac App store build?
info.plist:
<?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.application-identifier</key>
<string>xxxxx.desktop.xxxxx</string>
<key>com.apple.developer.team-identifier</key>
<string>xxxxx</string>
<key>com.apple.security.app-sandbox</key>
<true/>
<key>com.apple.security.application-groups</key>
<string>xxxxx.desktop.xxxxx</string>
<key>com.apple.security.network.client</key>
<true/>
<key>com.apple.security.network.server</key>
<true/>
<key>com.apple.security.cs.allow-unsigned-executable-memory</key>
<true/>
<key>com.apple.security.device.camera</key>
<true/>
<key>com.apple.security.device.microphone</key>
<true/>
<key>com.apple.security.device.audio-input</key>
<true/>
<key>com.apple.security.device.usb</key>
<true/>
<key>com.apple.security.device.bluetooth</key>
<true/>
<key>com.apple.security.files.user-selected.read-write</key>
<true/>
<key>com.apple.security.files.downloads.read-write</key>
<true/>
</dict>
</plist>

Related

Adding CFBundleURLTypes to entitlements on MacOS causes Invalid Signature error if Notarization is used

I am trying to add a CFBundleURLTypes entry to my entitlements in order to allow deep linking to my Electron app. This works when I do not use notarisation, however, I need my app notarised and the addition of CFBundleURLTypes is causing my app to crash immediately on opening it and reporting an Invalid Signature error, even though notarisation did not actually report a failure. Is there anything else needed to allow this, for example, an entry in the provisioning profile? So far I have not seen any evidence that my configuration is incorrect and according to my research, this should work as is
entitlements.mac.plist:
<!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.allow-jit</key>
<true/>
<key>com.apple.security.cs.allow-dyld-environment-variables</key>
<true/>
<key>com.apple.security.cs.disable-library-validation</key>
<true/>
<key>com.apple.security.network.client</key>
<true/>
<key>com.apple.security.network.server</key>
<true/>
<key>com.apple.security.files.user-selected.read-write</key>
<true/>
<key>com.apple.security.cs.allow-unsigned-executable-memory</key>
<true/>
<key>com.apple.security.device.audio-input</key>
<true/>
<key>com.apple.security.device.camera</key>
<true/>
<key>CFBundleURLTypes</key>
<array>
<dict>
<key>CFBundleTypeRole</key>
<string>Editor</string>
<key>CFBundleURLName</key>
<string>my-protocol-name-here</string>
<key>CFBundleURLSchemes</key>
<array>
<string>my-protocol-name-here</string>
</array>
</dict>
</array>
</dict>
</plist>
I fixed the issue by adding the protocol inside electron-builder setup instead of adding directly in entitlements.mac.plist:
protocols: {
name: "foo",
schemes: ["foo"]
},

Microsoft Endpoint Manager Error deploying Preference File to Supervised MacBook

When deploying a preference file (".plist") through MS Endpoint Manager ("Intune") to a supervised MacBook Pro I get a an error:
Setting name: ConfigurationXmlPcl
Error codes: -2016341103 and 0x87d11391
This is the preference file I am using:
<?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>EnableMediaRouter</key>
<false />
<key>HomepageLocation</key>
<string>https://somesubdomain.sharepoint.com</string>
<key>NewTabPageSearchBox</key>
<string>redirect</string>
<key>PasswordManagerEnabled</key>
<false />
<key>PasswordProtectionChangePasswordURL</key>
<string>https://passwordreset.somedomain.com</string>
</dict>
</plist>
Tried to search for the setting and the error codes, but could not find anything related to Intune.
Any push in the right direction is much appreciated.
I was having the same issue and error codes except trying to push Zoom configurations.
I was able to resolve this by stripping the all additional tags (, , etc) and leaving only values. For example my edited .plist looked like this:
<key>ZAutoSSOLogin</key>
<false/>
<key>ZSSOHost</key>
<string>******.zoom.us</string>
Also I had the 'Preference domain name'/App ID wrong and had to correct it (had entered us.zoom.voice and the actual App ID for Zoom for Mac is us.zoom.xos.)
Hope this helps.
How have you managed to define into your preference file the "PackageRecommand" settings with all the others.
I know that MS says to no include any dict bracket but i do not see any other ways to get all settings, and I followed the Zoom article.
For example, my preference file is looking as below
<dict>
<key>nogoogle</key>
<true/>
<key>nofacebook</key>
<true/>
<key>NoSSO</key>
<true/>
<key>KeepSignedIn</key>
<true/>
<key>zAutoUpdate</key>
<true/>
<key>EnableSilentAutoUpdate</key>
<true/>
<key>AlwaysCheckLatestVersion</key>
<true/>
<key>disableDaemonInstall</key>
<false/>
<key>Login_Domain</key>
<string>CorrectDomainName</string>
<key>EnableMirrorEffect</key>
<true/>
<key>PackageRecommend</key>
<dict>
<key>ZDisableVideo</key>
<false/>
<key>DisableComputerAudio</key>
<false/>
<key>MuteWhenLockScreen</key>
<true/>
<key>ZAutoJoinVoip</key>
<false/>
<key>AudioAutoAdjust</key>
<true/>
<key>ZDualMonitorOn</key>
<false/>
<key>ZAutoFullScreenWhenViewShare</key>
<false/>
<key>ZAutoFitWhenViewShare</key>
<true/>
<key>zDisableAnnotation</key>
<false/>
<key>EnableDoNotDisturbInSharing</key>
<true/>
<key>DisableWhiteboard</key>
<false/>
<key>EnableShareVideo</key>
<true/>
<key>EnableShareAudio</key>
<true/>
<key>FullScreenWhenJoin</key>
<false/>
<key>AutoHideToolbar</key>
<false/>
<key>ZUse720PByDefault</key>
<false/>
<key>zRemoteControllAllApp</key>
<true/>
<key>ConfirmWhenLeave</key>
<true/>
<key>DisableScreenShare</key>
<true/>
<key>SetSuppressBackgroundNoiseLevel</key>
<string>0</string>
</dict>
</dict>

MAC OS Sierra - Run app at startup?

I am trying to set an application (*.app) to run at startup in MAC OS Sierra. I know that a plist has to be added to the following folder,
/Library/LaunchAgents
I created a plist with the code below. It needs to run as admin at startup every time MAC OS is loaded. But it is not working. The app does not start at startup. How to make the app work at startup?
<?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>Label</key>
<string>com.myapp.startup</string>
<key>Program</key>
<string>/Applications/myapp.app/Contents/MacOS/myapp</string>
<key>RunAtLoad</key>
<true/>
<key>KeepAlive</key>
<false/>
<key>LaunchOnlyOnce</key>
<true/>
<key>StandardOutPath</key>
<string>${installdir}/startup.stdout</string>
<key>StandardErrorPath</key>
<string>${installdir}/startup.stderr</string>
<key>UserName</key>
<string>admin</string>
<key>GroupName</key>
<string>admin</string>
<key>InitGroups</key>
<true/>
</dict>
</plist>

What is the entitlement for a Mac App to use CoreWLAN to access Wi-Fi in the Sandbox?

Bluetooth for e.g. is com.apple.security.device.bluetooth.
Apple does not currently document this particular entitlement in the Entitlement Key Reference
As of WWDC 18 and CoreWLAN.framework was allowed into the sandbox in both macOS 10.13 and 10.14. But note that the location entitlement is required to get the BSSID information from a Wi-Fi Scan.
The specific entitlements for older versions of macOS can be found by using the codesign tool:
$ codesign -d --entitlements :- /System/Library/PrivateFrameworks/CoreWLANKit.framework/Versions/A/XPCServices/WiFiProxy.xpc/Contents/MacOS/WiFiProxy
Executable=/System/Library/PrivateFrameworks/CoreWLANKit.framework/Versions/A/XPCServices/WiFiProxy.xpc/Contents/MacOS/WiFiProxy
<?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.wifi.anqp</key>
<true/>
<key>com.apple.wifi.associate</key>
<true/>
<key>com.apple.wifi.events</key>
<true/>
<key>com.apple.wifi.events.private</key>
<true/>
<key>com.apple.wifi.ibss</key>
<true/>
<key>com.apple.wifi.priority.id</key>
<string>wifi_menu_extra</string>
<key>com.apple.wifi.priority.internal</key>
<true/>
<key>com.apple.wifi.scan</key>
<true/>
<key>com.apple.wifi.set_power</key>
<true/>
<key>com.apple.wifi.tether.browse</key>
<true/>
<key>com.apple.wifi.tether.connect</key>
<true/>
<key>keychain-access-groups</key>
<array>
<string>apple</string>
</array>
</dict>
</plist>

how to run an app using launchd?

I need to run an mac app daily without any user interaction using launchd, i created a .plist file and pasted it in /system/LaunchDaemons and after that how to execute the plist file, can any one please tell me the step by step working process on how to work with launchd it will helpful for me, I pasted my .plist file below.
<?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>RunAtLoad</key>
<true/>
<key>KeepAlive</key>
<true/>
<key>Label</key>
<string>myapp.restart</string>
<key>ProgramArguments</key>
<array>
<string>/Applications/myapp.app</string>
</array>
<key>StartCalendarInterval</key>
<dict>
<key>Hour</key>
<integer>16</integer>
<key>Minute</key>
<integer>40</integer>
</dict>
</dict>
</plist>
You'll probably need the name of your program like this rather than ProgramArguments:
<key>Program</key>
<string>/Applications/myapp.app/Contents/MacOS/myapp</string>

Resources