本机:如何在不同的城域端口上启动并发ios模拟器

问题描述 投票:0回答:1

我有两个可以协同工作的应用程序-消费者和提供者。当我在使用者应用程序中请求任务时,我需要检查该任务是否已在提供者应用程序中接收到。如果我没有在同一台计算机上同时运行两个应用程序,这将使调试非常困难。

我尝试手动先设置默认端口,然后再设置react-native start --port 8082。 8082上的应用错误。我曾尝试在8082上单独启动一个。该应用程序将忽略它,并启动另一个Metro实例。

两项测试均针对ios模拟器。我也尝试过在ios和android上运行一个,但同样没有成功。

这甚至有可能吗?我听说有人放弃了尝试,而另一些人则深入研究节点模块以手动设置端口。我在Google或此处找不到太多指导。

我希望有人可以帮助我解决该问题,或者说服我这不是入门者。谢谢。

react-native command-line-interface ios-simulator metro-bundler
1个回答
0
投票

找到了一个可行的解决方案(大部分工作来自我的同事Clayton Ray)。

正在运行双重ios模拟器*

我的系统:

  • MacBook Pro(13英寸,2017)
  • 2.5 GHz双核Intel Core i7
  • 16 GB 2133 MHz LPDDR3。

假设我有AppAAppBAppA是正在开发的功能(功能,错误修复等)。这将在默认的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和应用程序。

可能的警告

  • 动力不足的Mac可能有问题
  • 如果您更新Pod安装,则更改可能会被覆盖。修复起来很简单。
  • 请确保将工作流程分开。我发现有时会混淆我想启动哪个应用程序作为默认应用程序。
  • 如果需要在AppB上执行工作,只需将AppA端口设置为8082,然后将AppB端口设置为8081,只需切换这些步骤。
© www.soinside.com 2019 - 2024. All rights reserved.