如何在React Native中实现iOS的离线打包?

8
3个回答

34
react-native run-ios --configuration=release

将在模拟器或设备上运行您的应用程序和捆绑文件。

或者只需从Xcode构建它(发布版本始终包括捆绑文件)。 或者在运行调试版本之前,您应该执行以下操作:

react-native bundle --dev false --entry-file index.ios.js --bundle-output ios/main.jsbundle --platform ios

此外,由于我们需要运行此操作,因此找不到新的react-native版本index.ios.js

react-native bundle --dev false --entry-file index.js --bundle-output ios/main.jsbundle --platform ios

1
如何启用调试版本?是 scheme > build configuration > release 吗? - Stanislav Mayorov
如果你想要调试一个发布版本的构建,最好使用像Sentry.io这样的崩溃报告工具。 - Ata Mohammadi
如果在运行 react-native run-ios --configuration Release 后出现 main.jsbundle 不存在的错误,请确保您的项目路径中没有任何空格字符。打包器命令无法很好地处理空格字符。因此,将项目路径更改为 /users/bob/project-world-domination,而不是 /users/bob/project world domination - Nicolai Lissau

5

我假设您想在未将应用程序部署到应用商店的情况下在iOS设备上运行应用程序。

如果是这种情况:

首先,我会确保我已经安装了 ios-deploy

您可以通过运行 npm install -g ios-deploy 来安装。

然后将要安装应用程序的iPhone连接到您的Mac。

然后运行:

react-native run-ios --device "XYZ’s iPhone" --configuration=release

这将创建一个离线 JS 打包应用,并将其安装到 iPhone 上。 < p > < em > PS:如果出现错误
Signing for "<app name>" requires a development team. 
Select a development team in the project editor.

接下来在Xcode中打开ios/中的项目,并选择目标->常规选项卡,在签名下选择签名小组并选择自动管理签名。

然后保存并重新运行命令。


完成此操作后,当我回到开发并运行我的项目时,我的Metro捆绑包无法加载。 - Alauddin Ahmed

1
"Method 1
步骤一:"
react-native bundle --entry-file index.ios.js --bundle-output ./ios/main.jsbundle --platform ios

第二步:
react-native run-ios --configuration=release 

这个对我有用。
方法2:使用Xcode并将调试模式更改为发布模式,如下所示: 输入图像描述

方法一对我没用。它只是创建了捆绑包,启动了模拟器,并抛出了一个错误“没有捆绑URL”。 - Ryan

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接