I developed an app for visionOS in Xcode 16 (the beta one). The app's deployment target is set to visionOS 1.2 in Xcode, which is also displayed in the app metadata in App Store Connect. Both debug and release builds deployed to a couple of authorised devices work. However, a build deployed to TestFlight refused to install, saying that VisionOS 2.0 is required. When I hacked a build with Xcode 15, it worked. Does it mean I cannot build apps for visionOS versions before 2.0 with Xcode 16?
Post
Replies
Boosts
Views
Activity
I'm developing an app for Apple Vision Pro. The asset directory in my project is small:
$ du -sh Assets.xcassets
292K Assets.xcassets
However, after build assets in the resulting bundle are 15MB!
$ du -sh MyApp.app/Assets.car
15M MyApp.app/Assets.car
That's two orders of magnitude! Considering that binaries of the app are a couple of MBs, the app bundle is basically all assets! WTF?! It seems somewhere in build process several very large assets are generated:
> assetutil --info Assets.car | grep "SizeOnDisk" | sed 's/^[[:space:]]*"SizeOnDisk" : //' | sed 's/,$//' | sort -rn | head
2860982
2860982
2859215
2749277
2658939
1049666
163374
163374
136454
79949
The top one has this in the output of assetutil:
{{
"MipLevel" : 0,
"RenditionName" : "avp_app_icon_frame.png",
"SHA1Digest" : "1F511AC99BA7EE4B7735FDC84F64BA1CDCB044734ED7D3A4AEC1F07AEA90B969",
"SizeOnDisk" : 2860982,
"Texture" : {
"AssetType" : "Texture Data",
"Compression" : "lzfse",
"Encoding" : "ARGB",
"PixelHeight" : 1024,
"PixelWidth" : 1024,
"Rowbytes" : 4096,
"Texture Pixel Format" : "R32 Float"
}
}
Full 32bpp basically w/ lz compression?! Why? What's going on? How do I turn this off?