Google Playで課金実装していないのに、「アプリ内課金あり」と表示されてしまう

Google Play アプリ内課金あり

実装環境

  • Unity2021.3.14f1
  • Firebase10.3.0
  • AdMob7.20

上記のように課金機能を実装していないのに、「アプリ内課金あり」と表示されてしまいました。
※しかもなぜか、PCのブラウザでGooglePlayを見ると「アプリ内課金あり」は表示されませんでした。

FirebaseやAdMobを入れた際になんらかの原因で課金ありと認識されてしまった可能性がないか調べたところ、Unity Package Managerから、In App Purchasingを削除したところ、無事GooglePlayから「アプリ内課金あり」は消えていました。

AndroidManifest.xmlの下記パーミッションを削除すれば解消されるケースもあるようですが、自分の場合はもともとBILLINGパーミッションの記載はなかったのでこちらの方法にいきつきました。

<uses-permission android:name="com.android.vending.BILLING" />

参考になれば嬉しいです。

Unity2019 2.12f1で、AndroidのUnityロゴスプラッシュが紫色に

環境

  • Unity2019 2.12f1
  • MacOS 10.15.1
  • Androidビルド

上記環境で、Androidで実行するとスプラッシュから紫色になって、
logcatでエラーも吐かない原因不明の状態になった。

デフォルトのUnityロゴのスプラッシュさえ紫色に…

PlayerSettingや、Graphicsなどの設定おResetして、
デフォルトの状態にしても状態が回復せず、

別のSceneを読み込んでもデフォルトのskyboxが出るだけ。



原因がわからず、とりあえずUnityプロジェクトを新規作成し、
作ったデータをExportして移行したら…
直った!

Unity2019 2.12f1で、Androidビルド時に「Shader compiler: Compile Hidden/CubeBlend – Pass 0, Fragment Program: Internal error, unrecognized message from the shader compiler process. Please report a bug including this shader and the editor log.」

環境

  • Unity2019 2.12f1
  • MacOS 10.15.1
  • Androidビルド

Androidでいつものようにビルドしていると、下記エラーで表示される

Shader compiler: Compile Hidden/CubeBlend - Pass 0, Fragment Program: Internal error, unrecognized message from the shader compiler process.  Please report a bug including this shader and the editor log.

ググると下記記事に参考になりました。

https://forum.unity.com/threads/unity-2019-2-7-build-ios-crashes-in-shader-compile.757754/

Unity2019 3.0(beta)から、UnityShaderCompilerファイルをコピーし、
Unity2019 2.12f1のUnityShaderCompilerファイルを上書きすれば解決するとの事。

こういうフォルダにはいっている→「/Applications/Unity/Hub/Editor/2019.2.12f1/Unity.app/Contents/Tools/UnityShaderCompiler」

実際やってみたけど。
本当にエラーがなくなりました。

また、上記フォーラムにありがたいことのUnity2019 3.0(beta)のUnityShaderCompilerだけ添付してくれている人もいる。(Unityごとダウンローづする手間が省ける)

Macで、Unity2019でビルド時に何度も、「”〜〜”は、開発元を検証できないため開けません。」と出る場合

久々開くmacで、UnityでAndroidビルドしていると何度も下記エラーで、2時間ぐらいとられたので、メモ。

ビルドの途中で、何度も、「”arm-linux-androidabi-objcopy”」は、開発元が検証できないため開けませんと、ビルドがコケてエラーがでまくるので、注意。

下記対処法



2は、システム環境設定 > セキュリティとプライバシー を開いてもOK。

この時、4の対象アプリが表示されない場合は、一度、1のダイアログ上で、「キャンセル」をクリックして、3,4の画面を開くを「このまま許可」のボタンが表示されるようです。

すると次に、1のダイアログ画面がでた時は、「開く」のボタンが表示されているので、開くを押す。

これで、1つずつ新しいエラーを許可することで最後までビルドが走りました。

ただ、毎回ビルドが途中で失敗するので非常に面倒でした。


