Невозможно установить APK на моем собственном сервере Apache
Я экспортировал apk из eclipse. Я могу установить его без каких-либо проблем, если я скопирую его на SD-карту телефона.
При попытке загрузить через телефон (Galaxy S) браузер я получаю:
"Загрузите неудачный".
Я установил приложение mime type/vnd.android.package-archive в mime.types, перезапустил apache, все тот же результат.
Также попробовали:
<a href="downloads/my_apk.apk" type="application/vnd.android.package-archive">Download App</a>
По-прежнему не повезло.
Я могу загружать и устанавливать приложения с рынка Android. Я подозреваю, что apache не отправляет тип mime, но это всего лишь выстрел в темноте.
Как я могу исправить проблему и уметь устанавливать APK с моего веб-сервера? (или, по крайней мере, проверить, отправляет ли apache правильный заголовок с типом mime)
Любая помощь будет оценена.
Ответы
Ответ 1
В конце концов, я нашел проблему, частично благодаря сообществу CommonsWare.
Каталог, в который я помещал apks для загрузки, защищен simpe auth. Телефонный браузер правильно запрашивает (один раз) имя пользователя и пароль при просмотре, но, очевидно, забывает отправлять данные авторизации при попытке загрузить файл и что приводит к несанкционированному 401.
Решение: удалите базовый auth из этого каталога или используйте другой незащищенный каталог для apks.
Ответ 2
Лучше, если вы добавите расширение .apk в конфигурацию mime apache. Взгляните на этот пример:
https://svn.apache.org/repos/asf/httpd/httpd/trunk/docs/conf/mime.types
Вы можете просто найти запись "apk" и скопировать строку в файл /etc/mime.types на вашем сервере:
application/vnd.android.package-archive apk
Также добавьте это в /etc/apache 2/mods-available/mime.conf:
AddType application/vnd.android.package-archive .apk
(Есть и другие AddType-s, поместите их после них точно).
Отсюда вам не нужно ничего помещать для mime-типа apk в теге, сервер справится с этим.;)
UPDATE: исправлена ошибка в строке AddType
Ответ 3
Используйте curl
для проверки веб-сервера, чтобы убедиться, что он отвечает на HTTP-запрос и возвращает правильный тип MIME. Кроме того, пример вашего журнала сервера, чтобы узнать, какая ошибка регистрируется.
Ответ 4
Иногда у вас нет доступа к файлам конфигурации apache, таким как /etc/mime.types, особенно на общих серверах. Вы можете создать файл .htaccess(или открыть, если он уже существует) в корневом каталоге и добавить следующую строку:
Приложение AddType/vnd.android.package-archive.apk
Надеюсь, что это поможет.