나는 이것을 위해 간단한 웹 사이트를 사용하고 있습니다. 웹 사이트에 버전 번호 (또는 날짜)가 포함 된 텍스트 파일이 있습니다. 내 코드는 단순히 파일을 다운로드하고 데이터베이스의 버전 필드를 사용하여 버전 또는 날짜를 확인합니다. 최신 버전 인 경우 다운로드 버튼을 활성화합니다.
다운로드 단추는 zip 파일을 다운로드하고 (zip 일 필요는 없음) 추출한 다음 기존 코어 데이터 파일을 새 onen으로 바꿉니다. 지금까지 (2012 년 이후) 아무런 문제없이 일해 왔습니다.
핵심 데이터베이스의 모든 데이터를 하나씩 삭제하고 원격 소스를 사용하여 데이터를 업데이트하는 것이 좋지만 핵심 데이터베이스의 sqlite 파일과 관련 파일을 간단히 대체하는 방법을 사용하고 있습니다. 코드 스 니펫은 다음과 같습니다. -
//removing the core data files
NSString *finalPath = [NSHomeDirectory()
stringByAppendingPathComponent:@"Documents/NTTimeTable.sqlite"];
[[NSFileManager defaultManager] removeItemAtPath:finalPath error:nil];
finalPath = [NSHomeDirectory()
stringByAppendingPathComponent:@"Documents/NTTimeTable.momd/NTTimeTable.mom"];
[[NSFileManager defaultManager] removeItemAtPath:finalPath error:nil];
finalPath = [NSHomeDirectory()
stringByAppendingPathComponent:@"Documents/NTTimeTable.momd/NTTimeTable.omo"];
[[NSFileManager defaultManager] removeItemAtPath:finalPath error:nil];
finalPath = [NSHomeDirectory()
stringByAppendingPathComponent:@"Documents/NTTimeTable.momd/VersionInfo.plist"];
[[NSFileManager defaultManager] removeItemAtPath:finalPath error:nil];
// Unzipping downloaded file
finalPath = [NSHomeDirectory()
stringByAppendingPathComponent:@"Documents"];
[SSZipArchive unzipFileAtPath:tempFilePath toDestination:finalPath];
[[NSFileManager defaultManager] removeItemAtPath:tempFilePath error:nil];
자세한 정보가 필요한 경우 알려주십시오. 원래 위치에 있었을 때 대체 할 수있는 권한이 없기 때문에 핵심 데이터베이스 파일을 Documents 디렉토리로 옮겼습니다. 제가 위에서 보여 주었다으로
Q/A
은, 난 그냥 웹 서버를 사용하여 내 웹 사이트에서 업데이트 파일을 떠날거야.
나는 당신의 웹 서버를 가지고 있다고 생각합니다. 인터넷에서 값싼 것을 얻을 수 있습니다. 무료 파일을 사용할 수 있지만 속도, 대역폭, 가용성 등을 고려해야합니다.
파일이 손상되지 않았는지 확인하기 위해 체크섬을 사용할 수 있습니다. 파일이 올바른지 확인하려면 파일 크기, 내용 등을 읽는 것과 같은 검사를 할 수 있습니다. 제 경우에는 파일 URL을 하드 코드 했으므로 아무 것도하지 않습니다. 데이터가 얼마나 민감한 지에 따라 다릅니다. 내 것은 공공의 물건과 꽤 흡사했습니다.
앱에서만 데이터를 요청할 수 있도록 간단한 인증을 사용할 수 있습니다. 어쩌면 사용자 이름 및/또는 암호/해시로 게시물 요청을 만들고, 웹 서버에서 확인을 받도록 할 수도 있습니다.나는 싸구려 웹 호스팅 제공 업체의 대부분이 PHP를 지원하므로 서버에 작은 PHP 파일을 사용합니다. 웹 서버의 PHP 파일에서 사용자 이름과 암호/해시를 하드 코딩합니다. 정말로 진지한 경우 비대칭 암호화와 같은 인증 메커니즘을 살펴 보는 것이 좋습니다.
이것은 어려운 부분입니다. 앱에서 다운로드 URL을 하드 코딩해도 사람들은 여전히 DNS를 변경하거나 모든 일을 수행하여 가짜 웹 서버를 만들어 파일/데이터를 보낼 수 있습니다. 하루가 끝나면 100 % 안전하지는 않지만 침입하기가 더 어려워 질 것입니다.
http://themainthread.com/blog/2014/03/replacing-a-core-data-store.html –