2016-10-03 7 views
2

В настоящее время мы разрабатываем приложение iOS10, в том числе «Расширение сообщений».Как найти общий каталог Apple App Group

Чтобы использовать CoreDatas persistant store.sqlite inbetween App и Extension, мы используем общую папку «Apple App Group», которая работает нормально.

Теперь мы должны получить наши руки в магазине по причинам отладки и не можем найти каталог. Каталоги контейнеров приложений полностью пусты, что имеет смысл. Но как скачать нашу базу данных? Нужно ли нам каким-то образом скопировать его в доступное место?

Подводя итог:

  • Мы уже используем CoreData, который хранит model.sqlite в нашем общем каталоге.
  • Все работает.
  • Мы хотим архивировать, чтобы загрузить базу данных на наш компьютер.

Без общей папки мы можем просто загрузить контейнер приложения с устройства, используя Xcode-> Devices. Но поскольку мы используем общий каталог, база данных .sqlite не входит в контейнер.

Вопрос: Как мы можем загрузить базу данных .sqlite с устройства на наш компьютер?

+0

Было бы полезно увидеть код. Например, откуда вы знаете, что общий контейнер действительно пуст? Вы заглянули в NSFileManager.defaultManager(). ContainerURLForSecurityApplicationGroupIdentifier ("group.etc.etc.")? – inwit

+0

Общий контейнер не пуст. Контейнер приложений. – shallowThought

ответ

2
let sharedContainerURL :NSURL? = NSFileManager.defaultManager().containerURLForSecurityApplicationGroupIdentifier("group.etc.etc") // replace "group.etc.etc" with your App Group's identifier 
NSLog("sharedContainerURL = \(sharedContainerURL)") 
if let sourceURL :NSURL = sharedContainerURL?.URLByAppendingPathComponent("store.sqlite") 
{ 
    if let destinationURL :NSURL = NSFileManager().URLsForDirectory(.DocumentDirectory, inDomains: .UserDomainMask)[0].URLByAppendingPathComponent("copyOfStore.sqlite") 
    { 
    try! NSFileManager().copyItemAtURL(sourceURL, toURL: destinationURL) 
    } 
} 

Что-то вроде вышеуказанного получит файл из общего контейнера группы приложений в каталог документов приложения. Оттуда вы можете использовать Xcode> Window> Devices, чтобы получить его на свой компьютер.

Вы также можете использовать общий доступ к файлам ITunes, чтобы получить файл из каталога документов приложения после установки UIFileSharingEnabled в YES в файле Info.plist, но иметь в виду, что это подвергнет содержимое каталога для пользователя, а также. Однако должно быть хорошо для разработки/отладки.

+0

Я знаю, как это сделать программно. Примите ответ в любом случае. Благодарю. – shallowThought