Apple 在升级到 React Native 0.59 后拒绝了二进制文件(2.3.1 - 性能)

Posted

技术标签:

【中文标题】Apple 在升级到 React Native 0.59 后拒绝了二进制文件(2.3.1 - 性能)【英文标题】:Apple rejected the binary (2.3.1 - Performance) after upgrading to React Native 0.59 【发布时间】:2019-04-21 13:13:32 【问题描述】:

升级到 React Native 0.59.3 后,我在不同帐户中有两个应用程序,在主题 2.3.1 - Performance 下被拒绝。除了 RN 升级之外,此应用程序没有任何变化。

但是,这两个应用程序都没有使用混淆代码、选择器修改或旨在破坏应用程序审核流程的功能。两者都是基于 API 数据自然更改其内容的应用程序,就像 Facebook、Twitter、Instagram 等许多其他应用程序一样。

两者都是使用react-native init 创建的简单应用程序,并于一年多前发布,适用于 androidios。我们没有使用 codepush、测试 A/B 或其他技术来改变应用程序在运行时的行为。

有人遇到同样的拒绝或有解决此问题的提示吗?

苹果拒绝消息:

指南 2.3.1 - 性能

我们发现您的应用包含混淆代码、选择器 破坏或旨在通过以下方式颠覆 App Review 流程的功能 在 App Store 获得批准后更改此应用的概念。

此应用的下一次提交可能需要更长的审核时间,并且 在此问题之前,此应用不符合加急审核条件 已解决。

接下来的步骤

查看 App Store 审核指南的性能部分。 确保您的应用符合 App Store 审核指南的所有部分以及 Apple 开发者的条款和条件 程序。 在您的应用完全合规后,重新提交您的应用以供审核。

提交旨在误导或伤害客户或逃避 审查过程可能会导致您的 Apple Developer 被终止 程序帐户。查看 Apple Developer 的条款和条件 计划以详细了解我们的终止政策。

如果您认为您的应用符合 App Store Review 指导方针,您可以提出上诉。或者,您可以提供 通过直接回复此来了解有关您的应用的更多详细信息 消息。

package.json 的:

应用 A:


  "name": "app A",
  "version": "1.0.0",
  "private": true,
  "scripts": 
    "start": "node node_modules/react-native/local-cli/cli.js start",
    "test": "jest"
  ,
  "dependencies": 
    "@react-native-community/async-storage": "1.2.2",
    "@react-native-community/netinfo": "1.4.1",
    "@remobile/react-native-action-sheet": "1.0.2",
    "eureka-rn-components": "git+file:../gileade-eureka-rn-components#02c50a043070648205def50940c1282d2b749c89",
    "functional-masks": "git+https://github.com/ktabriga/functional-masks.git#d5f5f01fe6731fc1c0879b8afb8f239591a2f984",
    "lodash": "4.17.2",
    "moment": "2.16.0",
    "normalizr": "3.1.0",
    "numeral": "1.5.3",
    "prop-types": "15.6.2",
    "ramda": "0.23.0",
    "react": "16.8.3",
    "react-native": "0.59.3",
    "react-native-action-button": "2.6.2",
    "react-native-autocomplete-input": "3.6.0",
    "react-native-datepicker": "1.6.0",
    "react-native-deprecated-custom-components": "0.1.2",
    "react-native-device-info": "0.25.1",
    "react-native-dropdownalert": "3.9.1",
    "react-native-elements": "0.18.0",
    "react-native-fcm": "13.3.3",
    "react-native-global-props": "1.1.1",
    "react-native-image-crop-picker": "0.18.2",
    "react-native-infinite-scroll-view": "0.4.5",
    "react-native-masked-text": "1.5.2",
    "react-native-modal-selector": "1.0.2",
    "react-native-permissions": "1.1.1",
    "react-native-progress-circle": "2.0.1",
    "react-native-side-menu": "1.1.3",
    "react-native-simple-modal": "6.0.0",
    "react-native-swiper": "1.5.5",
    "react-native-vector-icons": "6.2.0",
    "react-redux": "4.4.6",
    "redux": "3.6.0",
    "redux-logger": "2.7.4",
    "redux-persist": "4.0.0-beta1",
    "redux-promise-middleware": "4.1.0",
    "redux-thunk": "2.1.0",
    "reselect": "2.5.4",
    "string-mask": "0.3.0",
    "url-join": "4.0.0"
  ,
  "jest": 
    "preset": "jest-react-native"
  ,
  "devDependencies": 
    "@babel/core": "7.4.0",
    "@babel/runtime": "7.4.2",
    "@react-native-community/eslint-config": "0.0.3",
    "babel-jest": "24.5.0",
    "eslint": "5.16.0",
    "jest": "24.5.0",
    "metro-react-native-babel-preset": "0.53.1",
    "react-test-renderer": "16.8.3"
  

