現在、UILocalNotificationsのカスタムサウンドは、初めてアプリケーションがインストールされたときにのみ動作するという問題が発生しています。アプリを2回目にインストールした後(つまり、アップグレードをシミュレートするため)、新しく作成された通知の場合でも、デフォルトのサウンドに戻ります。私は最低限のテストをするための新しいテストプロジェクトを作成しましたが、問題はまだ残っています。以下は私のViewControllerです:UILocalNotificationカスタムサウンドがアプリケーションのアップデート後に動作しない
class ViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
let notification = createNotification()
UIApplication.shared.scheduleLocalNotification(notification)
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
func createNotification() -> UILocalNotification {
let tenSecondsLater = Date().addingTimeInterval(10)
let notification = UILocalNotification()
notification.fireDate = tenSecondsLater
notification.alertTitle = "Test Notification Title"
notification.alertBody = "body"
notification.soundName = "alarm-20secs.wav"
return notification
}
}
権限がAppDelegateで正しく設定されています
UIApplication.shared.registerUserNotificationSettings(UIUserNotificationSettings(types: [UIUserNotificationType.alert, UIUserNotificationType.badge, UIUserNotificationType.sound], categories: nil))
再現手順:
- はXcodeで実行]を押してアプリをインストールします。アプリを家に押してください
- 〜10秒後、警告音が鳴り、正しいサウンドが再生されます。
- XcodeでRunを押すと、再びアプリケーションをインストールします。背景をアプリに送る
- 〜10秒後にアラートが表示されますが、デフォルトのサウンドが再生されます。
私はすでにcancelAllLocalNotifications()を呼び出そうとしましたが、何も変更されていないようです。強制終了は問題を再現せず、アップグレードのみを行います。アップグレード後、AVPlayerを使用してサウンドを再生することができるので、ファイルが削除されたようではありません。ローカルの通知のみが影響を受けます。
私は、UILocalNotificationはiOS 10では廃止予定でしたが、新しいUserNotificationフレームワークでは必要な機能である繰り返し通知をサポートしていないことをよく認識しています。この問題は、iOS 10および10.0.2を実行しているsimとdeviceの両方で発生します。私は、この特定の問題を記述している他のスレッドを見つけることができませんでした。この場合は、正常に動作しますが、アプリを再インストールした後にのみ動作します。これは、アップグレードパスが私のアプリにとって不可欠な通知音を壊すため、新しいバージョンをリリースするときに問題になります。 (アプリのアップデート後に)おそらく
このios10の問題では、レーダーへの参照/リンクがありますか? – ccwasden
アプリケーションを削除して、それを再インストールしてください。 –