Расшифровывать данные IPA, такие как имя приложения, версия, значок и т. д. [MVC C#]

Обновленный вопрос

Мне удалось прочитать файл info.plist, и я получил ответ ниже. Я не знаю, как расшифровать в XML.

Скриншот

Я не уверен, как я могу это прочитать?


Актуальный вопрос

Я хочу создать приложение, как, Diawi.

Для этого я завершил часть загрузки приложения для Android и теперь хочу прочитать информацию об IPA, такую ​​как имя приложения, версия приложения, имя пакета и т. Д. В C#.

Я много искал, но не смог найти никакой документации для этого.

Может кто-нибудь, пожалуйста, наведите мне правильный способ сделать это?

1 ответ

Файл IPA - это ZIP-файл, поэтому первое, что вам нужно сделать, это извлечь этот файл.

После распаковки файла IPA мы получим папку с именем Payloadи файл с расширением app будет храниться в папке Payload, может быть, это приложение называется xxxx.app, и info.plist мы можем найти в этом приложении xxxx.app, путь к папке Payload должен быть Payload / xxxx.app / info.plist.

    // parse info.plist
    File plistFile = new File(plistFilePath);
    NSDictionary rootDict = null;
    try {
        rootDict = (NSDictionary) PropertyListParser.parse(plistFile);

        // get bundle id
        NSString parameter = (NSString) rootDict.objectForKey("CFBundleIdentifier");
        ipaInfo.put("CFBundleIdentifier", parameter.toString());

        // get application name
        parameter = (NSString) rootDict.objectForKey("CFBundleName");
        ipaInfo.put("CFBundleName", parameter.toString());

        // get version
        parameter = (NSString) rootDict.objectForKey("CFBundleVersion");
        ipaInfo.put("CFBundleVersion", parameter.toString());

        // get bundle display name
        parameter = (NSString) rootDict.objectForKey("CFBundleDisplayName");
        ipaInfo.put("CFBundleDisplayName", parameter.toString());

        // get ios mini. version
        parameter = (NSString) rootDict.objectForKey("MinimumOSVersion");
        ipaInfo.put("MinimumOSVersion", parameter.toString());
    } catch (Exception e) {
        e.printStackTrace();
    }
Другие вопросы по тегам