Как отвечать на запросы пароля с помощью exec () - PullRequest
0 голосов
/ 14 сентября 2010

Я знаю, что название вопроса немного странно.Но я не знаю, как называется то, что я пытаюсь сделать.Итак, вот и все -

Я работаю над простым генератором приложений ADOBE AIR,

После создания всех необходимых файлов и подписания приложения с помощью файла adt

Я должен - создать настоящий .air файл.Который после ввода всех параметров запрашивает пароль.

Как мне это сделать?Помогите!

Упаковка установочного файла AIR с помощью AIR Developer Tool (ADT)

PS - Если вам нужно описать, что я делаю, прокомментируйте: D

[ОБНОВЛЕНИЕ]

Если ввести в командной строке

adt -package -storetype pkcs12 -keystore sampleCert.pfx HelloWorld.air HelloWorld-app.xml HelloWorld.html AIRAliases.js

, запрашивается пароль.В него можно войти - при использовании консоли.

Как вы должны предоставить это, когда вы делаете php exec();?

Ответы [ 3 ]

1 голос
/ 14 сентября 2010

Я думаю, вам нужно будет использовать proc_open вместо exec: http://us3.php.net/manual/en/function.proc-open.php Исходя из примера, вы бы сделали что-то вроде этого:

$adt_command = "adt -package -storetype pkcs12 -keystore sampleCert.pfx HelloWorld.air HelloWorld-app.xml HelloWorld.html AIRAliases.js";
$password = "keystore_password";

$process = proc_open($adt_command, $descriptorspec, $pipes, $cwd, $env);

if (is_resource($process)) {
    fwrite($pipes[0], $password);
    fclose($pipes[0]);
    $return_value = proc_close($process);
}
1 голос
/ 14 сентября 2010

Видимо, вы можете указать пароль в командной строке. Посмотрите на их документы и найдите на -storepass и -keypass.

-storepass password1 - пароль, необходимый для доступа к хранилищу ключей. Если не указан, ADT запрашивает пароль.

-keypass password2 - пароль, необходимый для доступа к закрытому ключу, который используется для подписи приложения AIR. Если не указано, ADT запрашивает пароль.

Вы можете создать нужную команду следующим образом:

<?php
    $command = "/path/to/adt -package -storetype pkcs12 -storepass password -keypass password -keystore /path/to/sampleCert.pfx /path/to/HelloWorld.air /path/to/HelloWorld-app.xml /path/to/HelloWorld.html /path/to/AIRAliases.js";

    $output = exec($command);
?>

Убедитесь, что вы указали пути к двоичному файлу adt, а также файлы, необходимые для сборки.

0 голосов
/ 14 сентября 2010

Если я вас правильно понимаю, вы хотите вызвать ADP через PHP exec()?

Чтобы контролировать ввод и вывод с помощью инструмента командной строки, такого как ADP, вы можете заглянуть в proc_open -функции, с этим вы можете обрабатывать каналы ввода, вывода и ошибок.

Более подробную информацию о них можно получить здесь в руководстве по PHP.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...