Post

Replies

Boosts

Views

Activity

Means for showing status when iOS app is in background
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,
0
0
1k
Nov ’22
How to sign macOS app with bundled frameworks for TestFlight
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,
1
0
1.4k
Dec ’21
Make DAL virtual camera plugin to show up in QuickTime
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,
1
0
2.1k
Feb ’22
WARNING ITMS-90889 TestFlight
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,
2
0
2.2k
Feb ’23
List available WiFi networks in Sonoma
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,
2
0
1.2k
Mar ’24
TestFlight macOS builds: 0 invites, 0 installs
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,
Replies
0
Boosts
0
Views
708
Activity
Dec ’21
Means for showing status when iOS app is in background
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,
Replies
0
Boosts
0
Views
1k
Activity
Nov ’22
How to sign macOS app with bundled frameworks for TestFlight
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,
Replies
1
Boosts
0
Views
1.4k
Activity
Dec ’21
ImageCaptureCore equivalent for C/C++
Hi, Is there a C equivalent for the Swift/Objective-C version of the ImageCaptureCore: https://developer.apple.com/documentation/imagecapturecore?language=objc ? Regards,
Replies
1
Boosts
0
Views
1k
Activity
Feb ’22
Make DAL virtual camera plugin to show up in QuickTime
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,
Replies
1
Boosts
0
Views
2.1k
Activity
Feb ’22
Use IPC for excuting function in partner app
Hi, I have two iOS apps in the same app group. Now App 1 wants to execute a method in App 2 via IPC: App 1 -> call method test() via IPC on App 2 -> App 2 returns the result to App 1. Is this possible? Regards,
Replies
1
Boosts
0
Views
952
Activity
May ’24
Where are the Merchant Terms and Conditions
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,
Replies
2
Boosts
0
Views
12k
Activity
Sep ’23
Distribution of app with DAL plugin in app store
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,
Replies
3
Boosts
0
Views
1.8k
Activity
May ’22
macOS entitlement for accessing Documents directory
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,
Replies
2
Boosts
0
Views
1.3k
Activity
Nov ’21
WARNING ITMS-90889 TestFlight
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,
Replies
2
Boosts
0
Views
2.2k
Activity
Feb ’23
List available WiFi networks in Sonoma
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,
Replies
2
Boosts
0
Views
1.2k
Activity
Mar ’24
Tax information missing
Hi, Since a few weeks, the main App Store Connect shows this message: Clicking on "Click" redirects to the main page. When I manually go to the "Business" page then all contracts, tax information are marked as "Complete" or "Active". Is this a bug, or do I miss something? Regards,
Replies
3
Boosts
4
Views
484
Activity
Oct ’24