use*_*373 15 xcode reactjs-native
我正在尝试使用React Native启动并运行,我在Xcode中看到以下消息:
端口8081已在使用中,打包程序未运行或未正常运行
命令/ bin/sh失败,退出代码为2
我去了React Native故障排除页面并尝试终止端口8081进程,但我仍然遇到同样的问题.
这是我在Xcode中看到的截图:
任何帮助将完全赞赏.
esc*_*ten 19
如果lsof -n -i4TCP:8081按照Facebook的故障排除页面中的建议进行操作并获得空结果,请再次尝试使用sudo lsof -n -i4TCP:8081.
就我而言,事实证明McAfee防病毒软件正在运行侦听该端口的进程.杀死这个过程(我知道,我知道!)解决了这个问题.
Emi*_*ile 13
对于需要将端口8081更改为其他端口的用户,请尝试以下步骤.
> npm start
将启动node_modules/react-native/packager/packager.sh
在那里它将命令行参数合并,即--port到预定义的选项.即port = 8081
我更新了package.json start选项以包含我的首选端口,因为我无法使用此端口停止现有服务.
{
"name": "AwesomeProject",
"version": "0.0.1",
"private": true,
"scripts": {
"start": "node_modules/react-native/packager/packager.sh --port=8999"
},
"dependencies": {
"react-native": "^0.12.0"
}
}
Run Code Online (Sandbox Code Playgroud)
**请注意,这可能不适用于Android,这显然硬编码到8081 Stack Post Here
构建Xcode 构建Xcode时,它仍然会在尝试运行脚本以启动节点时失败.您将需要从构建过程中删除此脚本或将其更新到新端口.
在libraries选择下React.xcodeproj.在主屏幕中选择Build Phases.你会看到Run Script.
删除此条目,npm start自己调用或编辑端口.
if nc -w 5 -z localhost 8999 ; then
if ! curl -s "http://localhost:8999/status" | grep -q "packager-status:running" ; then
echo "Port 8999 already in use, packager is either not running or not running correctly"
exit 2
fi
else
open $SRCROOT/../packager/launchPackager.command || echo "Can't start packager automatically"
fi
Run Code Online (Sandbox Code Playgroud)
调试 似乎8081遍布全店.需要在xcode-project下另外更新RCTWebSocketExecutor.m:Libraries/RCTWebSocket.xcodeproj
- (instancetype)init
{
return [self initWithURL:[RCTConvert NSURL:@"http://localhost:8999/debugger-proxy"]];
}
Run Code Online (Sandbox Code Playgroud)
**从iOS启动打包器**如果仅从iOS启动,那么您还需要编辑launchPackager.command以添加到适当的端口,因为Xcode使用此文件来运行javascript.
$THIS_DIR/packager.sh --port=8999
Run Code Online (Sandbox Code Playgroud)
Ars*_* KV 12
简单方法: 试试下面的代码
kill -9 $(lsof -t -i:8081)
Run Code Online (Sandbox Code Playgroud)
LeO*_* Li 10
有同样的问题!
对于Android,我可以使用adb重定向端口,但在iOS中,无法想象我们在自定义端口中运行React Native的方法.必须从McAfee接管8081端口.
对于无法直接终止McAfee进程/服务的Mac用户,您可以通过launchctl(macOS)卸载它,然后您可以在默认的8081端口上运行打包服务器.
cd /Library/LaunchDaemons
sudo launchctl unload com.mcafee.agent.macmn.plist
Run Code Online (Sandbox Code Playgroud)
还写了一份备忘录来解释launchctl细节和MacOS启动流程.
小智 5
借助别人的答案.我尝试了以下步骤.它对我有用,对其他人有希望.它仅适用于iOS. 假设我们要将8081端口更改为8999端口.
首先,打开Xcode.
在[ProjectName]/[ProjectName] /AppDelegate.m中查看Project导航器(左):
更改
http://localhost:8081/index.ios.bundle?platform=ios&dev=true
Run Code Online (Sandbox Code Playgroud)
至
http://localhost:8999/index.ios.bundle?platform=ios&dev=true
Run Code Online (Sandbox Code Playgroud)在项目导航器(左)[ProjectName] /库中:
单击"React.xcodeproj".在主面板上,单击"构建阶段"标记.
展开"运行脚本",用十字架删除它.
在项目导航器(左)[ProjectName]/Libraries/RCTWebSocket.xcodeproj/RCTWebSocketExecutor.m中:搜索8081并将其替换为8999
第二次打开Finder
在项目根目录中,打开"package.json":
将"脚本"属性更改为:
{...
"start": "node_modules/react-native/packager/packager.sh --port=8999"
...
}
Run Code Online (Sandbox Code Playgroud)
然后打开终端
$ cd到项目根目录:
$ npm开始
凉!然后
返回Xcode并单击播放按钮.
交叉你的手指.
耐心点.客户端会有一个空白.
您可以看到它正在后端进行构建(终端将记录它).
| 归档时间: |
|
| 查看次数: |
26479 次 |
| 最近记录: |