要解决React Native IOS Xcode发布版本构建后打开Metro服务器的问题,可以按照以下步骤进行操作:
在Xcode中打开项目,找到AppDelegate.m
文件。
导入RCTBundleURLProvider.h
和RCTRootView.h
:
#import
#import
didFinishLaunchingWithOptions
方法中的代码,将原始的React Native开发服务器URL替换为发布版本的Bundle URL:- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
NSURL *jsCodeLocation;
// 开发版本
// jsCodeLocation = [[RCTBundleURLProvider sharedSettings] jsBundleURLForBundleRoot:@"index" fallbackResource:nil];
// 发布版本
jsCodeLocation = [[NSBundle mainBundle] URLForResource:@"main" withExtension:@"jsbundle"];
RCTRootView *rootView = [[RCTRootView alloc] initWithBundleURL:jsCodeLocation
moduleName:@"YourModuleName"
initialProperties:nil
launchOptions:launchOptions];
// ...其他代码...
return YES;
}
接下来,需要在Xcode中进行一些配置。选择项目的Build Settings,搜索"Enable Bitcode"并将其设置为No
。
最后,在Xcode中选择Product -> Scheme -> Edit Scheme。在左侧的Run选项中,选择Arguments标签,然后在Environment Variables添加以下键值对:
Name: EXPO_NO_DEV
Value: 1
这将确保在构建发布版本时,Metro服务器不会自动启动。
完成上述步骤后,构建并运行发布版本的React Native应用程序时,不再会打开Metro服务器。