仮眠プログラマーのつぶやき

自分がプログラムやっていて、思いついたことをつぶやいていきます。

自作ゲームやツール、ソースなどを公開しております。
①ポンコツ自動車シュライシュラー
DOWNLOAD
②流体力学ソース付き
汚いほうDOWNLOAD
綺麗なほうDOWNLOAD
③ミニスタヲズ
DOWNLOAD
④地下鉄でGO
DOWNLOAD
⑤ババドン
DOWNLOAD
⑥圧縮拳(ツール)
DOWNLOAD
⑦複写拳
DOWNLOAD
⑧布シミュレーション
DOWNLOAD
⑨minecraft巨大電卓地形データ
DOWNLOAD
⑩フリュードランダー
デジゲー博頒布α版
DOWNLOAD
⑪パズドラルート解析GPGPU版
DOWNLOAD
⑫ゲーム「流体de月面着陸」
DOWNLOAD

2020年08月

Xcode+Unity+NCMB+古すぎるPCでハマった。Cannot find protocol declaration for 'ASAuthorizationControllerDelegate'

なかなか厄介なエラーにぶち当たったのでメモ

Mac OS : 10.13.6(High Sierra)
Xcode : 10.1
Unity 2020.1.2f1
NCMB v4.2.0


Unityで自作アプリを作成して、Xcodeでビルドして自前のiPhoneでデバッグしようとしたが
Cannot find protocol declaration for 'ASAuthorizationControllerDelegate': did you mean 'UINavigationControllNCMBAppleAuth.m'

とかいうエラーが発生。
e1

e2

e3


これは16個あるうちの最初のエラーで他にもいろいろあるようだけど、何が根本的な原因か全然わからなかった。
ちなみにNCMBを使っているのでデバッグにもApple Developer登録(1万円払うやつ)が必要だと思って、それはすでに取得してある。


でこれの解決方法だが、「PCを新しくする」をして解決した。

ここで使用していたPCはMacBook Air 2011 Midとかなり古かった。調べるとこのモデルはOSがどれだけ新しくしてもMac OS  10.13.6(High Sierra)まで。
(2020/8時点で最新の)Mac OS 10.15 Catalinaじゃないと使えないXcodeバージョンというのがあり、それでBuildを試したら謎のエラーはなくなった。

開発環境は古すぎるとダメという教訓であった。

【Unity】Android BuildでAPIレベル29以降にする方法

UnityでAndroid 10(API レベル 29)以降を導入

私の環境

OS:Windows 10
Unity Ver:2019.1.3f1 , 2019.4.8f1 , 2020.1.2f1
日付:2020/8/22

UnityのAndroid Buildで指定できるのはAPI 28(Android 9)まで

Google Play ストアに新規でアプリを公開する際に、API 29以上じゃないと怒られるようになりました。
googlestore

api_google

どうも2020/8/3から強制的にそうなったようで、私がこの沼にハマったのは8/22。なんとタイミングの悪いことか・・・おかげで情報がほとんどなく数時間消費してしまいました。

というのも、よりにもよってUnityのAndroid Buildで指定できるのはAPI 28(Android 9)までで、API 29(Android 10)で強行しようとするとこんなエラーがでます。

"Unable to install additional SDK platform. Please run the SDK Manager manually to make sure you have the latest set of tools and the required platforms installed. See the Console for details."

api29

自分でSDK Manager使ってなんとかしろということです。

SDK Managerの場所をみつけてAPI 29(Android 10)以降を導入

まずUnityがインストールされているフォルダを見つけ、その中のSDK Managerの場所をみつけます。
2020年現在、UnityHubで管理している方が多いでしょう。Unity 2019.4.8f1ならば
C:\Program Files\Unity\Hub\Editor\2019.4.8f1\Editor\Data\PlaybackEngines\AndroidPlayer\SDK\tools\bin
こんなフォルダが作られているはずです。

このフォルダ内にsdkmanager.batというファイルがあることを確認します。
次にコマンドプロンプトを管理者権限で起動

cd C:\Program Files\Unity\Hub\Editor\2019.4.8f1\Editor\Data\PlaybackEngines\AndroidPlayer\SDK\tools\bin

でディレクトリを移動して下記コマンドを1行ずつ実行
sdkmanager "build-tools;29.0.3"
sdkmanager "build-tools;30.0.2"
sdkmanager "platforms;android-29"
sdkmanager "platforms;android-30"

これでAPI 29とAPI 30がUnity 2019.4.8f1で使えるようになりました。

api30


ちなみにsdkmanager --listで導入できるパッケージ一覧が表示されます。

cmd

ここからさっきのAPI 29と30を拾ってきてました。他のはよくわからない・・・

デバッグを無効にする必要があります

やっと上のエラーを解決してもまだまだたくさんトラブルが降ってきます。タイトルとはずれますが、直後にこのトラブルに遭遇したので一応メモ

debug


"デバッグ可能なAPKまたはAndroid App Bundleをアップロードしました。セキュリティ上の理由により、Googl Playに公開するにはデバッグを無効にする必要があります。"

これはここを見て解決
https://teratail.com/questions/245964

別のバージョンコードを使用する必要があります

ここでさらに次のトラブルが降ってきます。
versioncode_

"バージョンコード 4 のAPK または Android App Bundle がすでに存在するために、別のバージョン コードを使用する必要があります。 "

これは簡単で、UnityのBuild Settings→Player Settings→Playerで

versioncode

ここの数字を変えてBuildしなおせば良いです。


最後に


※以上の知見は2020/8/22時点での対処法です。
プロフィール

toropippi

記事検索
アクセスカウンター

    QRコード
    QRコード
    • ライブドアブログ