我有两个可以协同工作的应用程序-消费者和提供者。当我在使用者应用程序中请求任务时,我需要检查该任务是否已在提供者应用程序中接收到。如果我没有在同一台计算机上同时运行两个应用程序,这将使调试非常困难。
我尝试手动先设置默认端口,然后再设置react-native start --port 8082
。 8082上的应用错误。我曾尝试在8082上单独启动一个。该应用程序将忽略它,并启动另一个Metro实例。
两项测试均针对ios模拟器。我也尝试过在ios和android上运行一个,但同样没有成功。
这甚至有可能吗?我听说有人放弃了尝试,而另一些人则深入研究节点模块以手动设置端口。我在Google或此处找不到太多指导。
我希望有人可以帮助我解决该问题,或者说服我这不是入门者。谢谢。
找到了一个可行的解决方案(大部分工作来自我的同事Clayton Ray)。
我的系统:
假设我有AppA和AppB。 AppA是正在开发的功能(功能,错误修复等)。这将在默认的Metro端口8081上运行。
在AppB项目根目录中,我导航到
ios/Pods/Headers/Private/React-Core/RCTDefines.h
。
围绕87'ish,您将找到此代码块
#ifndef RCT_METRO_PORT
#define RCT_METRO_PORT 8081
#else
将8081替换为您的首选端口,通常是8082。保存您的更改。在CLI中,运行
npx react-native start --port 8082
现在使用非默认模拟器(以区分两者)启动您的应用程序,例如
npx react-native run-ios --simulator "iPhone 8s"
。
打开一对单独的终端窗口,导航到AppA项目根目录,然后像往常一样启动Metro和应用程序。
可能的警告