XCode9中在提交ipa包到APP Store的验证阶段提示了这个错误
解决方法:
1.确认需要的所有Icon尺寸都已添加,在IOS11中需要提交1024×1024的尺寸。不然苹果会发邮件给你的,可能会不通过。
2.如果验证提示这个错误,并且在模拟器中安装APP也不显示Icon的话。那你很可能遇到了跟我一样的问题。XCode9和CocoaPods的兼容问题。
如果是这个问题,解决如下:
1.更新到最新的CocoaPods。(但我更新了还是没有效果)
2.我最终有效的解决方案,修改CocoaPods里的这个文件
两种修改方案:
1.自动修改
1)在Podfile 添加如下代码.
post_install do |installer|
copy_pods_resources_path = "Pods/Target Support Files/Pods-[工程名]/Pods-[工程名]-resources.sh"
string_to_replace = '--compile "${BUILT_PRODUCTS_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}"'
assets_compile_with_app_icon_arguments = '--compile "${BUILT_PRODUCTS_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" --app-icon "${ASSETCATALOG_COMPILER_APPICON_NAME}" --output-partial-info-plist "${BUILD_DIR}/assetcatalog_generated_info.plist"'
text = File.read(copy_pods_resources_path)
new_contents = text.gsub(string_to_replace, assets_compile_with_app_icon_arguments)
File.open(copy_pods_resources_path, "w") {|file| file.puts new_contents }
end
注意:将工程名替换为自己的工程名
2) 运行
$pod install
2.手动修改
打开工程目录下:[工程名]/Pods/Target Support Files/Pods-[工程名]/Pods-[工程名]-resources.sh这个文件,替换最后一段代码:
修改前:
printf "%s\0" "${XCASSET_FILES[@]}" | xargs -0 xcrun actool --output-format human-readable-text --notices --warnings --platform "${PLATFORM_NAME}" --minimum-deployment-target "${!DEPLOYMENT_TARGET_SETTING_NAME}" ${TARGET_DEVICE_ARGS} --compress-pngs --compile "${BUILT_PRODUCTS_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}"
fi
修改后:
printf "%s\0" "${XCASSET_FILES[@]}" | xargs -0 xcrun actool --output-format human-readable-text --notices --warnings --platform "${PLATFORM_NAME}" --minimum-deployment-target "${!DEPLOYMENT_TARGET_SETTING_NAME}" ${TARGET_DEVICE_ARGS} --compress-pngs --compile "${BUILT_PRODUCTS_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" --app-icon "${ASSETCATALOG_COMPILER_APPICON_NAME}" --output-partial-info-plist "${BUILD_DIR}/assetcatalog_generated_info.plist"
fi
然后重新运行工程即可
以后是我尝试的解决方案,希望也能解决你的问题。
最后,在网上有很多说在Info.plist中自己手动添加缺失的Icon可以解决问题。对我的问题还是无效。这应该是在早期的IOS版本中的解决方案,我猜是这样的。最后查了无数资料,找到了以上两种解决方案。