Posts

Post marked as solved
2 Replies
296 Views
Hi, I am trying to get a list of available WiFi networks for a sandboxed macOS app: CWInterface *wifi = [[CWWiFiClient sharedWiFiClient] interface]; NSError *err; NSSet *scanset = [wifi scanForNetworksWithSSID:nil error:&err]; // scanset is always empty (but not nil), no error is writting to "err" With macOS Sonoma the code always returns an empty list (with older macOS version it works fine). I already added Location permission (as described here: https://developer.apple.com/forums/thread/732431). Getting the currently connected WiFi SSID (using [CWInterface interface].ssid), as well as connecting to a WiFi network works. How can I get a list of available WiFi SSIDs in macOS Sonoma? Regards,
Posted
by HMoc.
Last updated
.
Post marked as solved
2 Replies
9.2k Views
Hi,While trying to setup Apple Pay for our website I was stopped by the certificate generation step:Merchant Identity Certificate(You need to accept the agreement 'Apple Pay Platform Web Merchant Terms and Conditions'.)But where can I find this agreement? I checked the contracts section but nothing is there.Regards,
Posted
by HMoc.
Last updated
.
Post not yet marked as solved
2 Replies
1.6k Views
Hi, When submitting manually signed macOS apps then this warning is shown after submission: WARNING ITMS-90889: ""Cannot be used with TestFlight because the bundle at is missing a provisioning profile. Main bundles are expected to have provisioning profiles in order to be eligible for TestFlight."" I use the following commands for signing the app: export VM_CERTIFICATE="Apple Distribution" codesign --deep -f -s "$VM_CERTIFICATE" -v --entitlements "$VM_SOURCE_PATH/macos/App.entitlements" "$VM_APPNAME" productbuild --component "$VM_APPNAME" /Applications --sign "3rd Party Mac Developer Installer: MyCompany" outmac.pkg How can I get rid of the warning, so that the package can be used in TestFlight? Regards,
Posted
by HMoc.
Last updated
.
Post not yet marked as solved
0 Replies
756 Views
Hi, I have an iOS app which controls and monitors 3rd party Bluetooth devices. When the app is in background then background BLE mode is used. On Android there are means for showing customized information in the status bar (e.g. a device's current measurement value). On iOS the only means to present information to the user when the app is in background mode is by means of push notifications (e.g. when the device gets disconnected then send a push notification). But I see no way to present the current measurement value. Have I overlooked something, or is it really not possible to present the user additional information in the status bar and/or as some kind of "always visible" overlay icon when the app is in background? Regards,
Posted
by HMoc.
Last updated
.
Post marked as solved
3 Replies
1.5k Views
Hi,Is it possible to distribute an app which is bundled with a custom DAL plugin (CoreIOMedia plugin) in the Mac App Store? For installations outside the app store the installer copies the plugin to the "/Library/" folder.Regards,
Posted
by HMoc.
Last updated
.
Post not yet marked as solved
1 Replies
1.6k Views
Hi, I have written a DAL virtual webcam plugin which works fine with all apps (Zoom, OBS, ...) except Apple QuickTime. Other 3rd party virtual webcams show up in QuickTime, for instance the OBS virtual cam plugin: https://github.com/obsproject/obs-studio/tree/dde4d57d726ed6d9e244ffbac093d8ef54e29f44/plugins/mac-virtualcam/src/dal-plugin My first intention was that it has something to do with code signing, so I removed the signature from OBS virtual cam plugin but it kept working in QuickTime. This is the source code of my plugin's entry function: #include <CoreFoundation/CoreFoundation.h> #include "plugininterface.h" extern "C" void *TestToolCIOPluginMain(CFAllocatorRef allocator, CFUUIDRef requestedTypeUUID) { // This writes to a log file in /tmp/logfile.txt but is NEVER called from QuickTime: Logger::write("Called TestToolCIOPluginMain"); if (!CFEqual(requestedTypeUUID, kCMIOHardwarePlugInTypeID)) return nullptr; return VCam::PluginInterface::create(); } And the plugin's Info.plist (almost the same as OBS virtual cam's one): <?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>CFBundleDevelopmentRegion</key> <string>English</string> <key>CFBundleExecutable</key> <string>TestDriverCIO</string> <key>CFBundleIdentifier</key> <string>com.test.cmio.DAL.VirtualCamera</string> <key>LSMinimumSystemVersion</key> <string>10.13</string> <key>CFBundleInfoDictionaryVersion</key> <string>6.0</string> <key>CFBundleName</key> <string>TestDriverCIO</string> <key>CFBundlePackageType</key> <string>BNDL</string> <key>CFBundleShortVersionString</key> <string>3.0.0</string> <key>CFBundleSignature</key> <string>????</string> <key>CFBundleVersion</key> <string>3.0.0</string> <key>CFBundleSupportedPlatforms</key> <array> <string>MacOSX</string> </array> <key>CFPlugInFactories</key> <dict> <key>AAAAAAAA-7320-5643-616D-363462697402</key> <string>TestToolCIOPluginMain</string> </dict> <key>CMIOHardwareAssistantServiceNames</key> <array> <string>com.test.cmio.VCam.Assistant</string> </array> <key>CFPlugInTypes</key> <dict> <key>30010C1C-93BF-11D8-8B5B-000A95AF9C6A</key> <array> <string>AAAAAAAA-7320-5643-616D-363462697402</string> </array> </dict> </dict> </plist> Interestingly "TestToolCIOPluginMain" is never called (the logger never writes an output) when starting QuickTime and the camera is not shown in QuickTime. Is there something special required to get the DAL plugin to show up in QuickTime? What am I missing here? Regards,
Posted
by HMoc.
Last updated
.
Post not yet marked as solved
1 Replies
704 Views
Hi, Is there a C equivalent for the Swift/Objective-C version of the ImageCaptureCore: https://developer.apple.com/documentation/imagecapturecore?language=objc ? Regards,
Posted
by HMoc.
Last updated
.
Post not yet marked as solved
0 Replies
485 Views
Hi, In the TestFlight macOS builds table I see "-" invites, installs, and all other columns are "-" as well. I definitely know that I have installed the app and I also received feedback from several testers that they have installed the app. Why is the table still showing "-" in all columns? Regards,
Posted
by HMoc.
Last updated
.
Post marked as solved
1 Replies
954 Views
Hi, I have a Qt app (https://www.qt.io/) which contains the main app executable file, Qt frameworks, and Qt plugins bundled. Signing the app this way works fine and the app is successfully published on the Mac App Store (the "deep" flag is only used for testing): codesign --deep -f -s "Apple Distribution" -v --entitlements "MyApp.entitlements" "MyApp.app" Entitlements: <?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.files.user-selected.read-write</key> <true/> <key>com.apple.security.network.client</key> <true/> <key>com.apple.security.network.server</key> <true/> <key>com.apple.security.files.downloads.read-write</key> <true/> <key>com.apple.security.device.audio-input</key> <true/> <key>com.apple.security.device.serial</key> <true/> <key>com.apple.security.files.bookmarks.app-scope</key> <true/> <key>com.apple.security.personal-information.location</key> <true/> <key>com.apple.security.app-sandbox</key> <true/> </dict> </plist> But as soon as I change the entitlements file as follows, the app crashes with a "Code signature invalid" error: <?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.files.user-selected.read-write</key> <true/> <key>com.apple.security.network.client</key> <true/> <key>com.apple.security.network.server</key> <true/> <key>com.apple.security.files.downloads.read-write</key> <true/> <key>com.apple.security.device.audio-input</key> <true/> <key>com.apple.security.device.serial</key> <true/> <key>com.apple.security.files.bookmarks.app-scope</key> <true/> <key>com.apple.security.personal-information.location</key> <true/> <key>com.apple.security.app-sandbox</key> <true/> <key>com.apple.application-identifier</key> <string>TEAM_ID.com.myapp</string> <key>com.apple.developer.team-identifier</key> <string>TEAM_ID</string> </dict> </plist> Running codesign -dvvv --entitlement :- ./MyApp.app on the signed app packages shows the correct entitlement. I can upload both app versions to the Mac App Store without problems. The modified entitlements file is required for enabling TestFlight testing in iTunes Connect. What could be the reason for the crash when using the modified entitlements file? Regards,
Posted
by HMoc.
Last updated
.
Post marked as solved
2 Replies
897 Views
Hi, Is there a way to get access to the user's document directory, except the usual way of asking for access using "com.apple.security.files.user-selected.read-write"? I am looking for something like "com.apple.security.files.downloads.read-write" but with access to the documents directory instead. Regards,
Posted
by HMoc.
Last updated
.
Post marked as solved
6 Replies
2.5k Views
Hi,I have an application App A which shares data with a macOS DAL plugin using IPC (shared memory). The plugin is loaded in another 3rd party App B:App A &lt;--- data ---&gt; Plugin / App BNow I am looking for a way to get this working with App A being sandboxed. The App Groups Entitlement (https://developer.apple.com/documentation/bundleresources/entitlements/com_apple_security_application-groups) seems to be the correct tool for allowing IPC between two applications. But the problem with my architecture is, that the communication is between App A (whose identifier is known) and a plugin (identifier is known) and a third party App B (identifier is not known).Is there a way to communicate between the sandboxed App A and the plugin running in App B without knowing App B's identifier?Regards,P.S: I am targeting the app store with App A.
Posted
by HMoc.
Last updated
.