2025年9月4日木曜日

Mac OSXにCocoa Podsをインストールする。

 iOSではライブラリの依存関係をCocoapodsで管理しています。

UnityでiOSのプロジェクトをエクスポートすると、.xcodeproj形式のプロジェクトが作成されます。

これだけでは不十分で、下記のやり方で Ccoapodsを使えるようにする必要があります。


1.CocoaPodsをインストールする

# sudo gem install -n /usr/local/bin cocoapods


2.Podsをセットアップする

# pod setup


3.Podsをアップデートする

# pod update



これをすると、Podfile とPodfile.lock が作成され、.xcworkspace形式のプロジェクトが作成されます。

Xcodeでは、.xcworkspace形式のプロジェクトの方を使用しましょう。


2023年1月16日月曜日

PlayFabで”A Native Collection has not been disposed, resulting in a memory leak.”というエラーが出たときの対処方法

 PlayFab”A Native Collection has not been disposed, resulting in a memory leak.”というエラーが出たときの対処方法


PlayFabを使っていて、”A Native Collection has not been disposed, resulting in a memory leak. Allocated from:

Unity.Collections.NativeArray`1:.ctor(Byte[], Allocator) (at /Users/bokken/build/output/unity/unity/Runtime/Export/NativeArray/NativeArray.cs:69)”

というエラーが出ることがあります。

NativeArray.cs69行目でエラーが起きていて、メモリリークしているようです。



A Native Collection has not been disposed, resulting in a memory leak. Allocated from:

Unity.Collections.NativeArray`1:.ctor(Byte[], Allocator) (at /Users/bokken/build/output/unity/unity/Runtime/Export/NativeArray/NativeArray.cs:69)

UnityEngine.Networking.UploadHandlerRaw:.ctor(Byte[]) (at /Users/bokken/build/output/unity/unity/Modules/UnityWebRequest/Public/UploadHandler/UploadHandler.bindings.cs:95)

PlayFab.Internal.<Post>d__12:MoveNext() (at Assets/PlayFabSDK/Shared/Internal/PlayFabHttp/PlayFabUnityHttp.cs:117)

UnityEngine.SetupCoroutine:InvokeMoveNext(IEnumerator, IntPtr) (at /Users/bokken/build/output/unity/unity/Runtime/Export/Scripting/Coroutines.cs:17)

UnityEngine.MonoBehaviour:StartCoroutineManaged2(MonoBehaviour, IEnumerator)

UnityEngine.MonoBehaviour:StartCoroutine(IEnumerator) (at /Users/bokken/build/output/unity/unity/Runtime/Export/Scripting/MonoBehaviour.bindings.cs:91)

PlayFab.Internal.PlayFabUnityHttp:MakeApiCall(Object) (at Assets/PlayFabSDK/Shared/Internal/PlayFabHttp/PlayFabUnityHttp.cs:107)

PlayFab.Internal.PlayFabHttp:_MakeApiCall(String, String, PlayFabRequestCommon, AuthType, Action`1, Action`1, Object, Dictionary`2, Boolean, PlayFabAuthenticationContext, PlayFabApiSettings, IPlayFabInstanceApi) (at Assets/PlayFabSDK/Shared/Internal/PlayFabHttp/PlayFabHTTP.cs:228)

PlayFab.Internal.PlayFabHttp:MakeApiCall(String, PlayFabRequestCommon, AuthType, Action`1, Action`1, Object, Dictionary`2, PlayFabAuthenticationContext, PlayFabApiSettings, IPlayFabInstanceApi) (at Assets/PlayFabSDK/Shared/Internal/PlayFabHttp/PlayFabHTTP.cs:133)

