そういうのがいいブログ

アプリ個人開発 まるブログ

アプリ開発覚え書き

【Unity】iOS実機フリーズ Xcode上で[ufw runUIApplicationMainWithArgc: argc argv: argv];でエラーが発生しアプリがフリーズした話

要件

・Unity2022.3.16f1
・Xcode14.3.1
Google Mobile Ads SDK v8.6.0

はじめに

AndroidiOSにて実機確認を行ったところ
iOSの方だけ特定タイミングでフリーズするという不具合発生。

フリーズタイミングでXcodeには以下のコードが表示され

[ufw runUIApplicationMainWithArgc: argc argv: argv];

の行にてThread 1: "corner_radius"というエラー?警告?が表示されました。

解決した内容

いろいろと格闘した結果、 変数への未割り付けが原因でした。

初歩的なミス。。。

余談

今回、広告のロードが完了したらイベントを発行して画像を表示するとしていました。

    //広告読込み状態を通知するイベント
    public event Action<bool> OnAdLoadingStatusChanged;


    //広告読込み完了時の処理
    private void OnRewardedAdLoaded(RewardedAd ad, LoadAdError error)
    {
        if (error != null || ad == null)
        {
            Debug.LogError("Failed to load reward ad : " + error);
            
            //広告読込み内容を通知 失敗false
            OnAdLoadingStatusChanged?.Invoke(false);
            return;
        }
        
        //リワード 読み込み完了
        Debug.Log("Reward ad loaded");
        
        //RewardedAd.Load(~略~)関数を実行することにより、RewardedAd型の変数adにRewardedAdのインスタンスを生成する。
        //生成したRewardedAd型のインスタンスを変数rewardedAdへ割り当て
        rewardedAd = ad;
        
        //広告の 表示・表示終了・表示失敗 の内容を登録
        RegisterEventHandlers(rewardedAd);
        
        //広告読込み内容を通知 成功true
        //エディター上では読み込み扱いになるがイベントが発行されない模様
        OnAdLoadingStatusChanged?.Invoke(true);
    }

 

こちらのコード、 エディター上では下記の部分がなぜか初回だけ実行されないという状況です。
そのため、エディター上でのテストで未割り付けを検出できず
未割り付けの発見が遅れるということが起きてしまいました。

 OnAdLoadingStatusChanged?.Invoke(true);

ちゃんと動いて。。。

おわりに

今回のエラーが発生したらまず変数への割り付けを確認する!
というのが今回の学びですね。
見たことのない内容だったのでちょっと焦りました。

同じエラーが出た方の時短となれば幸いです。

marumaro7.hatenablog.com