私はこれに数時間困惑しており、誰かが光を当てることができるかどうか疑問に思っていました.
apk を bar ファイルに再パッケージ化するために、Blackberry の APK 再パッケージ化コマンド ライン ツールを使用しています。 https://developer.blackberry.com/android/documentation/preparing_android_apps_for_bbtos_1729415_11.html
再パッケージ化とコード署名をすべて一度に実行する .bat ファイルを作成しました。Windows Server 2008 R2 Standard Edition を実行しているマシンで作成して実行しました。実行するたびに、完全に機能します。Playbook App World 対応の素敵な署名済みバー ファイルを提供してくれます。スクリプトは次のとおりです。
echo %USERDOMAIN%\%USERNAME%
call apk2bar <apk_location> <android sdk location>
call batchbar-signer <bar_location> <developer_certificate> <keystore_password> <csk_password>
PHP exec コマンドを使用して PHP 経由でこのスクリプトをリモートで実行すると、問題が発生します。バーを作成しますが、コード署名部分で死にます。エラーは次のとおりです。
Error: Certificate chain not found for: RDK. RDK must reference a valid KeyStore key entry containing a private key and corresponding public key certificate chain.
私のキーストア(私が推測している.p12ファイル?)が存在しないか無効であることを示唆しているため、これは奇妙です。しかし、コマンド ラインからローカルで .bat ファイルを実行すると、なぜ常に動作するのでしょうか?
これは、スクリプトの apk2bar 部分に <-a author_name> 引数を指定していないためではないかと思いましたが、入力しても機能しません。
役に立つかもしれない追加情報:
-この PHP ファイルは、bat スクリプトが存在する同じ Windows マシン上にあります。リモートマシンからWebブラウザ経由で呼び出します。
Windows マシンは IIS 6.0 を実行しています
PHP スクリプトの実行中に %USERNAME% をエコーすると、最後にドル記号 ($) が付いたマシン名が表示されます。コマンドラインからスクリプトを呼び出すと、 %USERNAME% は現在ログインしているユーザーです。
コマンドラインから実行する場合、ログインしているアカウントは管理者アカウントです。
どんな助けでも大歓迎です!