もっと詳細には try player = AVAudioPlayer(contentsOf: url) で
Thread 1: EXC_BAD_ACCESS (code=1, address=0x48) - broken with
というエラーコードで落ちた。リリースしていたアプリが落ちるのだから、iOS13のせいだ。
import UIKit
import AVFoundation
class ViewController: UIViewController {
var player = AVAudioPlayer()
override func viewDidLoad() {
super.viewDidLoad()
do {
if let audioPath = Bundle.main.path(forResource: "BGM", ofType: "mp3") {
let url = URL(fileURLWithPath: audioPath)
try player = AVAudioPlayer(contentsOf: url)
}
} catch {
print("ERROR")
}
self.player.play()
}
}
調べたところ、頭でインスタンス変数として宣言している
var player = AVAudioPlayer()
を
var player:AVAudioPlayer!
とoptionalにしたところ、落ちなくなった。
変数作る際に初期化コードを書いても初期化されなくなる仕様変更があったんだろうか? そうなるとAVAudioPlayer以外でも同じ問題出てくる?
はじめまして。AVAudioPlayerを使用する2つのアプリをリリースしている者です。
返信削除今日、ちょうどアップデート申請をしたところ、トップページでAVAudioPlayerを使用している
アプリで、クラッシュが原因で審査却下されていました。
Xcode10+iOS12.4の実機で諸々確認していたため、原因・状況がわからなかったのですが、
「iOS13にして色々なアプリが落ちるようになった」と訴える人が多いようだったので、
Xcode11+iOS13実機にして再確認したところ、こちらの記事と同様のエラーが出ており、
ネット検索したところ、こちらの記事にたどり着きました。
私のアプリでも、var player:AVAudioPlayer! のように記述変更したところ、iOS13実機では
無事正常な動作になっていたので、これで再度審査に出してみたいと思います。
本当に助かりました、記事にしていただいてありがとうございました!!
はじめまして!
返信削除クライアントからチャット画面のボイスが再生できず落ちるという報告を受けて狼狽していたところこちらの記事に救われました。。。
本当にありがとうございます!!!