2011-12-23 5 views
4

내 애플리케이션이 Documents 디렉토리에 데이터를 저장하기 위해 앱 스토어에서 최근 거부되었습니다. 최신 변경 사항으로 인해 db가 이제 쓰기 가능해야하므로 더 이상 읽기 전용이 아닙니다.Documents 디렉토리에 데이터베이스를 저장하는 앱이 거부되었습니다.

솔루션을 연구하면서 실제로 NSLibraryDirectory를 사용하는 것이 더 바람직하다고 읽었습니다. 이것이 더 중요하고, 애플의 우려를 해소 할 것인가? 그들의 불만은 앱이 사용자에게 많은 콘텐츠를 다운로드하게하고 (DB를 계산하지 않는 한 사용자가 다운로드 할 수 없도록 함) "잘못된 위치에 너무 많은 데이터"를 저장하고 있다는 것입니다. 데이터는 8MB이지만 최대 약 10 또는 12MB까지 증가 할 수 있습니다.

+0

"애플의 우려를 해결할 것인가?"- Apple 만이 대답 할 수 있다고 생각합니다. –

+0

Yah, 어쩌면 누군가가 같은 문제에 부딪혔을 수도 있습니다. –

답변

6

사실 iCloud 때문입니다.

iCloud를 사용하면 응용 프로그램의 문서 디렉토리가 클라우드 및 다른 장치와 동기화되므로 개발자는 iCloud와 동기화하려는 문서 디렉토리에 해당 데이터 만 저장할 수 있습니다.

@ Apple California에서 일하는 나의 친구 중 하나 인이 양식을 알게되었고,이 자료가 Apple의 설명서에 있는지 잘 모르겠습니다.

1

내가 이번 주에 개발 한 앱 제품군에 대한 업데이트로이 문제가있었습니다. 재미있는 점은 일곱 개의 앱 (정확하게 동일한 코드 기반) 중 다섯 개만 거부되었다는 것입니다.

필자의 경우이 문제는 .app 번들에서 자산을 ~/Documents로 복제하는 것으로 생각됩니다.

새 저장소 가이드 라인을 준수하기위한 첫 번째 시도는 ~/Documents에 복사 한 파일에 do not backup 스위치를 구현하는 것이 었습니다. 과 거래하지 않으므로 구현을 변경하여 데이터를 전혀 복사하지 않아야했습니다. 앱이 즉시 승인되었습니다.

구현이 다를 수 있지만 내 경험에 비추어 볼 때 Apple에서는 더 이상 앱 번들의 내용을 ~/Documents에 복사하는 것을 좋아하지 않습니다.보기에서 불필요하게 데이터를 복제 할 수 있기 때문입니다.

~/Caches (또는 그 무엇이든지)에 복사하는 것이 좋겠지 만, 저장 용량이 적은 경우에는 삭제할 수 있으며 케이스에 맞지 않을 수도 있습니다.

희망이 있습니다.

1

1 년 전에 작성한 제품은 CoreData (SQLite 데이터 저장소 포함)를 사용합니다. 이 데이터베이스 파일은 ~/Library/Application Support //에 저장됩니다. 이것은 Apple에 의해 아무런 문제없이 승인되었습니다.

~/Library에 "Application Support"가 없으므로 작성해야합니다.

문서는 여러 가지 이유로 데이터베이스 파일을 저장하기에 적합하지 않습니다. 애플은 당신의 앱을 거부했기 때문에 애플은 이유가있다. 또 다른 이유는 사용자가 iTunes를 통해 Documents 디렉토리에 액세스 할 수 있기 때문이며 데이터베이스 파일을 삭제하는 사용자가 앱을 운영하는 데 큰 문제가 아니라면 아무 것도 할 수없는 곳에 두는 것이 가장 좋습니다 직접 및/또는 우연히.

+2

Documents 디렉토리는 iTunes를 통해 사용자가 액세스 할 수 있습니다. 단, 앱의 UIFileSharingEnabled가 info.plist에서 YES로 설정되어 있으면 ? – Brynjar

+0

예, 사실, 설명해 주셔서 감사합니다. 사용하도록 설정하지 않으면 실제로 액세스 할 수 없습니다. 내가 작업 한 최근 제품의 관점에서 생각하고있었습니다. – gschandler

0

당신은 여전히 ​​문서 폴더에서 해당 파일을 넣을 수 있습니다, 당신은 단지 그들에게 아이 클라우드

This에 백업하지 알고 파일 시스템을 수 있도록하는 속성을 제공해야하는 것은 수행하는 방법의 좋은 예입니다 그래서 다른 iOS 버전에

관련 문제