iCloudの認証エラー?にいて
解決したいこと
iCloud連携するアプリを作ってみたいと思い、勉強しているのですが、
databaseからの読み込みができなくて困っています。
シミュレータでのビルドはできるのですが、立ち上げ時にdatabaseからの読み込みができなかったエラーが出ます。
エラー文を読む限り、アカウント認証の問題のようなのですが、よくわかりません。
解決方法を教えてください。
発生している問題・エラー
database読み込みエラー。
エラー文を読む限り、アカウント認証の問題っぽいです。
出ているエラーメッセージを入力
Error read country
例)
NameError (uninitialized constant World)
または、問題・エラーが起きている画像をここにドラッグアンドドロップ
該当するソースコード
class ApplicationData:ObservableObject{
@Published var countryList : [CountryViewModel] = []
@Published var cityList : [CityViewModel] = []
var database : CKDatabase!
init(){
let container = CKContainer(identifier: "cityList")
database = container.privateCloudDatabase
Task(priority:.high){
await readCountries()
}
}
func readCountries()async {
let predicate = NSPredicate(format: "TRUEPREDICATE") // all true
let query = CKQuery(recordType: "Countries", predicate: predicate)
do{
let list = try await database.records(matching: query,inZoneWith: nil,desiredKeys: nil,resultsLimit: 0)
await MainActor.run{
countryList = []
for (_,result) in list.matchResults{
if let record = try? result.get(){
let newCountry = Country(name: record["name"], record: record)
let newItem = CountryViewModel(id: record.recordID, country: newCountry)
countryList.append(newItem)
}
}
countryList.sort(by: {$0.countryName < $1.countryName})
}
} catch {
print("Error read country \(error)")
}
}
自分で試したこと
signing & capabilityパネルのiCloudのところではContainersの名称も赤色にはなっていないので、container名は問題ないと思います。
0