Xcode无法反映来自react-native

时间:2020-06-24 15:16:42

标签: xcode react-native app-store app-store-connect

编辑:

好吧,事实证明这不是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,“新功能”部分也已更新...我也更改了此新版本的预览和屏幕截图,这也反映了在应用商店列表中显示,但只有在我下载该应用后,我才能获得以前的版本。

我尝试先连接到我的应用商店,然后再进行“活动”,然后我看到我的构建在其中,并带有正确的上载日期和构建编号...在这里我缺少什么吗?

谢谢

2 个答案:

答案 0 :(得分:2)

这是一个详细的反复试验过程,试图确定哪个步骤对解决问题至关重要。

我从代码库开始,其中 npx react-native run-ios --configuration Release 确实反映了代码库中的新更改。后续每一轮都在上一轮之后,即上一轮的结束状态可能会影响下一轮。

第一轮

  • 从 Xcode 和文件系统中删除 main.jsbundle
  • 对 React Native 代码库进行更改。
  • 运行npx react-native run-ios --configuration Release
  • FAIL,新更改未反映在构建中。

第 2 轮

  • 试试npm start -- --reset-cache
  • 运行npx react-native run-ios --configuration Release
  • FAIL,新更改未反映在构建中。

第 3 轮

  • 尝试在 Xcode 中使用“Cmd + Shift + K”来清理构建。
  • 运行npx react-native run-ios --configuration Release
  • FAIL,新更改未反映在构建中。

第 4 轮

  • 运行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
  • FAIL,新更改未反映在构建中。

第 5 轮

  • 在 Xcode 中,手动将 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"
  • 成功,新的变化正在显现。这表明在第 4 轮中创建的包用于此构建,而不是缓存在某处的某些先前版本。

第 6 轮

  • 对 React Native 代码库进行另一次更改。
  • 直接运行 npx react-native run-ios --configuration Release,无需手动构建包。复制消息不显示。
  • FAIL,新更改未反映在构建中。请注意,main.jsbundle 存在于 Xcode 和文件系统中。

第 7 轮

  • 运行 watchman watch-del-all 以清除 watchman 的缓存。
  • 运行npx react-native run-ios --configuration Release。复制消息不显示。
  • FAIL,新更改未反映在构建中。

第 8 轮

  • 运行 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。这一次,复制消息出现了。
  • 成功,最新的变化正在显现。

结论

至少在我的笔记本电脑上,每个新版本都需要手动构建离线包,以反映 React Native 代码库的最新变化。构建包仅在将包添加到 Xcode 中的 app 文件夹时才有效。看来我们只需要在Xcode中添加一次bundle即可。

另外一个重要的警告是,不同的 Xcode 版本的行为可能会有所不同。

我正在使用的版本

  • macOS Catalino 10.15.6
  • Xcode 11.6
  • 反应原生 0.61.5

答案 1 :(得分:0)

我遇到了同样的问题,结果是因为它正在运行该应用程序的缓存版本,因此可以通过执行npm start --reset-cache

来解决。