iOS13适配的那些坑

一.友盟iOS13报错([_LSDefaults sharedInstance]: unrecognized selector sent to class)。

这个报错友盟已经提示了,需要把UMCCommon更新到最新版本2.1.1。

但是我的pod配置一直是pod 'UMCCommon'。并没有指定版本。这个配置并不会在每次pod install的时候把相应的库更新到最新。这时候只需要指定版本号如下:pod 'UMCCommon', '~> 2.1.1'。然后pod install就好了

二.不适配深色模式

如果没有任何配置的话,升级的13后,APP的很多配置会随着深色浅色模式的修改而改动。但是对于我这样的公司来说,目前还没有任何资源去适配深色模式。解决方案苹果已经提供。本质上来说是在代码层面屏蔽深色模式。

解决方案
在plist文件里新增属性User Interface Style 数据格式为string。值设置为Light。

拓展:
1.当然如果你要求强制适配深色模式就把值改为Dark。如果需要根据用户的设置而改变,那就别设置这个属性直接删掉就好了。
2.当上面的属性设置为Light或者Dark后,你的状态栏文字颜色就会随着你的
Status bar style属性的改变而改变。这个属性可以在Plist文件里设置,也可以在General里设置如下:

iOS13适配的那些坑_第1张图片
image.png

3.这里需要注意:
plist文件的里这个属性(View controller-based status bar appearance)一定要设置会NO。如果不设置或者设置会YES。都会导致User Interface Style与Status bar style这个两个配置失效。

三.打包报错 IPA processing failed

过程与探索:
如下图:

iOS13适配的那些坑_第2张图片
image.png

一脸懵逼的点开show logs 如下:
iOS13适配的那些坑_第3张图片
image.png

然后点开之后更懵逼.

除了上传AppStore我还没尝试。其他的打包方式都会报这个错。
目前网上找到的解决方案跟解释都没能解决我这个问题。
1.有人说是如果APP不支持ipad,就不要勾选ipad。
2.有人说是部分第三方库导致的,更新一下就好了。(呵呵,我这么多,我可确定不了是哪个导致的)

解决方案
熟悉编译与系统原理的朋友,面对这个问题应该很好解决,不走xcode的打包就好了。现在把步骤解释如下:
1.先把项目的环境配置好,例如你要打developer包,就先在项目里把相应的描述文件跟证书配置好,然后command +B(编译)。编译完成后,找到项目文件夹里的.app文件。
2.选中该文件,show in finder。然后压缩。压缩完成后把压缩包后缀改为ipa。

这样就完成了,该分发分发,该重签名重签名。

顺便提一句Xcode11:

xcode11默认加了一些东西,比较隐蔽的是这么个点点点的效果


image.png

要隐藏这些点点点,看下图:只需要不勾选这个选项就好了。


iOS13适配的那些坑_第4张图片
image.png

你可能感兴趣的:(iOS13适配的那些坑)