用java上传ios违规app提供给用户下载

120 阅读1分钟

 如题

如何将非正规的ios应用程序提供给用户下载,需要准备2个东西  1文件服务器(oss服务器) 2带签名的ipa包 

我们大致的步骤是   1 上传ipa包到文件服务器,2拿到ipa包的下载链接 写入另外的一个文件(plist), 3 html注意标签

第一步忽略  

第二步

拿到ipa的下载链接后 我们开始制作一个后缀plist的文件

java代码

 public static Map<String, Object> returnPlist(String ipaUrl, String logoUrl, String version) {
        Map<String, Object> map = new HashMap<>();
        System.out.println("==========开始创建plist文件");
        // 这个地址应该是创建的服务器地址,在这里用生成到本地磁盘地址plistpath
        File file = new File(ConstantProperties.PLIST_PATH);
        if (!file.exists()) {
            file.mkdirs();
        }
        String plistFile = "a.plist";
        final String PLIST_PATH = "./" + plistFile;//ConstantProperties.PLIST_PATH + plistFile;
        file = new File(PLIST_PATH);
        if (!file.exists()) {
            try {
                file.createNewFile();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
        String plist = "<plist version="1.0">\n"
                + "<dict>\n"
                + "<key>items</key>\n"
                + "<array>"
                + "<dict>"
                + "<key>assets</key>\n"
                + "<array>"
                + "<dict>"
                + "<key>kind</key>\n"
                + "<string>software-package</string>\n"
                + "<key>url</key>\n"
                + "<string>" + ipaUrl + "</string>\n"
                + "</dict>\n"
                + "<dict>"
                + "<key>kind</key>\n"
                + "<string>full-size-image</string>\n"
                + "<key>needs-shine</key>\n"
                + "<true/>"
                + "<key>url</key>\n"
                + "<string>"
                + logoUrl
                + "</string>\n"
                + "</dict>\n"
                + "<dict>"
                + "<key>kind</key>\n"
                + "<string>display-image</string>\n"
                + "<key>needs-shine</key>\n"
                + "<true/>"
                + "<key>url</key>\n"
                + "<string>" +
                logoUrl
                + "</string>\n"
                + "</dict>\n"
                + "</array>\n"
                + "<key>metadata</key>\n"
                + "<dict>"
                + "<key>bundle-identifier</key>\n"
                + "<string>标识</string>"
                + "<key>bundle-version</key>\n"
                + "<string>版本号</string>\n"
                + "<key>kind</key>\n"
                + "<string>software</string>\n"
                + "<key>subtitle</key>\n"
                + "<string>oa_app</string>\n"
                + "<key>title</key>\n"
                + "<string>oa_app</string>\n"
                + "</dict>\n"
                + "</dict>\n"
                + "</array>\n"
                + "</dict>\n"
                + "</plist>\n";
        try {
            FileOutputStream output = new FileOutputStream(file);
            OutputStreamWriter writer;
            writer = new OutputStreamWriter(output, "UTF-8");
            writer.write(plist);
            writer.close();
            output.close();
            //IoUtil.write();


            String uuId = UUID.randomUUID().toString().toString().replace("-", "");
            map = AliyunOSSUtil.upload(file, uuId);
        } catch (Exception e) {
            System.err.println("==========创建plist文件异常:" + e.getMessage());
        }
        System.out.println("==========成功创建plist文件");
        return map;
    }

制作完plist文件后继续上传到文件服务器,拿到这个plist的链接就可以进行第三步

第三步

注意一下 下载前缀  必须是itms-services://?action=download-manifest&url= plist下载url

<!DOCTYPE HTML>
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
        <title>Install</title>
    </head>
    <body>
        <p align=center>
          <font size="10">
            <a style="color:#69DEDA" href="itms-services://?action=download-manifest&url=https://.../xxx.plist">点击安装</a>
          </font>
        </p>
    </body>
</html>

就ok了