Я ищу дополнительную информацию о том, как 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?