Xcode 未反映来自 React-Native 的最新应用程序代码

Sur*_*fel 3 xcode app-store react-native app-store-connect

编辑:

好吧,事实证明这不是 AppStore 的问题,我从 Xcode 发布模式运行了应用程序,并且在模拟器上运行了相同的旧版本,我不知道为什么,但 Xcode 没有运行最新的 jsbundle。

现在我发现这个问题有同样的问题,并尝试遵循它,我运行了这个命令: 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运行代码时,它仍然给我一个旧版本,我也尝试清理和重建并删除派生数据和再次构建,结果相同

我最近将一个应用程序上传到苹果应用程序商店,但似乎遇到了问题,这是我上传该应用程序的情况,它获得了批准,并说它已准备好出售,但当我去应用程序商店并下载该应用程序时,它只是该应用程序的先前版本,我没有看到该应用程序上所做的所有新更改...这对我来说有点奇怪,我还在新版本发布中上传了新徽标,并且该徽标已更新..版本也在应用商店列表中更新,前一个是 1.0,这个显示 1.1,并且“新增内容”部分也更新了...我还更改了这个新版本的预览和屏幕截图,这也反映在应用程序上商店列表,但只有当我下载应用程序时,我才会获得以前的版本。

我尝试去我的应用程序商店连接,然后活动,我看到我的版本有正确的上传日期和版本号...我在这里缺少什么吗?

谢谢,

Fan*_*Bao 6

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

我从代码库开始,其中npx react-native run-ios --configuration Release反映了代码库中的新更改。后续的每个回合都遵循前一个回合,即前一个回合的结束状态可能会影响下一个回合。

第1轮

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

第二轮

  • 尝试npm start -- --reset-cache
  • 跑步npx react-native run-ios --configuration Release
  • 失败,新的更改未反映在构建中。

第三轮

  • 尝试在 Xcode 中使用“Cmd + Shift + K”来清理构建。
  • 跑步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
  • 失败,新的更改未反映在构建中。

第五轮

  • 在 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 轮中创建的包用于此构建,而不是缓存在某处的某些先前版本。

第六轮

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

第七轮

  • 运行watchman watch-del-all以清理watchman.
  • 跑步npx react-native run-ios --configuration Release。复制消息不显示。
  • 失败,新的更改未反映在构建中。

第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 中的应用程序文件夹时,构建捆绑包才有效。看来我们只需要将包添加到 Xcode 一次即可。

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

我正在使用的版本

  • macOS Catalino 10.15.6
  • Xcode 11.6
  • 反应本机 0.61.5