I have run into an issue where I am unable to access assets tagged for use in Apple’s On-Demand Resource feature through a Xamarin.iOS app, but only when run on the simulator. This only occurred after updating my environment. I was previously on Visual Studio for Mac version 8.3.9 and Xcode version 11.2.1, and my app was able to access ODR resources without issue on both simulator and physical device.
Now I am on Visual Studio version 8.4.2 and Xcode version 11.3.1, and my app is not functioning correctly. However, I am only seeing issues when running on an iOS simulator (for any iOS version). I can build and run on a physical device (running iOS version 13.0)and am seeing no problems.
I am creating and tagging an asset for use in Apple ODR through Visual Studio for Mac. I have a ZIP file that I add into my app’s iOS project directly as a resource. In its properties, I set the BuildAction as BundleResource, select “Do Not Copy” to output directory, and give it an On-Demand Resource tag.
When I build my solution, I can see this ZIP file nested in a *.assetpack directory under bin/iPhone/Debug/device-builds/iphone12.3-13.0/OnDemandResources
. I believe it is supposed to be put in bin/iPhone/Debug/OnDemandResources/
instead. When I run the code that calls NSBundleResourceRequest
’s BeginAccessingResourcesAsync
, it seemingly does nothing. I see the following error message in the Application Output debug window in VS after that function is called:
Begin: Request 0x0x600002566100 response: Error: Error Domain=NSCocoaErrorDomain Code=4994 "The requested application data doesn’t exist." UserInfo={NSLocalizedFailureReason=InvalidTag}
There’s no other error or exception being thrown. When I try to get the resource path from the NSBundleResourceRequest.Bundle
object, it expectedly returns null.
Any reason why this is happening, and why this is only occurring on the iOS simulator and not on a physical device? I haven’t been able to find anything useful when searching for the above error message. Did something change in Visual Studio regarding how bundled assets are built in Debug mode?