ionic-關於iOS系統升級到iOS14企業APP出現無法安裝解決方案

2020-09-28 13:00:47

1. 關於iOS系統升級到iOS14企業APP出現無法安裝解決方案

背景:

  • 是在其他的系統版本是下載成功並且可以正常安裝,同一個plist檔案,14以下的蘋果系統就是可以正常安裝的,14確不可以安裝。
  • 這類問題主要針對的是使用自建靜態資源服務下載的應用,非apple store、非第三方廠家如費米,蒲公英等等

發現問題:

[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片儲存下來直接上傳(img-P8A9vxw2-1601089162149)(../ionic-imgs/image-20200918143043263.png)]

  • 將下載的連結域名,用chrome開啟會發現顯示不安全連結,但是證書確實是有效證書,如果是正常的應該是鎖才對。
  • 開啟詳情,提示:用於載入此網站的連線使用的是TLS1.0或者TLS1.1,這兩個TLS版本都已經過時,不久之後完全停用。屆時,使用者將無法再載入此網站,伺服器應用啟動TLS1.2或更高版本。

定位原因:

TLS 1. 3 版本釋出之後,蘋果、谷歌、Mozilla和微軟四大瀏覽器製造商於 2018年10月聯合宣佈計劃在2020年初取消對TLS 1. 0 和TLS 1. 1的支援,所以導致現在iOS14下載不了app的問題

題外:

在iOS14上蘋果對於自身提供的解決方案中ats的要求更加嚴格,之前我們通過itms協定安裝應用時只要plist檔案是https即可,14之後要求ipa連結使用的也必須是https才行,否則將出現無法安裝的問題。

自建ipa下載應用滿足條件:

  • 不可使用http的下載頁面,巢狀https的下載連結

  • plist的檔案和ipa的連結都必須是https

  • 自建的伺服器設定的nginx必須支援ssl協定是tlsv1.2以上

    設定:

    server {
      server_name  xxx.xxx.com; 
          listen 443; 
          ssl on;
          access_log          /logs/nginx/xxx.xxx.com_access.log main;
          error_log           /logs/nginx/xxx.xxx.com_error.log;
          ssl_certificate     /opt/nginx/ssl/xxx.xxx.com.pem;   # 公鑰證書
          ssl_certificate_key /opt/nginx/ssl/xxx.xxx.com.key;   # 私鑰證書
          ssl_session_timeout 5m;                               # 使用者端能夠重用對談快取中ssl引數的過期時間
          ssl_protocols TLSv1 TLSv1.1 TLSv1.2;                  # 指定支援的協定,這裡表示支援1、1.1和1.2, 如果只寫1.2表示僅支援1.2.  注:OpenSSL版本要求 >= 1.0.1
          ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4:!DH:!DHE;  																																	# 加密套件,多個之間用冒號分隔,前有感嘆號的表示必須廢棄
          ssl_prefer_server_ciphers on;                         # 設定協商加密演演算法,優先使用伺服器端定義的加密套件
    }