2016-09-06 176 views
3

我收到了我的應用程序被拒絕前幾天由於以下原因:

我們發現在你的應用程序的一個或更多的錯誤時,iPad和 iPhone運行iOS 9.3.5審查在連接到IPv6網絡的Wi-Fi上。

具體而言,我們發現登錄時產生了一條錯誤消息。 我們附上了截圖供您參考。

下一步

請運行在設備上的應用程序,同時連接到IPv6網絡 (所有的應用程序必須支持IPv6),以確定問題的(一個或多個),然後修改並重新提交 您的應用程序進行審覈。

如果我們誤解了您應用的預期行爲,請回復 此消息在Resolution Center中,以提供有關這些 功能如何工作的信息。

對於新的應用程序,從 設備上卸載您應用程序的所有先前版本,然後安裝並按照步驟重現問題。 如需更新,請安裝新版本作爲先前的 版本的更新,然後按照步驟重現問題。

資源

有關支持IPv6網絡的信息,請參閱 支持IPv6 DNS64/NAT64網絡和關於網絡

如果你有困難重現報告的問題,請嘗試 測試中所描述的工作流程技術Q & A QA1764:如何 重現針對App Store提交報告的錯誤。

我已經設置了兩個IPv6網絡,其中一個在時間膠囊中,另一個從我的MacBook Pro共享。從Time Capsule的網絡(誰是完整的IPv6網絡),該應用程序正常工作。從MacBook Pro共享網絡中,我收到兩個結果...當設備連接到此IPv6網絡並且只配置了DNS時,該應用程序可以正常工作,但是當它接收到DNS和一個格式爲169.254.XX的IP時,應用程序會崩潰連接到服務器。

問題是,$ http請求應答由錯誤端而不是成功端進行。我用Ionic $ http和cordova-http插件(https://github.com/Switch168/cordova-HTTP#110)嘗試過,結果是一樣的。我不知道發生了什麼,因爲我與AngularJS有一個Cordova(只有Cordova,不是Ionic)項目,它不會失敗。那麼,Ionic $ http和AngularJS $ http有什麼區別?我不明白有什麼區別。請參閱this image here

$ HTTP請求的例子(使用離子$ http和科爾多瓦-HTTP插件):

callWs: function(ws, method, data){ 
    var defferer = $q.defer(); 

    if (device.platform == 'Android' || device.platform == 'iOS'){ 

    $window.CordovaHttpPlugin.postJson(url_request, 
     data_sent, 
     {"cache-control": "no-cache, private, no-store, must-revalidate", 
     "Authorization": basic_auth, 
     "Content-Type": "application/x-www-form-urlencoded; charset=utf-8" 
     }, 
    function(res) { 
     defferer.resolve(res.data); 
    }, function(error) { 
     defferer.reject(error); 
    }); 

    } else { 

    $http({ 
     url: url_request, 
     method: 'POST', 
     withCredentials: true, 
     timeout: HTTPTIMEOUT, 
     headers: { 
      'cache-control': 'no-cache, private, no-store, must-revalidate', 
      'Authorization': basic_auth, 
      'Content-Type': 'application/x-www-form-urlencoded; charset=utf-8' 
     }, 
     dataType : 'json', 
     data: data_sent 
    }).then(function (res) { 
     defferer.resolve(res.data); 
    }, function (error) { 
     defferer.reject(error); 
    }); 

    } 

    return defferer.promise; 

} 

回答

4

考慮它的幾個月,因爲你張貼了這個,我希望你已經解決了這個問題。我正在回答這個問題,就像我在尋找解決方案時所做的一樣。

此問題主要是由於服務器中的問題引起的。您的應用程序需要使用ipv6才能讓Apple批准您的應用程序,這一點很重要。 (見第一條評論)有一個​​方便的工具,幫助我瞭解是否屬於這種情況。

這是http://ipv6-test.com/validate.php

如果是這樣的問題,解決方法如下:

  1. 添加IPv6地址到Web服務器。
  2. 爲您的網站添加AAAA記錄。
  3. 爲裸露的域添加AAAA記錄。
  4. 確保您的DNS服務器具有IPv6地址。
  5. 如有必要,爲名稱服務器添加IPv6膠水。
  6. 爲傳入郵件服務器添加IPv6地址。
  7. 爲您的郵件服務器的IPv6地址添加反向DNS。
  8. 檢查您的SPF記錄。

如果您不熟悉任何的上述步驟,請this link.

+2

「_IT重要的,你的服務器是通過IPv6可達蘋果批准您app._」這是不正確的。您的應用程序需要使用IPv6,但服務器只能使用IPv4。 Apple測試網絡使用NAT64來促進這一點。許多人在沒有IPv6服務器的情況下批准了他們的應用程序。我會主張每個人都將他們的服務器轉換爲IPv6,但這並不是獲得應用程序批准的要求。 –

+0

根據評論更新了答案。 – esafwan

+0

編輯並沒有真正解決答案。它仍然是使您的服務器可以通過IPv6訪問,而不是讓您的應用程序在IPv6上工作。 –