PlayFab.PlayFabEventsInstanceAPI:WriteEvents(WriteEventsRequest, Action`1, Action`1, Object, Dictionary`2) (at Assets/PlayFabSDK/Events/PlayFabEventsInstanceAPI.cs:63)

PlayFab.Public.ScreenTimeTracker:Send() (at Assets/PlayFabSDK/Entity/ScreenTimeTracker.cs:190)

PlayFab.Public.ScreenTimeTracker:OnApplicationFocus(Boolean) (at Assets/PlayFabSDK/Entity/ScreenTimeTracker.cs:165)

PlayFab.Internal.PlayFabHttp:OnApplicationFocus(Boolean) (at Assets/PlayFabSDK/Shared/Internal/PlayFabHttp/PlayFabHTTP.cs:334)

UnityEditorInternal.InternalEditorUtility:OnGameViewFocus(Boolean)

UnityEditor.PlayModeView:SetFocus(Boolean) (at /Users/bokken/build/output/unity/unity/Editor/Mono/PlayModeView/PlayModeView.cs:441)

UnityEditor.GameView:OnLostFocus() (at /Users/bokken/build/output/unity/unity/Editor/Mono/GameView/GameView.cs:385)

UnityEditor.HostView:OnLostFocus() (at /Users/bokken/build/output/unity/unity/Editor/Mono/HostView.cs:295)



色々と調べていると、こちらに記事がありました。


PlayFabSdk/Shared/Public/Resources にある “PlayFabSharedSettings.asset “というファイルを、Assets/Resources にコピーすると直りました。


2022年1月11日火曜日

最新版のUnity Recorderをインストールする方法

 UnityのPackageManagerから Unity Recorderをインストールしようとすると

Unity Recorder 1.0.2 (Apr/17/2019)がインストールされてしまいます。

このバージョンは古く、色々とエラーが出るので、最新版をインストールしようと思います

















「Packages: Unity Registry」から、Unity Recorderを選ぶと、

最新版のUnity Recorder 2.5.7 (Nov/05/2021)がインストールできました。





2021年9月22日水曜日

[Unity] [Android] AndroidManifest.xml:41: AAPT: error: unexpected element found in . というエラーについて

 Unity 2019.4.29で、Target API 31でアプリをビルドしようとすると、エラーが出ました。

AndroidManifest.xml をこちらでカスタムする必要があります。


UnityのProjectSettingsで、Custom Base Gradle Template にチェックを入れます。










そうすると、Assts/Plugins/Android/baseProjectTemplate.gradle が生成されます。

その baseProjectTemplate.gradle の classpathが、


classpath 'com.android.tools.build:gradle:3.4.0' となっているのを

classpath 'com.android.tools.build:gradle:3.4.3' とすると通りました。





2021年4月25日日曜日

Unity で AndroidManifest.xmlを生成する

 Unity で AndroidManifest.xmlを生成する


UnityでカスタムするためにAndroidManifest.xmlを生成するには、

Project Settings -> Player -> Publishing Settings -> Buildの

Costom Main Manifest にチェックを入れます。








そうすると、Assets/Plugins/Android/AndroidManifest.xml が生成されます。

ここのXMLファイルに必要なことを追記すると、ビルドした際に、カスタムしたAndroidManifest.xml が生成されます。



2020年1月26日日曜日

Signing for "Unity-iPhone" requires a development team. というエラーメッセージが表示される

Signing for "Unity-iPhone" requires a development team. というエラーメッセージが表示される

XCodeでiPhoneアプリを開発していて、
「Signing for "Unity-iPhone" requires a development team」
というエラーメッセージが出ることがあります。

General -> ReleaseForProfiling を選んで、
Signing -> Teamで自分のチームを選びます。

そうすると、署名などの認証情報が表示されて、エラーが出なくなります。

2020年1月23日木曜日

Unity のキャッシュサーバーについて

Unityでスマートフォンアプリを開発する際に、Build Targetを
iOSとAndroidで切り替えを行うと時間がかかるようです。
各OS毎に画像てクチャの圧縮方法が違います

・iOS       RGB RVPTC 4bit
・Android   RGB ETC 4bit

そこで、Unityのキャッシュサーバー機能を使って、
各画像テクチャをキャッシュしておきます。
キャッシュがないと、切り替え毎にてクチャの圧縮処理が発生し、
何十分も待たされる事がありましたが、
キャッシュする事で、一瞬で終わります。


Unity Preferences -> Cache Server のところですね。