应用 B:



    "name": "app B",
    "version": "0.0.1",
    "private": true,
    "scripts": 
        "start": "node node_modules/react-native/local-cli/cli.js start",
        "test": "jest",
        "lint": "eslint ."
    ,
    "dependencies": 
        "@react-native-community/async-storage": "1.3.3",
        "axios": "0.18.0",
        "bluebird": "3.5.1",
        "jwt-decode": "2.2.0",
        "moment": "2.21.0",
        "prop-types": "15.6.1",
        "react": "16.8.3",
        "react-native": "0.59.3",
        "react-native-charts-wrapper": "0.4.2",
        "react-native-datepicker": "1.7.2",
        "react-native-device-info": "0.25.1",
        "react-native-elements": "0.19.0",
        "react-native-exit-app": "1.0.0",
        "react-native-fcm": "14.1.0",
        "react-native-keyboard-manager": "4.0.13-10",
        "react-native-simple-dialogs": "1.1.0",
        "react-native-splash-screen": "3.1.1",
        "react-native-vector-icons": "6.2.0",
        "react-navigation": "1.5.2",
        "vanilla-masker": "1.2.0",
        "wolfy87-eventemitter": "5.2.5"
    ,
    "devDependencies": 
        "@babel/core": "7.4.0",
        "@babel/runtime": "7.4.2",
        "@react-native-community/eslint-config": "0.0.3",
        "babel-jest": "24.5.0",
        "babel-plugin-transform-remove-console": "6.9.0",
        "eslint": "5.16.0",
        "jest": "24.5.0",
        "metro-react-native-babel-preset": "0.53.1",
        "react-test-renderer": "16.8.3"
    ,
    "jest": 
        "preset": "react-native"
    

【问题讨论】:

两天前,我收到了 2 100% 本机应用程序的相同拒绝。这种拒绝以前从未发生过。看起来这个问题不是由您的应用的 React Native 特性引起的。 @PavelOsipov 非常感谢您提供这些信息。如果您可以根据自己的经验添加答案,以及您采取的解决步骤,那就太棒了。 我投票决定将此问题作为题外话结束,因为这是 Apple 支持的问题,而不是 Stack Overflow 的问题。请参阅help center 了解有关可以在此处提出哪些问题的信息(客户支持不在列表中)。 【参考方案1】:

我的应用也被拒绝了。然而,在解决中心回复后,我说我不使用代码混淆,我已经询问了有关拒绝原因的详细信息。就这样,我收到了一条通知,说我的应用正在审核中,大约 10 秒后,我的应用被批准并发布了 :-)

在我看来,这似乎要么是 Apple 方面的错误,要么是由流行的框架之一触发的,例如 AFNetworking、Realm 等(他们使用 NSStringFromSelector、NSStringFromClass 等),但因为它规模很大,而且每个人都是以几乎自动获得批准的应用程序相同的方式解释使用情况(但您必须在解决中心回复才能触发第二次审核过程)。希望这会有所帮助。

【讨论】:

你说得对,我刚刚获得了其中一个应用程序的批准,只是在解决中心发送了一条消息。 ? 不客气,我很高兴能帮助开发人员 :-)

以上是关于Apple 在升级到 React Native 0.59 后拒绝了二进制文件(2.3.1 - 性能)的主要内容,如果未能解决你的问题,请参考以下文章

如何从 React ^0.14.8 & React-native ^0.24.1 升级到 React 15.0.2 和 React-native 0.26.3

将 react-native 升级到最新版本 0.61.4 后找不到以下原生模块

升级到 React Native 0.63.0 后 Pod 安装错误

将仅 JS 的 react-native 库升级到 RN 0.60

在 React Native 0.59 上将目标 sdk 升级到 29

升级到 React Native 0.27.0 后 Systrace 不显示 JavaScript 内容