Textures not compressing when building or switching platforms

Hi all,

I recently upgraded a project from 2017.4.4f1 to 2018.2.19f1 to get some significant performance gains, but when switching to build for different platforms I’m having serious problems. When swapping to a different platform, Unity re-processes all of the assets and in the editor they show up as “1024x1024 (Not yet compressed)” - however, when I try and build it fails with this error:

Initially my iOS builds were showing up way larger than they should, and I realised that Unity just refused to compress to PVRTC format at all so I checked “Compress assets on import” and deleted my Library folder which fixed that issue. However, this new issue basically stops me from switching platforms and re-compiling which is essential for me.

My last build was for iOS which uses the PVRTC textures, so it seems to be holding onto those and not realising that the cached texture is for a different target platform. I’ve tried using both the local cache server and running the unity-cache-server daemon manually but that still gives me the same problem (which is odd because that’s running with an empty cache).

This issue is happening on both my Macbook and Windows desktop, so I’m less inclined to believe that it’s isolated to a configuration option on my end.

Any ideas for debugging or something obvious I may be missing?

hello, i got this problem on 2018.3.0f2 on Mac as well… would love to have a solution too

It’s issue 1051687 or 1114729. See iOS 12 large memory usage - Unity Engine - Unity Discussions

I am tracking this and a few other issues in Unity 2018.3 here

That does seem to be the same issue, although I’m not seeing an actual bug tracking report for this issue specifically. Turns out it actually affects every platform and is not limited to only iOS, so every time I need to make a new build I have to reimport all of my asset folders which takes anywhere from 20m to 2h depending on the platform.

A Cache Server often speeds up this process significantly, if the problem is switching platforms:
https://docs.unity3d.com/Manual/CacheServer.html

I’ve been using the cache server for over a year and had no problems until I upgraded to 2018.2. The reason I have to reimport manually is because Unity fails to even attempt to fetch the textures that have been compressed for each platform and instead keeps the previous platform’s textures when building. It seems to be an issue that a few people are experiencing according to the thread linked by sharkapps above.

I did notice something interesting last night though - I cleared the Library folder and all of the Unity caches (including the cache server folder) and when I switch platforms within the editor I don’t experience the bug at all. However, if I close the project and use Unity Hub to open it with a new platform then the issue re-appears and doesn’t go away until I clear the caches again.

It seems that an update to Unity Hub that happened in December may have started causing this issue with their fast-loading system for platforms. I haven’t tested too deeply but it fixed the issue on both my desktop and laptop so far.

After working for 2 days on both my machines I can confirm this issue only happens when you use Unity Hub’s “Advanced Open” feature to swap the platform when opening the project. I’ve been using the Switch Platform feature exclusively inside the editor and not seen this error since.

For anyone else having this issue - delete the Library folder, delete the Unity cache folders (including Cache Server) and then open the project by clicking on it in Unity Hub. If you accidentally open it using the Advanced Open feature you’ll have to clear the caches again.

Never mind - I’m pretty much at a loss as to the cause of this issue but I just tried to make an iOS build and magically the error returned forcing me to waste 1 hour re-importing all of the assets again.

This seems like the exact same issue so I’ve added my comments to it and suggest anyone encountering this bug do the same: https://issuetracker.unity3d.com/issues/etc1-compressed-textures-are-not-supported-when-publishing-to-standalone-error-on-build-after-switching-platform-from-android

We hit this issue and have sent a repro to Unity. In our case, we found that UnityIAP is calling AssetDatabase.Refresh() before the async platform switch that the Files > Build Settings dialog now uses completes fully, leading to the symptoms described. A temporary work around is to switch platforms by calling EditorUserBuildSettings.SwitchActiveBuildTarget instead of using the File > Build Settings dialog - this still works ok.

1 Like

I have the same problem but it is a little different. When I switch the platform to standalone, there is a chance that the build will fail and throw some errors mentioning that the compression format of some images is not supported. I workaround this issue by checking or unchecking the setting of “override to standalone” in the import setting of these images, that is to say, if it was checked then uncheck it, vice versa. So I am suspecting that the compression actually didn’t work. And I also have noticed that these errors only happened on certain images, other images has never caused the build to fail.

1 Like

Hey, my team has run into what sounds like the same issue, and it’s caused a lot wasted time dealing with broken builds. Is there a defect filed in the unity issue tracker?

I found that the images that were causing build to fail when switching platform were all “power-of-two” images. Namely, only images that are “512x512” or “1024x1024” etc are causing this issue. As I had said earlier, I fixed this issue by toggling the “override to standalone” in the import setting, which implied that Unity failed to compress these images when switching platform from mobile (Android or iOS) to standalone.

Issue 1117430 was added to the bug tracker for this, but I don’t think it has been made public. The issue is still unresolved in a mainline release as of today I believe.

Just to chime in, I get this also when swapping texture compression overrides on android, or moving between x86/Arm builds. I need to reimport all textures manually whenever swapping.

I can confirm we also get this issue. For a long time we thought light baking on windows platform was incompatible with android as our bake results were always messed up by the platform switch, turns out unity just wasnt re importing the textures.

@ - please fix this issue as soon as possible as it is a major headache and a time waster. Asset bundles already taking too long to build and I can’t operate like this in an agile environment. I am using Unity 2018.2.20f1 and for technical reasons, we can’t update to versions > 2018.2.

I have it here in 2017 lts latest update !! any help?

Just jumping in again as its been a long time without a unity response and this still happens in the latest version

