1.端口被占用:
1.查看端口被占用情况
lsof -i:8081
输出:
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
node 6234 liang 21u IPv6 0x3167a7d7b37ee3ad 0t0 TCP *:sunproxyadmin (LISTEN)
2.杀掉这个进程
kill -9 6234
COMMAND:进程的名称
PID:进程标识符
USER:进程所有者
FD:文件描述符,应用程序通过文件描述符识别该文件。如cwd、txt等
TYPE:文件类型,如DIR、REG等
DEVICE:指定磁盘的名称
SIZE:文件的大小
NODE:索引节点(文件在磁盘上的标识)
NAME:打开文件的确切名称
2.启动时有白色的闪屏现象:
当应用启动时,启动图结束后出现白屏的瞬间,这个过程是加载jibundle包的过程,jibundle包加载完毕之前没有内容,所以才出现了白屏。
解决方案:
延迟启动图的消失,在首页componentWillMount关闭启动图
- 原生代码实现:
SplashScreen.h
#import <Foundation/Foundation.h>
#import <React/RCTBridgeModule.h>
@interface SplashScreen : NSObject<RCTBridgeModule>
+ (void)show;
@end
SplashScreen.m
#import "SplashScreen.h"
static bool waiting = true;
@implementation SplashScreen
- (dispatch_queue_t)methodQueue{
return dispatch_get_main_queue();
}
RCT_EXPORT_MODULE()
+ (void)show {
while (waiting) {
NSDate* later = [NSDate dateWithTimeIntervalSinceNow:0.1];
[[NSRunLoop mainRunLoop] runUntilDate:later];
}
}
RCT_EXPORT_METHOD(hide) {
dispatch_async(dispatch_get_main_queue(),
^{
waiting = false;
});
}
@end
- 使用:
1.在AppDelegate.m 延时显示启动图
didFinishLaunchingWithOptions 方法 return YES之前加上
[SplashScreen show];
2. 在React Native 中 隐藏启动图
componentWillMount (){
if (Platform.OS === 'ios') {
let SplashScreen = NativeModules.SplashScreen;
SplashScreen.hide();
}
}
3.真机调试 No bundle URL present 杀掉模拟器什么的也不起作用
在build Phases ->Bundle React Native code and images 添加脚本
export NODE_BINARY=node
../node_modules/react-native/scripts/react-native-xcode.sh