私の場合、この作業をAndroid-NDK周りのアプリが大量にひっかかるので10回程度繰り返しました。。。aabファイルだったので、一回一回のビルドが時間かかりたいへんだった。

まとめ

キャンセルして、許可して、今度同じエラーがでたときに「開く」を繰り返す。面倒だけど、がんばった。

Unity PlayServicesResolverの自動更新を止める

環境 Unity2018 4.5

Unity2018 4.5でAndroidをビルドする際に、androidのplay-services周りのライブラリが自動更新されて、消しても消しても復活するので、それを自動更新しないようにする設定。

これで自動更新が止まる。ちゃんと「OK」ボタン押さないと反映されないので注意。

Unity2018 4.5 androidビルド時に「IndexOutOfRangeException: Index was outside the bounds of the array. UnityEditor.Android.AndroidBuildWindowExtension.GetBuildPlayerWindow () 」

Androidビルドすると下記エラーになった。

IndexOutOfRangeException: Index was outside the bounds of the array.
UnityEditor.Android.AndroidBuildWindowExtension.GetBuildPlayerWindow () (at &lt;62f761e6ab1445a38cdcb4ac36512695&gt;:0)
UnityEditor.Android.AndroidBuildWindowExtension.RepaintTargetList () (at &lt;62f761e6ab1445a38cdcb4ac36512695&gt;:0)
UnityEditor.EditorApplication.Internal_CallUpdateFunctions () (at /Users/builduser/buildslave/unity/build/Editor/Mono/EditorApplication.cs:200)

古いapkファイルを出力するレガシーモードになっていたらしい。

PlayerSettingを開いて「use legacy SDK tools」のチェックが入っていたので、チャックをはずすとうまくいった。

色々ぐぐったけど情報なく、
IndexOutOfRangeException〜 となっており、
エラー内容から想定できない対応だったのでメモ。

Unityビルドでandroid64bit対応&aab対応&playgames対応&facebooksdk対応&admob対応した自分用メモ

無数のUnityバージョンや、各種sdkを入れたきたノウハウの結集。

結論!下記組み合わせで入れれば、AndroidStudioを通さずUnity上ビルドだけですべて対応できます。

  • Unity2017 4.301f
  • gradleビルド(Custom Gradle Templateは利用しないで可)
  • lp2cppビルドにする。チェックするのは、 ARMv7 , ARM64のみ。 x86 はチェック外す。(x86はチェックするとGooglePlayに申請できない)
  • Proguardは無効
  • AndroidはminSdkVersionはOS4.4以上〜でTargetversionはauto
  • GooglePlayGames はこちらから、バージョンは「0.9.64」

> マイナーバージョン違いでいろんなところで躓いたので注意

  • Admob は「Google Mobile Ads Unity Plugin v3.18.3」を入れた。
  • FacebookSDKは、バージョン「7.17.2」 これも注意。

注意点

  • 事前に、GooglePlayConsoleや、Facebook、admobの登録は必要です。
  • lp2cppビルドはとても時間かかるので注意
  • x86はチェックを外さないと、64bit対応したのにまたビルドし直す必要がある
  • PlayServiceResolverや、各種sdkは、関連ファイルを削除してから入れ直すなどしないと基本沼にハマる。
  • aabファイルは、アプリ署名を忘れずに、
  • あと公開前のテストで、adbコマンドや、GoogleplayConsoleからのダウンロードでもインストールできないので、「内部アプリの共有」の機能つかって共有すればインストール可能。

Androidアプリのよくあるイカしたアプリのダウンロードボタンの作成方法! と、流入元分析!

クレカの有効期限切れで、、サーバー落ちてましたw。。

SEOだいぶ下がったか、、泣

というわけで、泣く子も黙るわけでもない久々の更新

アプリDLボタンのバッジ作成ツール

ここからバッジをサクッと生成できるんす!

https://play.google.com/intl/ja/badges/

UTMソース や、UTMキャンペーン を指定して、

どのブログや、SNSから流入してDLしたなどがわかるようになってます。

レポートは、Google Play Consoleの下記画面から見れるようです。

UTMタグで獲得チャネルの分析