1 Like

Also still exists in 2019.1

1 Like

hi,
plaise help me same error but in unity 2019.3.0a5

Debug log :

DXT1 compressed textures are not supported when publishing to iPhone
Resources/unity_builtin_extra
Included from scene:
0 Unity 0x000000010f08213f _Z13GetStacktracei + 95
1 Unity 0x0000000111849a54 _Z17DebugStringToFileRK21DebugStringToFileData + 356
2 Unity 0x000000010e61d572 _Z23VerifyFeatureDeploymentP6Object19BuildTargetPlatform + 2082
3 Unity 0x000000010e613209 _Z16VerifyDeploymentP6Object19BuildTargetPlatform + 1273
4 Unity 0x000000010ef2fdcc _ZN17PersistentManager9WriteFileERKN4core12basic_stringIcNS0_20StringStorageDefaultIcEEEEiPK9WriteDataiRK15GlobalBuildDataPF23VerifyWriteObjectResultP6Object19BuildTargetPlatformE20BuildTargetSelection24TransferInstructionFlagsR16WriteInformationPK18InstanceIDResolverNS_9LockFlagsE + 3084
5 Unity 0x000000010ef2f093 _ZN17PersistentManager9WriteFileERKN4core12basic_stringIcNS0_20StringStorageDefaultIcEEEEiPK9WriteDataiRK15GlobalBuildDataPF23VerifyWriteObjectResultP6Object19BuildTargetPlatformE20BuildTargetSelection24TransferInstructionFlagsPK18InstanceIDResolverNS_9LockFlagsE + 179
6 Unity 0x000000010e61235b _Z20WriteSharedAssetFileiRKN4core12basic_stringIcNS_20StringStorageDefaultIcEEEERKNSt3__13mapIi10BuildAssetNS6_4lessIiEENS6_9allocatorINS6_4pairIKiS8_EEEEEERK19BuildUsageTagGlobal20BuildTargetSelectionPFviR31LocalSerializedObjectIdentifierPvE24TransferInstructionFlagsRNS6_3setI12ResourceFileNS9_ISU_EENSB_ISU_EEEER10vector_mapIi26SerializedObjectIdentifierSA_NSB_INSC_IiS10_EEEEE + 1099
7 Unity 0x000000010e613597 _Z23CompileSharedAssetsFileiRKN4core12basic_stringIcNS_20StringStorageDefaultIcEEEES5_RKNSt3__13mapIi10BuildAssetNS6_4lessIiEENS6_9allocatorINS6_4pairIKiS8_EEEEEERK19BuildUsageTagGlobalRK20BuildTargetSelection24TransferInstructionFlagsRNS6_3setI12ResourceFileNS9_ISR_EENSB_ISR_EEEER10vector_mapIi26SerializedObjectIdentifierSA_NSB_INSC_IiSX_EEEEERN14BuildReporting11BuildReportE + 135
8 Unity 0x000000010e62b966 ZL15BuildPlayerData24BuildTargetPlatformGroup19BuildTargetPlatform18BuildPlayerOptionsRK16BuildCompressionNSt3__16vectorIN4core12basic_stringIcNS7_20StringStorageDefaultIcEEEENS5_9allocatorISB_EEEEP20AssetBundleBuildDataRNS6_I17EditorSceneBackup13stl_allocatorISH_L18MemLabelIdentifier116ELi16EEEE18ScriptingObjectPtr8Vector2fRN14BuildReporting11BuildReportERKSB_PNSP_20BuiltAssetBundleInfoEST + 12038
9 Unity 0x000000010e600753 Z13DoBuildPlayerRK16BuildPlayerSetupRNSt3__16vectorI17EditorSceneBackup13stl_allocatorIS4_L18MemLabelIdentifier116ELi16EEEEN4core12basic_stringIcNSA_20StringStorageDefaultIcEEEENS3_ISE_NS2_9allocatorISE_EEEEbRN14BuildReporting11BuildReportEPNSI_20BuiltAssetBundleInfoERKSE + 3587
10 Unity 0x000000010e605196 _Z11BuildPlayerRK16BuildPlayerSetupRN14BuildReporting11BuildReportE + 4102
11 Unity 0x000000010f74fa94 _Z47BuildPipeline_CUSTOM_BuildPlayerInternalNoCheckP36ScriptingBackendNativeArrayPtrOpaqueP37ScriptingBackendNativeStringPtrOpaqueS2_24BuildTargetPlatformGroup19BuildTargetPlatform18BuildPlayerOptionsh + 1204
12 (Mono JIT Code) (wrapper managed-to-native) UnityEditor.BuildPipeline:BuildPlayerInternalNoCheck (string[ ],string,string,UnityEditor.BuildTargetGroup,UnityEditor.BuildTarget,UnityEditor.BuildOptions,bool)
13 (Mono JIT Code) [BuildPlayerWindowBuildMethods.cs:170] UnityEditor.BuildPlayerWindow/DefaultBuildMethods:BuildPlayer (UnityEditor.BuildPlayerOptions)
14 (Mono JIT Code) [BuildPlayerWindowBuildMethods.cs:96] UnityEditor.BuildPlayerWindow:CallBuildMethods (bool,UnityEditor.BuildOptions)
15 (Mono JIT Code) [BuildPlayerWindow.cs:913] UnityEditor.BuildPlayerWindow:GUIBuildButtons (UnityEditor.Modules.IBuildWindowExtension,bool,bool,bool,UnityEditor.Build.BuildPlatform)