离子应用因为无法加载而被应用商店拒绝

时间:2018-09-06 23:24:38

标签: cordova ionic-framework ionic2 ionic3 app-store

我最近将我的应用程序提交到Apple应用程序商店,但被拒绝了。

  

指南2.1-性能-应用完整性

     

在iPhone上进行审核时,我们在您的应用中发现了一个或多个错误   在Wi-Fi上运行iOS 11.4.1。

     

启动时,活动指示器会无限旋转

我已经在6到X的多部iPhone上测试了该应用程序,并且运行良好。可能需要4到5秒钟才能载入闪屏,但这不应该成为拒绝的原因吗?

我最近确实更新了cordova-plugin-ionic-webview,发现发布速度变慢了吗?我的config.xml说我在v ^1.1.16上,但是我的package.json说我在^2.0.2上,不确定是否有问题?现在还有一个v 2.1.3

但是正如我所说,我不知道问题可能出在我的iPhone上。

我的config.xml的重要部分如下所示:。不确定是否显示可能导致答案的任何内容:

<access origin="*" />
<allow-intent href="http://*/*" />
<allow-intent href="https://*/*" />
<allow-intent href="tel:*" />
<allow-intent href="sms:*" />
<allow-intent href="mailto:*" />
<allow-intent href="geo:*" />
<preference name="ScrollEnabled" value="false" />
<preference name="android-minSdkVersion" value="16" />
<preference name="BackupWebStorage" value="none" />
<preference name="SplashMaintainAspectRatio" value="true" />
<preference name="FadeSplashScreenDuration" value="300" />
<preference name="SplashShowOnlyFirstTime" value="false" />
<preference name="SplashScreen" value="screen" />
<preference name="SplashScreenDelay" value="30000" />
<preference name="AutoHideSplashScreen" value="false" />
<preference name="loadUrlTimeoutValue" value="60000" />
<preference name="target-device" value="handset" />

<platform name="ios">
    <allow-intent href="itms:*" />
    <allow-intent href="itms-apps:*" />
    ...icons/splashscreens
</platform>

<plugin name="cordova-plugin-device" spec="^2.0.1" />
<plugin name="cordova-plugin-splashscreen" spec="^5.0.2" />
<plugin name="cordova-plugin-ionic-webview" spec="^1.1.16" />
<edit-config file="app/src/main/AndroidManifest.xml" mode="merge" target="/manifest/application" />
<plugin name="cordova-sqlite-storage" spec="^2.2.1" />
<plugin name="cordova-plugin-whitelist" spec="^1.3.3" />
<allow-navigation href="http://192.168.9.77:8100" />
<allow-navigation href="http://192.168.1.27:8100" />
<allow-navigation href="http://192.168.1.5:8100" />
<edit-config file="*-Info.plist" mode="merge" target="NSLocationWhenInUseUsageDescription">
    <string>To connect you to your local university!</string>
</edit-config>
<edit-config file="*-Info.plist" mode="merge" target="NSPhotoLibraryUsageDescription">
    <string>To let you upload images!</string>
</edit-config>
<plugin name="cordova-plugin-geolocation" spec="^4.11.0">
    <variable name="GEOLOCATION_USAGE_DESCRIPTION" value="To connect you to your local university!" />
</plugin>
<plugin name="cordova-plugin-statusbar" spec="^2.4.2" />
<plugin name="cordova-plugin-firebase" spec="1.0.5" />
<plugin name="cordova-plugin-camera" spec="^4.0.3" />
<plugin name="cordova-plugin-request-location-accuracy" spec="^2.2.3" />
<plugin name="cordova-plugin-ionic-keyboard" spec="^2.1.2" />
<plugin name="cordova.plugins.diagnostic" spec="^4.0.8" />
<plugin name="cordova-plugin-google-analytics" spec="^1.8.6">
    <variable name="GMS_VERSION" value="16.0.3" />
</plugin>
<engine name="browser" spec="^5.0.4" />
<engine name="android" spec="^7.0.0" />
<engine name="ios" spec="^4.5.5" />

并且由于我的<preference name="AutoHideSplashScreen" value="false" />为假,因此在我的app.component.ts文件中,我有以下代码行隐藏了启动画面:

constructor(
public zone: NgZone,
private afAuth: AngularFireAuth,
public splashScreen: SplashScreen) {
this.afAuth.auth.onAuthStateChanged((user) => {
      this.zone.run(() => {
        if (user) {
          this.rootPage = HomePage
          this.splashScreen.hide();
        } else {
          this.rootPage = LoginPage
          this.splashScreen.hide();
          console.log("Not logged in")
        }
      });
    });
  }

这里是否有任何线索为什么可能不起作用?谢谢!

1 个答案:

答案 0 :(得分:0)

“启动后,活动指示器会无限旋转”

如果您使用的是离子加载器或微调器,请正确处理

例如(不是完整的代码只是示例)

this.spinnerDialog.show();

http.req().then((data)=>{
   this.spinnerDialog.hide();
}).err((error)=>{
   this.spinnerDialog.hide();
})

您必须正确处理微调器,装载器或活动指示器