AndersFlyingApple Ответов: 1

Создать plist скачать, не создавая файл


I am trying to make a download link to my IOS app. This, as we all knows, requires a .plist file with all the informations regarding the app. I would like to make the download link, without having to create a file. I have tried to do it, but it does not work. I maybe think, it is because the link contains "url", which just points to the XML it selfs. Any ideas?

I have used this library: https://github.com/TooTallNate/plist.js


Что я уже пробовал:

Pastebin: https://pastebin.com/0fTqweYP

#realJSOP

Если для этого требуется файл plist, что заставляет вас думать, что вы можете сделать это без файла plist?

AndersFlyingApple

Я пытаюсь избежать создания файла, просто передавая содержимое файлов пользователю. Есть ли способ избежать физического создания файла?

1 Ответов

Рейтинг:
0

Richard Deeming

Цитата:
var plistBuildAndParsed = plist.build(plist.parse(plistData));

Основываясь на быстром чтении документация для этого проекта GitHub[^], все, что эта строка собирается сделать, это преобразовать ваш plist XML в JSON, а затем преобразовать JSON обратно в эквивалентный plist XML.

Если вы отладите свой код, то, вероятно, увидите, что URL-адрес, который вы пытаетесь запустить, выглядит примерно так:
itms-services://?action=download-manifest&url=<?xml version="1.0" ...

Очевидно, что содержимое XML-файла plist не является допустимым URL-адресом.

В поддерживаемом браузере вы можете комбинировать URL-адрес.createObjectURL[^] с помощью Капля[^] для создания URL - адреса для вашего XML-файла. К сожалению, Blob API, похоже, не поддерживается в iOS.

Ты можешь попробовать один data: УРИ[^] вместо:
var plistUrl = "data:text/xml," + encodeURIComponent(plistBuildAndParsed);
link.setAttribute("href", "itms-services://?action=download-manifest&url=" + encodeURIComponent(plistUrl));


AndersFlyingApple

Тай за ответ! :) Попробовал сделать это, но приложение все равно не установится на мой Iphone.. Я получаю сообщение об ошибке "не удается установить приложения, потому что сертификат для (null) недействителен"

Richard Deeming

Похоже, что этот протокол будет работать только с https:// Тогда URL. Если вы не хотите создавать статический plist-файл, вам понадобится некоторый код, запущенный на сервере, чтобы создать его по требованию. То, как вы это сделаете, будет зависеть от того, какой сервер вы используете и какие серверные языки он поддерживает.