EDIT:
好吧,事实证明这不是 AppStore 的问题,我从 Xcode 发布模式运行了应用程序,并且在模拟器上运行了相同的旧版本,我不知道为什么,但 Xcode 没有运行最新的 jsbundle。
现在我发现this https://stackoverflow.com/questions/58977223/using-react-native-ios-release-build-doesnt-load-new-code-but-the-version-does提出同样的问题并尝试遵循它我运行了这个命令:react-native bundle --entry-file index.js --platform ios --dev false --bundle-output ios/main.jsbundle --assets-dest ios/assets
并把新生成的main.jsbundle
inside /ios/ProjectName
但当我从 Xcode 运行代码时,它仍然给我一个旧版本
我还尝试清理和重建并删除派生数据并再次构建,结果相同
我最近向苹果应用商店上传了一个应用程序,但似乎遇到了问题,这是我上传该应用程序的情况,它获得了批准,并表示已准备好出售,但当我去应用程序商店并下载该应用程序时,它只是该应用程序的先前版本,我没有看到该应用程序上所做的所有新更改...这对我来说有点奇怪,我还在新版本发布中上传了新徽标,并且该徽标已更新..版本也在应用商店列表中更新,前一个是 1.0,这个显示 1.1,并且“新增内容”部分也更新了...我还更改了这个新版本的预览和屏幕截图,这也反映在应用程序上商店列表,但只有当我下载应用程序时,我才会获得以前的版本。
我尝试去我的应用程序商店连接,然后活动,我看到我的版本有正确的上传日期和版本号...我在这里缺少什么吗?
Thanks,
以下是详细的试错过程,试图确定哪一步对于解决问题至关重要。
我从代码库开始npx react-native run-ios --configuration Release
确实反映了代码库中的新变化。后续的每一轮都会跟随前一轮,即前一轮的结束状态可能会影响下一轮。
Round 1
- Remove
main.jsbundle
来自 Xcode 和文件系统。
- 对 React Native 代码库进行更改。
- Run
npx react-native run-ios --configuration Release
-
FAIL,新的更改未反映在构建中。
Round 2
- Try
npm start -- --reset-cache
- Run
npx react-native run-ios --configuration Release
-
FAIL,新的更改未反映在构建中。
Round 3
- 尝试在 Xcode 中使用“Cmd + Shift + K”来清理构建。
- Run
npx react-native run-ios --configuration Release
-
FAIL,新的更改未反映在构建中。
Round 4
- Run
react-native bundle --entry-file index.js --platform ios --dev false --bundle-output ios/your_app_name/main.jsbundle
- Run
npx react-native run-ios --configuration Release
-
FAIL,新的更改未反映在构建中。
Round 5
- 在 Xcode 中,手动添加
main.jsbundle
文件到您的应用程序文件夹。在您的项目中,右键单击包含应用程序名称的文件夹,选择“将文件添加到 your_app_name”,然后添加main.jsbundle
在应用程序文件夹中。请注意,我们在此处添加的捆绑包是在第 4 轮中创建的。
- Run
npx react-native run-ios --configuration Release
。在命令执行期间的输出消息中,出现一条新消息:"Copying /.../your_app_name/ios/your_app_name/main.jsbundle"
.
-
SUCCCESS,新的变化正在显现。这表明在第 4 轮中创建的包用于此构建,而不是缓存在某处的某些先前版本。
Round 6
- 在 React Native 代码库中进行另一项更改。
- 直接运行
npx react-native run-ios --configuration Release
无需手动构建捆绑包。复制消息不显示。
-
FAIL,新的更改未反映在构建中。注意
main.jsbundle
存在于 Xcode 和文件系统中。
Round 7
- Run
watchman watch-del-all
清理缓存watchman
.
- Run
npx react-native run-ios --configuration Release
。复制消息不显示。
-
FAIL,新的更改未反映在构建中。
Round 8
- Run
react-native bundle --entry-file index.js --platform ios --dev false --bundle-output ios/your_app_name/main.jsbundle
重建捆绑包。
- 无需修改Xcode,直接运行
npx react-native run-ios --configuration Release
。这次,复制消息出现。
-
SUCCCESS,现在正在显示最新的变化。
结论
至少在我的笔记本电脑上,每个新版本都需要手动构建离线捆绑包,以反映 React Native 代码库中的最新更改。仅当将捆绑包添加到 Xcode 中的应用程序文件夹时,构建捆绑包才有效。看来我们只需要将包添加到 Xcode 一次即可。
另外一个重要的警告是,不同 Xcode 版本的行为可能会有所不同。
我正在使用的版本
- macOS Catalina 10.15.6
- Xcode 11.6
- 反应本机 0.61.5
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)