私はAndroidライブラリプロジェクトにOneSignal SDKを追加しようとしています。そのため、私は自分のライブラリーのbuild.gradle
に必要な依存関係を追加してもmanifestPlaceholders
:アプリケーションでライブラリのマニフェストプレースホルダを使用するにはどうすればよいですか?
// One Signal:
manifestPlaceholders = [onesignal_app_id: "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX",
// Project number pulled from dashboard, local value is ignored.
onesignal_google_project_number: "XXXXXXXXXXXX"]
問題は、私は私が追加された私のライブラリを使用してデモアプリケーションを構築しようとするとOneSignal私はこれらのエラーを取得するということです
/path_to_project/demoapp/demoapp/src/main/AndroidManifest.xml Error:
Attribute meta-data#[email protected] at AndroidManifest.xml requires a placeholder substitution but no value for <onesignal_app_id> is provided.
/path_to_project/demoapp/demoapp/src/main/AndroidManifest.xml Error:
Attribute meta-data#[email protected] at AndroidManifest.xml requires a placeholder substitution but no value for <onesignal_google_project_number> is provided.
See http://g.co/androidstudio/manifest-merger for more information about the manifest merger.
:demoapp:processDebugManifest FAILED
FAILURE: Build failed with an exception.
* What went wrong:
Execution failed for task ':demoapp:processDebugManifest'.
> Manifest merger failed with multiple errors, see logs
AndroidManifest.xml
には何も手作業で追加しませんでした(アプリケーションとライブラリのどちらも)。
私のライブラリにOneSignal SDKを使用し、私のライブラリをどのアプリケーションにも追加できるように、onesignal_app_id
とonesignal_google_project_number
は私のライブラリを使用するすべてのアプリケーションで同じです。どうすればこれを達成できますか?
私の推測では、ライブラリレベルではなく、アプリケーションレベルでプレースホルダを定義する必要があります。 'gradle.properties'や他の共通の場所をプレースホルダの値に使うことができるので、それらを複製しません。 – CommonsWare
@CommonsWareしかし、これらの "キー"は私のライブラリにのみあり、それを使っているアプリではないようにする方法はありますか? 'onesignal_app_id'と' onesignal_google_project_number'を私のライブラリの他のユーザと共有しないでください。あるいは、これらの値を自分のアプリケーションの 'build.gradle'に手動で入れてもらってはいけません。 – fragon
"しかし、これらの"キー "は私のライブラリにのみあり、それを使っているアプリではないようにする方法はありますか?"私が気づいているのではない。 「onesignal_app_idとonesignal_google_project_numberを他のユーザーと共有しないようにしたい」 - サービスの利用規約に従えば、読んでいないが、私はかなり驚くだろう。それにもかかわらず、私は、アプリ開発者があなたのものを使うのではなく、自分の価値観を持つ必要があると考えています。私は、「すべてのアプリ」とは、第三者ではなく、あなたのスイート内のアプリを意味すると想定していました。 – CommonsWare