Drag and drop of disks

I have a macOS app that used to accept drag and drop of disks as well as DMG files.

Since Catalina, it does not accept disks any more, but DMG files still work as before.

I tried full disk access, but the behavior didn't change.


Here's an excerpt of my plist file:


<key>CFBundleDocumentTypes</key>
<array>
<dict>
<key>CFBundleTypeExtensions</key>
<array>
<string>dmg</string>
</array>
<key>CFBundleTypeName</key>
<string>dmg</string>
<key>CFBundleTypeRole</key>
<string>Shell</string>
<key>LSHandlerRank</key>
<string>Default</string>
</dict>
<dict>
<key>CFBundleTypeName</key>
<string>disk</string>
<key>CFBundleTypeOSTypes</key>
<array>
<string>disk</string>
</array>
<key>CFBundleTypeRole</key>
<string>Shell</string>
<key>LSHandlerRank</key>
<string>Default</string>
</dict>
</array>


Any ideas?

Replies

Very interesting... I had a similar issue:


Opened two different scenes of my app in Mac Catalina and when dragging an item from one window


1) If I drop the item in another scene, in the destination

- (BOOL) dropInteraction:(UIDropInteraction *)interaction canHandleSession:(id<UIDropSession>)session API_AVAILABLE(ios(11.0)) {

- (void) dropInteraction:(UIDropInteraction *)interaction performDrop:(id<UIDropSession>)session API_AVAILABLE(ios(11.0)) {

...

the UIDropSession is always nil.



2) If I drop the item in the same exact window from where I started the dragging the <UIDropSession> object is NOT nil.


3) Everything works well on iPadOS.