Игровая площадка Swift не изолирована

Я ищу дополнительную информацию о том, как macOS Swift Playgrounds обрабатывает песочницу. Я хотел бы проверить, как некоторый код macOS работает внутри песочницы, но, насколько я вижу, игровая площадка не изолирована, по крайней мере, для macOS.

https://stackoverflow.com/a/38987133/2778502 говорит, что игровые площадки iOS изолированы, как и следовало ожидать.

Однако следующее предполагает, что игровые площадки macOS также изолированы:

Чтобы проверить это, я создал новую игровую площадку Swift macOS в Xcode 9.2 и поместил в нее следующий код. В основном это проверка «доступности» и читабельности /etc/hosts. Я выбрал этот файл только потому, что мне нужен был файл, который, как я знал, не должен быть доступен из изолированного приложения MacOS.

//: Playground - noun: a place where people can play

import Cocoa

var directory = URL(fileURLWithPath: "/etc/hosts")

do {
    if try directory.checkResourceIsReachable() {
        print("file URL \(directory) is reachable")
    }
    else {
        print("file URL \(directory) returned false")
    }
} catch {
    print("file URL threw error: \(error)")
}

var isReadableFile = FileManager.default.isReadableFile(atPath: "/etc/hosts")

Swift сообщает мне, что URL-адрес файла доступен, а isReadableFile — это true, т. е. в игре нет песочницы.

Итак, мои вопросы:

  • Правильно ли я считаю, что песочница действует для игровых площадок iOS, но не для игровых площадок macOS?
  • можно ли включить песочницу для игровой площадки macOS?

person jeff-h    schedule 01.01.2018    source источник
comment
Есть ли что-то, что заставляет вас ожидать, что код игровых площадок OS X будет помещен в песочницу?   -  person pvg    schedule 01.01.2018
comment
То, что вы говорите, не имеет смысла. Когда вы указываете путь к файлу, который пользователь не выбирает с помощью NSOpenPanel, вы отменяете схему песочницы.   -  person El Tomato    schedule 01.01.2018
comment
лол, извините за двусмысленность — может быть, я не должен публиковать в полночь! Уточняю сейчас.   -  person jeff-h    schedule 01.01.2018