详细问题描述
1.后台线程刷新UI
=================================================================
Main Thread Checker: UI API called on a background thread: -[UIApplication statusBarOrientation]
PID: 9255, TID: 3252441, Thread name: com.taobao.weex.bridge, Queue name: com.apple.root.default-qos.overcommit, QoS: 0
Backtrace:
Main Thread Checker: UI API called on a background thread: -[UIView safeAreaInsets]
PID: 9255, TID: 3252441, Thread name: com.taobao.weex.bridge, Queue name: com.apple.root.default-qos.overcommit, QoS: 0
Backtrace:
决解方案
刷新UI的代码加到UI线程上去: dispatch_async(dispatch_get_main_queue(),^{
[UIApplication statusBarOrientation];
})
2.第三方库太多,没有按需加载,全部都一股脑集成项目,同时也不支持bitcode,导致安装包ipa太大(70多M)
决解方案
1.可以出个配置文档,开发者自行按照文档配置
- 动态读取manifest.json的配置,按需加载对应的第三方库
3.修改了很多iOS项目默认的配置,导致常规的iOS开发配置有很多问题,如:
Build Settings的GCC_PREPROCESSOR_DEFINITIONS、LIBRARY_SEARCH_PATHS、OTHER_LDFLAGS这些配置把项目的默认配置都改掉了,导致集成cocopods很多问题
决解方案
常规的配置不要乱修改,按需添加uni-app自己的配置即可,如:LIBRARY_SEARCH_PATHS 的$(inherited)这个配置不要删掉,增加$(SRCROOT)/../SDK/libs、$(PROJECT_DIR)即可
4.项目文件结构乱,存在不明文件,如
BDSClientEASRResources文件夹下的*.bat文件作用不明
Bundles在存在多个js文件,没有组织一起
splash启动页还是采用老式的静态图方式
决解方案
不明文件是否是必须?
启动页可以抛弃静态图方式,js可以建立bundle包,采用storyboard方式
5.代码适配有问题,如
ViewController.m里状态栏的高度竟然还是定义为:
define kStatusBarHeight 20.f
没有适配iphone X后的版本
决解方案
修正状态栏高度宏定义:
define kStatusBarHeight (iPhoneX ? 44.f : 20.f)
5.PROJECT名和TARGETS名没有按照默认的一致,导致集成cocopods的时候需要制定target和project
决解方案
改成一致就好,命名不要包含-,采用英文首字母大写即可
6.没有针对现有iOS项目集成uni-app的功能
决解方案
可以参考Cordova的方案
1 个评论
要回复文章请先登录或注册
l***@163.com