在网络服务器上分发 APK

Distribute APK on webserver

我创建了一个应用程序并希望用户能够从我的网站下载并在他们的设备上安装该应用程序 (phone)。 我使用 Android Studio 并生成了签名的 APK。现在我有 2 个文件(app-release.apk 和 output.json)

我尝试了一些代码,但其中大部分我得到了“HTTP ERROR 500”,然后我尝试了这个简单的代码 (PHP):

$file_name  = "app-release.apk";
$file_ext   = "apk";
$file_path  = 'my/app/folder/' . $file_name;
header("Cache-Control: public");
header("Content-description: File Transfer");
$contenttype = "application/com.android.package-install";
header("Content-Type: " . $contenttype);
header("Content-Disposition: attachment; filename=\"".$file_path."\""); 
header("Content-Tranfer-Encoding: binary");
readfile($file_path);

有了这个,我可以在设备上下载 APK。 但是...

  1. 我无法安装该应用程序。它只是说“无法打开”。
  2. 设备下载文件夹中的 APK 名称更改为 --> my_app_folder_app-release.apk 而且我不希望用户看到网站 structure/folders.

好的,我的问题是。 我怎样才能让用户正确地从网络服务器/网站下载和安装 APK。 我怎样才能防止 APK 名称更改?

对于第一个问题...“我无法安装该应用程序”...我无法通过浏览器下载安装该应用程序。我必须从文件管理器安装应用程序。这是因为我更改了安全性,因此我可以从文件管理器安装未知应用程序。 这样就解决了

filenameContent-Disposition: attachment; 之后需要的是您希望文件在保存时命名的文件名称,而不是现有文件的路径。

header('Content-Disposition: attachment; filename="$file_name"');

此外,如果您想通过 link 直接从您的服务器提供 APK,我怀疑您需要将此行添加到 apache 上的 .htaccess,因为 APK 不是默认的哑剧。之后您可以 link 直接访问该文件并允许他们下载它而无需额外的编程。

AddType application/vnd.android.package-archive apk