Esse método foi depreciado no ios 12.. mudou a assinatura e a forma como você chama o método, porque agora você tem que tratar o throw,....basicamente ficaria assim
do { let data = try NSKeyedArchiver.archivedData(withRootObject: meals, requiringSecureCoding: false) try data.write(to: archive) } catch { print("Couldn't write file") }
qualquer coisa da uma olhada na documentação, que la explica alguns outros detalhes. https://developer.apple.com/documentation/foundation/nskeyedarchiver/2962880-archiveddata
Não sei se fiz certo em reabrir o tópico, mas como não havia uma solução...acabei fazendo dessa forma, :]