Я написал программу для Mac App Store, которая отображает некоторую графику. Иногда он обновляет их из Интернета. Как и большинству людей, сейчас мне приходится помещать свое приложение в песочницу.
Почти все работает, но при обновлении он сохраняет файл в собственном комплекте моего приложения и завершается с ошибкой 'sandboxd: deny file-write-create'
Я просто использую fopen(..., "wb")
Путь, переданный в fopen: /Users/MyUser/Library/Developer/Xcode/DerivedData/MyApp-czuwveatgjffaggwqjdqpobjqqop/Build/Products/Debug/My.app/Contents/Resources/the_file.foo
Путь создается с использованием:
CFBundleRef bundle = CFBundleGetMainBundle();
CFURLRef url = CFBundleCopyResourcesDirectoryURL(bundle);
CFURLGetFileSystemRepresentation(url, true, (UInt8*)buf, sizeof(buf));
Я что-то делаю здесь явно не так? Мое приложение мультиплатформенное, поэтому в идеале я бы продолжал использовать fopen/etc. Как я понял, приложению должно быть разрешено записывать в свой собственный пакет, даже если ему запрещено делать что-либо в другом месте?
спасибо!