我知道问题的标题有点奇怪。但我不知道我想做什么,被称为。所以,在这里 -
我正在开发一个简单的ADOBE AIR应用程序生成器,
生成所有必要文件并使用文件adt
我应该 - 生成实际的.air
文件。其中,在提供所有参数后要求输入密码。
我该怎么做?救命啊!
Packaging an AIR installation file using the AIR Developer Tool (ADT)
PS - 如果还有一些词来描述我在做什么,请评论:D
[UPDATE]
如果放一个
adt -package -storetype pkcs12 -keystore sampleCert.pfx HelloWorld.air
HelloWorld-app.xml HelloWorld.html AIRAliases.js
在命令行中,它会提示输入密码。可以输入它 - 使用控制台时。
当你在做exec();
时,你应该如何提供它?
答案 0 :(得分:1)
我认为您需要使用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 :(得分:1)
显然,您可以在命令行上指定密码。查看their docs并在-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
二进制文件的路径以及构建所需的文件。
答案 2 :(得分:0)
如果我理解正确,您想通过PHP ADP
拨打exec()
吗?
为了控制ADP等命令行工具的输入和输出,您可以查看proc_open
- 函数,这样就可以处理输入,输出和错误管道。
有关这些的更多信息可以在PHP手册中获得here。