你好,歡迎來到IOS教程網

 Ios教程網 >> IOS編程開發 >> IOS開發綜合 >> go言語完成IOS OTA裝置使用

go言語完成IOS OTA裝置使用

編輯:IOS開發綜合

如今的IOS OTA裝置使用需求運用https才干裝置。
要使得服務器支持https,服務器必需要有https證書。證書可以同過購置取得或許自己生成。
這裡我們運用自己生成的證書,運用自己生成的證書必需在iphone上手動裝置之後才干訪問https服務器,否則iphone會回絕訪問未受信任的https服務器。

運用openssl創立https證書 生成服務器的私鑰
mkdir /private/etc/apache2/ssl
cd /private/etc/apache2/ssl
sudo openssl genrsa -out server.key 1024 生成簽署請求(Common Name必需為服務器的ip或域名)
sudo openssl req -new -key server.key -out server.csr 生成CA私鑰
sudo openssl genrsa -out ca.key 1024 用CA的私鑰發生CA的自簽署證書
sudo openssl req -new -x509 -days 365 -key ca.key -out ca.crt 創立demoCA
demoCA外面創立文件index.txt和serial,serial內容為01,index.txt為空,以及文件夾newcerts
sudo openssl ca -in server.csr -out server.crt -cert ca.crt -keyfile ca.key
這樣我們就生成了server.crt,server.key,ca.crt文件。將 server.crt,server.key配置到服務器上,我們寄存的地位是”/private/etc/apache2/ssl/server.crt”,”/private/etc/apache2/ssl/server.key”, ca.crt放到文件根目錄中。

在運用以上進程生成證書的時分,要留意輸出common name的時分要輸出網站的訪問的域名或許是IP地址。

go言語完成證書裝置和app裝置
var installTemplate = `
<!DOCTYPE html>
<html>
<head lang="en">
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1, minimum-scale=1, user-scalable=no">
  <meta content="telephone=no" name="format-detection"/>
  <title>application name</title>
</head>
<style>
  html {
    width: 100%;
    height: 100%
  }
  body {
    width: 100%;
    height: 100%;
    background-color: #fafafa;
    font-family: "Microsoft YaHei";
    color: #0a0909;
    -webkit-touch-callout: none;
    -webkit-user-select: none;
  }
  div, p, header, footer, h1, h2, h3, h4, h5, h6, span, i, b, em, ul, li, dl, dt, dd, body, input, select, form, button {
    margin: 0;
    padding: 0
  }
  ul, li {
    list-style: none
  }
  img {
    border: 0 none
  }
  input, img {
    vertical-align: middle
  }
  * {
    -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
    outline: 0;
    box-sizing: border-box;
  }
  a {
    text-decoration: none;
  }
  h1, h2, h3, h4, h5, h6 {
    font-weight: normal;
  }
  body {
    padding: 20px;
  }
  .title {
    font-size: 18px;
    margin-bottom: 20px;
  }
  .install {
    width: 150px;
    height: 40px;
    border: 1px solid #ccc;
    background: transparent;
    border-radius: 6px;
    font-size: 14px;
    margin-bottom: 10px;
    display: block;
  }
</style>
<body>
  <p class="title">IOS使用OTA裝置</p>
  <a href="itms-services://?action=download-manifest&url=https://192.168.23.7:1718/static/manifest.plist">
    <button class="install">裝置使用</button>
  </a>
  <a title="iPhone" href="http://192.168.23.7:1717/static/ca.crt">
    <button class="install">證書信任</button>
  </a>
</body>
</html>
`
func main() {
    http.Handle("/install/", http.HandlerFunc(install))
    http.Handle("/static/", http.StripPrefix("/static/", http.FileServer(http.Dir("test"))))
    go func() {
        http.ListenAndServe(":1717", nil)
    }()
    err := http.ListenAndServeTLS(":1718", "server.crt", "server.key", nil)
    if err != nil {
        log.Fatal("ListenAndServe:", err)
    }
}

func install(w http.ResponseWriter, req *http.Request) {
    fmt.Fprint(w, installTemplate)
}

首先經過http://ip:1717/install訪問裝置頁面,在這個頁面首先點擊證書信任,以使iphone信任我們的暫時證書,然後在點擊裝置使用則可以停止使用裝置了。

這裡運用了go自帶的FileServer來停止靜態文件下載。

OTA裝置描繪文件manifest.plist

這個文件可以自己寫一個,也可以在xcode導出使用的時分經過xcode自動生成,其內容大約如下:

<?XmlRss/ target=_blank class=infotextkey>Xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>items</key>
    <array>
        <dict>
            <key>assets</key>
            <array>
                <dict>
                    <key>kind</key>
                    <string>software-package</string>
                    <key>url</key>
                    <string>https://192.168.23.7:1718/static/majiang-mobile.ipa</string>
                </dict>
                <dict>
                    <key>kind</key>
                    <string>display-image</string>
                    <key>url</key>
                    <string>https://</string>
                </dict>
                <dict>
                    <key>kind</key>
                    <string>full-size-image</string>
                    <key>url</key>
                    <string>https://</string>
                </dict>
            </array>
            <key>metadata</key>
            <dict>
                <key>bundle-identifier</key>
                <string>com.dreamgame.jd.QWXY</string>
                <key>bundle-version</key>
                <string>1.0</string>
                <key>kind</key>
                <string>software</string>
                <key>title</key>
                <string>majiang-mobile</string>
            </dict>
        </dict>
    </array>
</dict>
</plist>

其中bundle-identifier必需和xcode中的設置一樣和software-package即是經過https訪問apk文件的途徑。

【go言語完成IOS OTA裝置使用】的相關資料介紹到這裡,希望對您有所幫助! 提示:不會對讀者因本文所帶來的任何損失負責。如果您支持就請把本站添加至收藏夾哦!

  1. 上一頁:
  2. 下一頁:
蘋果刷機越獄教程| IOS教程問題解答| IOS技巧綜合| IOS7技巧| IOS8教程
Copyright © Ios教程網 All Rights Reserved