https://developers.google.com/analytics/devguides/collection/android/v4/campaigns#google-play-url-builder

GooglePlay向けのUTMタグ生成サイトが、404になっていて、
どこで、android用のUTMタグの正しい形式を確認すればとおもっていましたが、バッジ作成ツールで生成すればよかったんですね。
先程の、バッジツールで、UTMソースや、キャンペーンを指定するとタグが反映されるので、
そちらでわかります。


<a href='https://play.google.com/store/apps/details?id=[パッケージ名]&utm_source=[UTMソース]&utm_campaign=[UTMキャンペーン]&pcampaignid=MKT-Other-global-all-co-prtnr-py-PartBadge-Mar2515-1'><img alt='Google Play で手に入れよう' src='https://play.google.com/intl/ja/badges/images/generic/ja_badge_web_generic.png'/></a>

この部分。


https://play.google.com/store/apps/details?id=[パッケージ名]&utm_source=[UTMソース]&utm_campaign=[UTMキャンペーン]

他にも便利なツールが色々

こちらはiOS/Androidのバッジも作れるすぐれもの!

http://mama-hack.com/app-reach/

関係ありそうなサイト一覧

UnityAndroidで、下記エラーがSDKやなにかを入れたタイミングでエラーを履くようになった。

確認環境
* Unity2017 2.0f1
* Gradleビルド

こんなエラーや、


Build failure com.android.build.api.transform.TransformException: com.android.ide.common.process.ProcessException: java.util.concurrent.ExecutionException: com.android.dex.DexException: Multiple dex files define Landroid/support/annotation/AnimRes; See the Console for details.

こんなエラーや、


UnityEditor.BuildPlayerWindow+BuildMethodException: 3 errors at UnityEditor.BuildPlayerWindow+DefaultBuildMethods.BuildPlayer (BuildPlayerOptions options) [0x00207] in /Users/builduser/buildslave/unity/build/Editor/Mono/BuildPlayerWindowBuildMethods.cs:172 at UnityEditor.BuildPlayerWindow.CallBuildMethods (Boolean askForBuildLocation, BuildOptions defaultBuildOptions) [0x00050] in /Users/builduser/buildslave/unity/build/Editor/Mono/BuildPlayerWindowBuildMethods.cs:83 UnityEngine.GUIUtility:ProcessEvent(Int32, IntPtr)

こんなエラーや、


CommandInvokationFailure: Gradle build failed. /Library/Java/JavaVirtualMachines/jdk1.8.0_25.jdk/Contents/Home/bin/java -classpath "/Applications/Unity/PlaybackEngines/AndroidPlayer/Tools/gradle/lib/gradle-launcher-2.14.jar" org.gradle.launcher.GradleMain "assembleRelease" stderr[ FAILURE: Build failed with an exception.

なにか原因かわからないため、解決するためにやったこと。

  • Player Settings の Publishing Setting > Custom Gradle Templateにチェックをいれ、
    カスタムのgradleをいじれる、mainTemplateをさわって、また戻したり。

  • Unityを再起動したり

  • Android SDKのToolsのAPIバージョンをあげたり。
    https://answers.unity.com/questions/1435579/how-can-i-fix-this-error-unityeditorbuildplayerwin.html

  • https://issuetracker.unity3d.com/issues/android-project-with-iap-plugin-fails-to-build-with-gradle-release-mode-only-and-throws-java-dot-io-dot-ioexception

Unityのバージョンを疑ったり

で、何かのタイミングで、エラーがでなくなり、無事APKファイルが履かれました…!

Unity で、Android gradle buildで、Multidexに対応する方法

UnityでAndroidアプリを作る際に、Multidexサポートに対応しないといけない場合に、
最初した際のメモ。

参考情報

https://forum.unity.com/threads/build-using-gradle-and-multidex-support.492117/

https://answers.unity.com/questions/1301593/android-gradle-build-error.html

要点

  • Custom Gradle Templateを使う (Build systemはgrandleに)

検証環境

  • MacOS High Sierra
  • Unity2017 2.0f3(Personal)