美文网首页
2021-12-24 APP图标被覆盖问题The app ico

2021-12-24 APP图标被覆盖问题The app ico

作者: 我是小胡胡123 | 来源:发表于2021-12-24 22:26 被阅读0次

按照源代码方式集成flutter

 flutter_application_path = '../flutter_commercial'
 load File.join(flutter_application_path, '.ios', 'Flutter', 'podhelper.rb')

 install_all_flutter_pods(flutter_application_path)

直接运行工程没问题,用脚本打包确报错:

Assets.xcassets图片资源冲突,app工程的图标被flutter插件依赖覆盖,居然是example下的图片
.ios/.symlinks/plugins/path_provider/example/ios/Runner/Assets.xcassets:./AppIcon.appiconset: warning: The app icon set name "AppIcon" is used by multiple app icon sets

打开
Pods-XXApp/Pods-XXApp-resources.sh

if [[ -n "${WRAPPER_EXTENSION}" ]] && [ "`xcrun --find actool`" ] && [ -n "${XCASSET_FILES:-}" ]
then
  # Find all other xcassets (this unfortunately includes those of path pods and other targets).
  OTHER_XCASSETS=$(find -L "$PWD" -iname "*.xcassets" -type d)
  while read line; do
    if [[ $line != "${PODS_ROOT}*" ]]; then
      XCASSET_FILES+=("$line")
    fi
  done <<<"$OTHER_XCASSETS"

  if [ -z ${ASSETCATALOG_COMPILER_APPICON_NAME+x} ]; then
    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}"
  else
    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 "${TARGET_TEMP_DIR}/assetcatalog_generated_info_cocoapods.plist"
  fi
fi

这里是会扫描工程目录下面的所有.xcassets,把所有子目录下的xcassets都编译进资源了:

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 
"${TARGET_TEMP_DIR}/assetcatalog_generated_info_cocoapods.plist

app 打包过程中, 会提前把flutter项目下载到当前工程下buildProjects子目录。pod 用本地依赖方式集成。
解决方法就是替换那段代码,或者不要把其他依赖工程放到APP主工程子目录下。
本文使用替换代码方式,解决了问题;

post_install do |installer|
  installer.aggregate_targets.each do |target|
    puts "installer.aggregate_targets.each target.name=#{target.name}"
    copy_pods_resources_path = "Pods/Target Support Files/#{target.name}/#{target.name}-resources.sh"
    string_to_replace = "if [[ $line != \"${PODS_ROOT}*\" ]]; then"
    assets_compile_with_app_icon_arguments = "if [[ $line != \"${PODS_ROOT}*\" ]] && [[ $line != *HouseCommercialCube/buildProjects* ]];  then"
    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
end

相关文章

  • 2021-12-24 APP图标被覆盖问题The app ico

    按照源代码方式集成flutter 直接运行工程没问题,用脚本打包确报错: Assets.xcassets图片资源冲...

  • 2018-02-13

    QT Widget应用程序设置应用程序的图标 【1】下载以获取应用程序的图标ico图片格式(比如App.ico) ...

  • 实用资源网站02-Web设计篇

    1.字体:http://app.fontflame.com/ 2.图标ico(部分免费): 01.https://...

  • app ico图标生成工具

    使用在线移动图标生成工具:图标工场 网站自动生成iOS所需的所有对应格式的图标**

  • 重置 Dock 和 Launchpad

    用来解决 APP 图标异常的问题同时 APP 图标会恢复成默认排序

  • 车享运车原型设计

    可交互的原型 可交互的设计原型(建议使用电脑打开) 整体设计需求:1. 应用图标,包括APP图标和网页.ico图标...

  • iOS App图标版本化

    iOS App图标版本化 iOS App图标版本化

  • cordova+msui:问题整理

    用淘宝的msui框架写APP界面非常方便,但cordova打包时图标全都无法显示,用Safari跟踪发现原来ico...

  • 苹果安装动画制作

    Demo 使用方法 使图层覆盖在应用图标上方,大小为app图标的bounds 与下载进度配合使用,定义进度属性 下...

  • Android Activity启动流程简明总结

    App安装后,在桌面(Launcher)会出现App的图标,用户点击App图标后,App的第一个Activity是...

网友评论

      本文标题:2021-12-24 APP图标被覆盖问题The app ico

      本文链接:https://www.haomeiwen.com/subject/ogyrqrtx.html