Xamarin iOS构建生成空白图标 部署至iPhone时报找不到文件错误
Xamarin.Forms iOS构建空白图标问题解答
1. 空白图标是否为构建过程生成
是。这些0KB的空白图标是Xamarin.iOS构建流程中actool(资产目录编译器)生成的临时占位产物,生成路径为你提到的obj\iPhoneSimulator\Debug\actool\bundle和bin\iPhoneSimulator\Debug\DaemonDictionary.iOS.app目录。
正常构建流程中,这些占位文件会被Assets.xcassets中配置的有效图标覆盖,若覆盖流程失败就会残留0KB空白文件,部署真机时会触发文件找不到的错误。
2. Assets.xcassets图标是否有文件名要求
Assets.xcassets对图标源文件的文件名没有强制要求,但存在两类隐形规则:
- AppIcon下每个槽位对上传的图标有严格的像素尺寸、倍数要求,若上传的图标尺寸与槽位要求不匹配,或槽位空缺,
actool会生成对应尺寸的空白占位文件 - 若你的Info.plist中保留了已废弃的旧版图标配置项
CFBundleIconFiles,该数组中列出的图标文件名如果在项目中不存在,构建工具会自动生成同名0KB空白文件
3. 触发空白图标生成的常见配置问题
- Info.plist残留无效配置:检查Info.plist文件,删除
CFBundleIconFiles等非资产目录模式的旧图标配置,仅保留XSAppIconAssets指向你的Assets.xcassets/AppIcon路径即可 - AppIcon槽位不完整:打开Assets.xcassets下的AppIcon,确认所有对应设备类型的槽位都上传了符合尺寸要求的图标,没有空缺项
- 项目文件配置冲突:打开iOS项目的
.csproj文件,删除多余的<ImageAsset>、<BundleResource>条目指向不存在的图标文件,避免重复的AppIcon配置 - 构建缓存损坏:若以上配置均无问题,删除项目根目录下的
obj、bin文件夹,若使用Windows连接Mac构建,同时清空Mac主机~/Library/Caches/Xamarin/mtbs目录下的对应项目缓存,重新构建即可解决问题
内容的提问来源于stack exchange,提问作者Matt R
相关产品推荐
相关产品推荐

