TAKOYAKING’s blog 一覧

TAKOYAKING’s blog

たこ焼き系

Macで容量の「その他」が400GBくらい占有していたので掃除した

状況

iMacのディスクの中身が「その他」が400GBくらい占めていて、容量の警告が出てしまっていた。

やったこと

Xcode関連のファイルを削除

[Xcode 8.2] 年末なので Xcode まわりの不要ファイルを一掃してみた | DevelopersIO
MacでiOS開発してると圧迫されるストレージを大幅に削減する方法 | e-JOINT.jp

steampuppet.page.link
アプリを開発していて、何回もリリース作業を行なっていたので、気づいた時にはxcodeのarchiveにたくさんビルドしたものが残ったままになっていました。
かなり削減できました。

・ダウンロードフォルダの削除

思い切って全部削除!(一応必要なものが残っていないか確認を!)

・ゴミ箱の削除

すごいゴミがありました!

結果

この時点で200GBくらいの「その他」になったので半分になりました。

感想

減りましたが、まだあと100GBくらいは削減したいです。つづく・・・

FirebaseのUPMでの提供が終了したので.unitypackgeに移行したら罠にハマった

状況

UPM (unity package manager)でのfirebaseの提供がなくなったために、移行作業をする必要がありました。
.unitypackgeで導入する方法に切り替えましたが、大きく罠にハマりましました。

.unitypackageで提供されるものとUPMで提供されるSDKは若干中身が違っています。
違っているところは
.unitypackageではawaitに対応していません。(asyncキーワードがついていないので、実機ではエラーはでませんが、visual studioでは赤い波線が出て、補完も効かなくなります。)
なので

await db.Collection(PATH).Document(ID).UpdateAsync(name, value);

でawaitすることができなくなります。代わりにcontinuewithを使うことになります(拒否したい)。

解決策

qiita.com
この記事にやり方が書いてありました。
.tgzのファイルをUPMで管理するというやり方のようです。
この.tgzの中身と従来のUPMの中身は同じみたい(未確認)?なのでawaitも書けるし、UPMで管理できるし、いいこと尽くしです。

いろいろ機能を追加して、焦っていたところに、awaitが書けなくなるという罠にハマっていたので、助かりました。

Unity: iOSビルドすると「FirebaseAnalytics` requires CocoaPods version `>= 1.10.0」が出た

現象

FirebaseAnalytics` requires CocoaPods version `>= 1.10.0

UnityでiOSビルドを行うと上記のエラーが出てビルドができなかった

環境

  • Mac
  • Unity 2020.3.0

解決策

Macでpod updateができない | Cocoamix.jp
こちらを参考にします

gem update -n /usr/local/bin cocoapods

を実行すればOKでした。sudoはなくても動きました。

cocoapodのパスは

which pod

で出てくると思います。

Unity: JSON.NETとUnity Collabolateが競合する

現象

UnityのversionをあげるとなぜかJSON.NETで

Self referencing loop detected

とか

Multiple precompiled assemblies with the same name Newtonsoft.Json.dll included or the current platform

みたいなエラーが出るようになりました。

原因

Package managerにJSON.NETが入っており、Assets配下にもJSON.NETがあるので競合してるようでした。

解決策

重複して入れた記憶がなかったのでなんでだろうとpackages-lock.jsonを見てみると
com.unity.collab-proxy (Unity Collabolate)
JSON.NETに依存していました。
なのでUnity Collabolateは使っていなかったので、削除しました。


github.com
github.com

ここからUPM経由で再インストールしました。この時古いJSON.NETは削除しました。

入れたのは

  • jillejr.newtonsoft.json-for-unity: 13.0.102
  • jillejr.newtonsoft.json-for-unity.converters: 1.1.1

この2つでconverterは入れないとUnityのVector3とかをいい感じでシリアライズしてくれないです。

そして、Addressaablesを使っているなら、Addressablesをビルドします。
これをやらないと実機でconvertersの設定ファイルがないので、Vector3とかがうまく扱うことができません。

以上です。

Cloud Storage: 「Firebase.Storage.StorageException: Permission denied. Could not perform this operation Http Code: 403」

現象

Firebase.Storage.StorageException: Permission denied. Could not perform this operation Http Code: 403

google cloud storageでUnityからデータをダウンロードしようとすると上記のエラーがでた。

解決

Firebaseのログイン処理を通過して実行しないといけなかったみたいでした。
ログインシーンからではなく、別のシーンから始めて処理を実行していたため、ログイン処理が一度も実行されずに、データをダウンロードしようとしていたためでした。

Firebase: 異なるcollection配下にある複数のDocumentにトランザクションを実行する方法

状況

異なるcollection配下にある複数のdocumentに対してtransactionを実行したい

やり方

参考:
Cloud Firestore で複数の DocumentReference に対し Transaction を実行する - Qiita

同じトランザクションを使い回せば大丈夫なようです。
入れ子にした、違うトランザクションだとコミットされてしまったものはロールバックされないのでダメです。

正しい例:

const res = await firestore.runTransaction(async t => {
    t.create(refA, insertDataA);
    t.create(refB, insertDataB);
    throw 'error'; // 両方のデータがロールバックされる。
});

ダメな例:
入れ子にして違うトランザクションを実行してしまう。

const res = await firestore.runTransaction(async t1 => {
    t1.create(refA, insertDataA);
    const res = await firestore.runTransaction(async t2 => {
        t2.create(refB, insertDataB);
    )};
    throw 'error'; // t2はコミットされてしまうが、t1はロールバックされる。
});

iOSアプリ審査でサポートURLに関してリジェクトされた

状況

iTUnes Connectのアプリ審査でサポートURL (Support URL)に関してリジェクトされました

The support URL specified in your app’s metadata, https://takoyaking.web.app/, does not properly navigate to the intended destination.

Next Steps

To resolve this issue, please revise your app’s support URL to ensure it directs users to a webpage with support information.

今までこれで何もなかったのに突然のリジェクトでした。

対応

TwitterURLとか指定してもリジェクトされることがあるみたいなので、とりあえずブログに「サポートページです」みたいな記事を投稿してそれを指定してみることにしました(面倒なので適当で済ませたい・・・)

以前はこれでした
f:id:TAKOYAKING:20210331151628p:plain
伝わってくる適当感・・・

新しい方 (こっちも適当だけどコメント入力欄があるからきっとサポートページです!!)
takoyaking.hatenablog.com

結果

審査通りました!