关于iOS 11下app图标变空白问题的解决方法

前言:

随着iOS11首个开发者预览版iOS11 Beta1的发布,关于iOS11系统的WWDC都会上苹果没有提及的新功能被开发者挖掘出。

然而最近在做项目的时候发现运行在模拟器上图标丢失,变成了苹果默认的白板图标。因为一开始只在模拟器上出现,而且也确认没有人动过图标文件,所以没有在意,后来慢慢的该问题出现在真机上,一开始是只有iPhone X,然后就是iPhone 8,慢慢的变成不管是模拟器还是真机,所有iOS11 系统的图标都没有了。

接下来影响到的机型和系统越来越多。

尝试:

1:一开始想到的是可能有人误改了图标文件,于是删除了images.xcassest中的AppIcon文件,从新生成→添加图标,但是依然未解决。(✘)

2:想到是图片格式/尺寸的问题,于是所有图片按照规定重新生成,但是仍然无济于事。(✘)

3:因为设置图标的方法除了在images.xcassest中的AppIcon文件中设置还可以在info.plist设置、或者直接在工程里面放一个icon.png的图片来设
置,所以都检查了一便发现也不是这个原因(✘)

3:重置手机。(✘)

解决:

google了下发现好多国外的开发遇到这个问题,并且都是使用xcode9.X.X版本,所以怀疑是苹果的BUG

不过这个问题并不是谁都会出现也不是所有使用xcode9 + iOS11的设备都会出现

后来经过大家的讨论终于有人说这个其实是cocoapods的BUG,暂时并不能通过更新cocoapods更新来解决,因为最新版的cocoapods

也存在这个问题,解决方法如下:

在你的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

像这样:

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对我们的支持。

(0)

相关推荐

  • IOS App图标和启动画面尺寸详细介绍

    iOS App图标和启动画面尺寸   注意:iOS所有图标的圆角效果由系统生成,给到的图标本身不能是圆角的. 1. 桌面图标 (app icon) for iPhone6 plus(@3x) : 180 x 180 for iPhone 6/5s/5/4s/4(@2x) : 120 x 120 2. 系统搜索框图标 (Spotlight search results icon)   for iPhone6 plus(@3x) : 120 x 120 for iPhone6/5s/5/4s/4(@

  • iOS11上Xcode9 AppIcon 图标不显示

    实例一: 打开工程目录下:[工程名]/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 "${

  • 关于iOS 11下app图标变空白问题的解决方法

    前言: 随着iOS11首个开发者预览版iOS11 Beta1的发布,关于iOS11系统的WWDC都会上苹果没有提及的新功能被开发者挖掘出. 然而最近在做项目的时候发现运行在模拟器上图标丢失,变成了苹果默认的白板图标.因为一开始只在模拟器上出现,而且也确认没有人动过图标文件,所以没有在意,后来慢慢的该问题出现在真机上,一开始是只有iPhone X,然后就是iPhone 8,慢慢的变成不管是模拟器还是真机,所有iOS11 系统的图标都没有了. 接下来影响到的机型和系统越来越多. 尝试: 1:一开始想

  • 详解在iOS11下app图标变空白的问题解决方法

    最近在做项目的时候发现运行在模拟器上图标丢失,变成了苹果默认的白板图标.因为一开始只在模拟器上出现,而且也确认没有人动过图标文件,所以没有在意,后来慢慢的该问题出现在真机上,一开始是只有iPhone X,然后就是iPhone 8,慢慢的变成不管是模拟器还是真机,所有iOS11 系统的图标都没有了.接下来影响到的机型和系统越来越多. 尝试: 1:一开始想到的是可能有人误改了图标文件,于是删除了images.xcassest中的AppIcon文件,从新生成→添加图标,但是依然未解决.(✘) 2:想到

  • iOS 11 下适配UITableView 问题

    9月份苹果发布了IOS11和Iphone X,这一操作系统一硬件对于开发者适配上面还是造作了不少蛋疼的地方.先来看看IOS 11,这些蛋疼的需要适配的地方: 1.UIScrollView及其子类在IOS 11之前的版本UI显示完全正常,但是在IOS 11上面会显示奇葩的界面. (1)先看一下UITablevIew. 原本在VC里面的automaticallyAdjustsScrollViewInsets竟然过期了,在IOS 11下 APPLE推荐使用UIScrollView的contentIns

  • ios设备中angularjs无法改变页面title的解决方法

    如下所示: $rootScope.$watch('title',function(title){ var body = document.getElementsByTagName('body')[0]; document.title = title; var iframe = document.createElement("iframe"); iframe.title = ''; iframe.width = 0; iframe.height = 0; iframe.setAttrib

  • Vue 2.5.2下axios + express 本地请求404的解决方法

    最近在学习Vue,今天尝试了使用axios模拟本地网络请求.使用的过程中发现接口请求一直404,后来发现在当期的Vue-cli构建的最新的项目中,接口请求应该这样写. 1.引入相关依赖 var axios = require('axios') const express = require('express'); var app = express(); var apiRoutes = express.Router(); app.use('/api', apiRoutes); 2.处理网络请求

  • 基于IOS端微信分享失效的踩坑及解决方法

    最近的一个公众号是基于vue的spa应用,在接入微信分享和微信语音的时候出现了:在Android上一切正常,但是在ios端调用wx.config的时候总是失败,去翻了官方文档也并没有找到解决方案,最后在测试中发现是因为初始化的时候传入的URL的问题.具体过程如下: 微信config接口配置,官方文档如下: 所有需要使用JS-SDK的页面必须先注入配置信息,否则将无法调用(同一个url仅需调用一次,对于变化url的SPA的web app可在每次url变化时进行调用,目前Android微信客户端不支

  • Python3.5 win10环境下导入kera/tensorflow报错的解决方法

    本文实例讲述了Python3.5 win10环境下导入keras/tensorflow报错的解决方法.分享给大家供大家参考,具体如下: 我在win10 Python3.5.2安装keras,然后导入时报错如下: Python 3.5.2 |Continuum Analytics, Inc.| (default, Jul 5 2016, 11:41:13) [MSC v.1900 64 bit (AMD64)] on win32 Type "help", "copyright&

  • Android app会crash的原因及解决方法

    android main入口的commonInit()方法内处,有这么一句话, Thread.setDefaultUncaughtExceptionHandler(new KillApplicationHandler(loggingHandler)); 如果没有这句话,app就不会crash.不信,你往里面看, public KillApplicationHandler(LoggingHandler loggingHandler) { @Override public void uncaught

  • iOS两丫技术之UILabel性能不够的解决方法

    目录 Async View Async Layer RunLoop 触发 事件的保存 YYLabel 主要参照 YYKit YYKit 博大精深,就像少林武功 Async View 为了异步 + runloop 空闲时绘制, 因为苹果的 UILabel 性能不够 6 Async Layer 思路: UI 操作,必须放在主线程, 然而图形处理,可以放在子线程, ( 开辟图形上下文,进行绘制,取出图片 ) 最后一步,放在主线程,就好了 layer.contents = image Custom Vi

  • CentOS 7下MySQL服务启动失败的快速解决方法

    今天,启动MySQL服务器失败,如下所示: [root@spark01 ~]# /etc/init.d/mysqld start Starting mysqld (via systemctl): Job for mysqld.service failed because the control process exited with error code. See "systemctl status mysqld.service" and "journalctl -xe&qu

随机推荐