簡體   English   中英

設置了正確的內容類型,但 .ipa 文件被視為 .zip 文件

[英]The correct content-type is set, but i the .ipa File is treated like a .zip File

我編寫了一個小型 Rails 應用程序,我可以在其中上傳三個文件,我需要這些文件以無線方式分發臨時構建。 這包括一個.ipa文件、一個.mobileprovisioning文件和一個.plist文件。

現在的問題是,當我單擊.ipa文件的鏈接時,文件被視為正常下載,我的 iDevices 詢問我將文件存儲在哪里。

curl -I example.com/path/to/App.ipa

生成此輸出

HTTP/1.1 200 OK
Date: Thu, 25 Oct 2012 13:55:08 GMT
Cache-Control: public, max-age=0
Last-Modified: Thu, 25 Oct 2012 10:23:07 GMT
ETag: "742-1351160587000"
Content-Type: application/octet-stream
Accept-Ranges: bytes
Content-Length: 742
Connection: keep-alive

我認為application/octet-stream是正確的內容類型。 我究竟做錯了什么?

預先感謝您的回答

問候, 布克

.ipa 文件只是一個(不是很好偽裝的)zip 文件(它只是重命名為.ipa )。 也許當您設置通用的application/octet-stream MIME-type 時,iOS 上的 Safari 瀏覽器會查看文件的實際內容,發現它實際上是一個 ZIP 存檔並繼續。 順便說一句,在我看來,您希望對 iOS 應用程序進行一些內部或臨時分發。 在這種情況下,您應該真正將用戶引導至 manifest.plist 文件(以itms-services://開頭的 URL),以便 iOS 知道它需要查找應用程序包,然后下載並安裝它。

文檔在這里。

請按照以下步驟操作:

  1. 將 .ipa 文件上傳到您的服務器
  2. 創建一個文件 <app_name>.plist,其內容如下:
<?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://www.anysite.com/application/your_app.ipa</string>
            </dict>
        </array>
        <key>metadata</key>
        <dict>
            <key>bundle-identifier</key>
            <string>com.example.helloworld</string>
            <key>bundle-version</key>
            <string>1.0.0</string>
            <key>kind</key>
            <string>software</string>
            <key>title</key>
            <string>App Name</string>
        </dict>
    </dict>
</array>
</dict>
</plist>

將“ bundle-identifier ”和“ title ”替換為您的值。

  1. 將 .plist 文件上傳到您的服務器
  2. 在 HTML 文件中創建一個鏈接,如下所示:
<a href="itms-services://?action=download-manifest&amp;url=https://www.anysite.com/application/your_app.plist">
Download
</a>
  1. 使用您的 iPhone,打開瀏覽器並轉到該頁面,單擊“下載”鏈接。 您的 iPhone 將安裝該應用程序。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM