今天项目换了台新mini打iOS版本的ab包,真机上出现资源读取失败并有如下报错
The file can not be loaded because it was created for another build target that is not compatible with this platform. Please make sure to build AssetBundles using the build target platform that it is used by. File's Build target is: 13
查了下BuildTarget的枚举值,13的是Android,iOS的是9。
明明打的是iOS,怎么会是Android呢?
确认下BuildSetting里的Platform设置无误后,再重新打了一次,还是失败!!!
经查阅资料,发现Unity有时候会缓存上次打包时的平台设置(应该是引擎的Bug,我的是2017版本),本着试一试的心态,在打包代码前面添加如下代码:
Debug.Log("当前打包平台" + EditorUserBuildSettings.activeBuildTarget)
if(EditorUserBuildSettings.activeBuildTarget != BuildTarget.iOS)
{
Debug.Error("打包平台设置错误");
return;
}
这段代码主要在于调用一次EditorUserBuildSettings.activeBuildTarget,刷新当前的平台设置。
重新打包,搞定!!!
参考链接:
https://stackoverflow.com/questions/38437310/asset-bundle-is-not-loaded#