编辑:
好吧,事实证明这不是 AppStore 的问题,我从 Xcode 发布模式运行了应用程序,并且在模拟器上运行了相同的旧版本,我不知道为什么,但 Xcode 没有运行最新的 jsbundle。
现在我发现this问题也有同样的问题,并尝试遵循它,我运行了这个命令:
react-native bundle --entry-file index.js --platform ios --dev false --bundle-output ios/main.jsbundle --assets-dest ios/assets
并将新生成的main.jsbundle
放入/ios/ProjectName
中,但当我从Xcode运行代码时,它仍然给我一个旧版本
我还尝试清理和重建并删除派生数据并再次构建,结果相同
我最近将一个应用程序上传到Apple App Store,但似乎遇到了问题,这是我上传该应用程序的情况,它获得了批准,并说它已准备好出售,但当我去应用程序商店并下载该应用程序时,它是只是应用程序的先前版本,我没有看到应用程序上所做的所有新更改...这对我来说有点奇怪,我还在新版本发布中上传了新徽标,并且徽标已更新..该版本也在应用商店列表中进行了更新,前一个是 1.0,这个显示的是 1.1,并且“新增内容”部分也已更新...我还更改了这个新版本的预览和屏幕截图,这也反映在应用程序商店列表,但只有当我下载应用程序时,我才能获得以前的版本。
我尝试去我的应用程序商店连接,然后活动,我看到我的构建有正确的上传日期和构建编号...我在这里缺少什么吗?
谢谢,
这是一个详细的试错过程,试图确定哪一步对于解决问题至关重要。
我从代码库开始,其中
npx react-native run-ios --configuration Release
确实反映了代码库中的新更改。后续的每一轮都会跟随上一轮,即上一轮的结束状态可能会影响下一轮。
main.jsbundle
。npx react-native run-ios --configuration Release
npm start -- --reset-cache
npx react-native run-ios --configuration Release
npx react-native run-ios --configuration Release
react-native bundle --entry-file index.js --platform ios --dev false --bundle-output ios/your_app_name/main.jsbundle
npx react-native run-ios --configuration Release
main.jsbundle
文件添加到您的应用程序文件夹中。在您的项目中,右键单击包含应用程序名称的文件夹,选择“将文件添加到 your_app_name”,然后在应用程序文件夹中添加 main.jsbundle
。请注意,我们在此处添加的捆绑包是在第 4 轮中创建的。npx react-native run-ios --configuration Release
。在命令执行期间的输出消息中,会显示一条新消息:"Copying /.../your_app_name/ios/your_app_name/main.jsbundle"
。npx react-native run-ios --configuration Release
,无需手动构建捆绑包。复制消息不显示。main.jsbundle
存在于 Xcode 和文件系统中。watchman watch-del-all
清理 watchman
的缓存。npx react-native run-ios --configuration Release
。复制消息不显示。react-native bundle --entry-file index.js --platform ios --dev false --bundle-output ios/your_app_name/main.jsbundle
重建捆绑包。npx react-native run-ios --configuration Release
。这次,复制消息出现了。至少在我的笔记本电脑上,每个新版本都需要手动构建离线捆绑包,以反映 React Native 代码库中的最新更改。仅当将捆绑包添加到 Xcode 中的应用程序文件夹时,构建捆绑包才有效。看来我们只需要将bundle添加到Xcode一次即可。
还有一个重要的警告是,不同 Xcode 版本的行为可能会有所不同。
我遇到了同样的问题,结果是因为它正在运行应用程序的缓存版本,所以通过执行
npm start --reset-cache
解决了这个问题
react-native bundle --entry-file index.js --platform ios --dev false --bundle-output ios/your_app_name/main.jsbundle
我刚刚使用此命令生成了一个新的 main.jsbundle 文件。然后将该文件添加到我的 Xcode 项目中。右键单击 your_app_name > 将文件添加到 your_app_name > 选择新的 main.jsbundle。然后将其添加到“构建阶段”>“复制捆绑资源”。 Clean Build、重新构建并运行应用程序(直接通过 Xcode 上的 Run 按钮)。