カテゴリー
SugiBlog Webエンジニアのためのお役立ちTips

iTunesによるバックアップの保存場所

最近、iPhoneをバックアップしていなかったので、久しぶりにバックアップしておこうと思ったときに、バックアップの保存先が変わっていたのでメモ。

以前はこのような保存場所でした。

C:\Users\{username}\AppData\Roaming\Apple Computer\MobileSync\Backup

推測ですが、2020年8月頃から以下のような場所に変わったようです。

C:\Users\{username}\Apple\MobileSync\Backup
395 views

iPhoneのZoomアプリでマイクが使えない

Zoomミーティングをしていて、iPhoneの方の音声が繋がらないということがあったので、その原因と対処方法です。
Zoomのバージョンは5.9.3です。

まず原因はZoomアプリでiPhoneのオーディオに接続していないということでした。
これはiPhoneでZoomアプリをインストールしたばかりのデフォルトの設定がそうなっているようです。

マイクが使えるようにするには設定を変更します。
Zoomアプリの設定ボタンを押します。

「ミーティング」を選択します。

「自動接続オーディオ」が「オフ」になっていると思うので、これを「Wi-Fiまたは携帯のデータ」に変更します。

これでマイクを使う設定が有効になりました。
Zoomミーティングに接続するとマイクボタンが表示されますので、それでマイクのオン/オフを切り替えることが出来ます。

757 views

iOS13で発生するクラッシュ NSInternalInconsistencyException

GoogleMapを使用したiOSアプリを使っていて、地図を表示しているときに急にクラッシュするようになったので原因を調べました。
発生するエラーの内容は以下の通り

Fatal Exception: NSInternalInconsistencyException
Modifications to the layout engine must not be performed from a background thread after it has been accessed from the main thread.

iOS13で内部仕様が変わったことによるもののようです。

どうもバックグラウンドスレッドからUIを触るなということらしいですが、
そんなことはしていないつもりでした。
おそらくこれまでよりも厳密になったのでしょうか…。
とにかく対応するしかありません。

元のソースコード

let session = URLSession(configuration: URLSessionConfiguration.default)

let task = session.dataTask(with: URLRequest(url: Foundation.URL(string: url)!), completionHandler: { (data, response, error) in
    if let urlContent = data {
        print(urlContent)
    }
})
task.resume()

修正したコード

let session = URLSession(configuration: URLSessionConfiguration.default)

let task = session.dataTask(with: URLRequest(url: Foundation.URL(string: url)!), completionHandler: { (data, response, error) in
    if let urlContent = data {
        DispatchQueue.main.sync {
            print(urlContent)
        }
    }
})
task.resume()
8,981 views

Realm.addでコンパイルエラー

Realm.addメソッドで以下のようなコンパイルエラーが出ました。

'add(_:update:)' is unavailable: Pass .error, .modified or .all rather than a boolean. .error is equivalent to false and .all is equivalent to true.

どうやら第2引数にbool値を与える仕様が変わった模様。
第2引数に与える値はRealm.UpdatePolicyだそうで、
これまでfalseにしていた場合は.error、trueにしていた場合は.allを指定すればいいようです。

Xcode 11.2.1
Swift 5

805 views

iOS12.3.1でイベントdeviceorientationが動作しない

iOS 12.3.1のSafariでは、デフォルトでセンサーの値が取得できなくなったようです。

window.addEventListener("deviceorientation", function(event){}, true);

上記イベントがキャッチできません。

iOS 12.1では動作することを実機で確認しました。

対応策としては[設定]-[Safari]-[モーションと画面の向きのアクセス]をONにすると
キャッチできるようになりますが、一般ユーザーにこの設定を変えてもらうわけにはいきませんよね;
他に何か有用な情報を発見したら追記したいと思います。

1,322 views