Судя по оставленным комментариям, вы пытаетесь запустить приложение iOS, которое использует Metal на macOS, с помощью симулятора iOS.
К сожалению, даже несмотря на то, что Metal поддерживается в macOS, на нем запущен Metal под симулятор iOS. не поддерживается.
А так как Metal не поддерживается, MTLCreateSystemDefaultDevice
возвращает nil
, что приводит к указанной вами ошибке.
Если вы хотите, чтобы ваш код выполнялся как на MacOS, так и на iOS,вам нужно написать приложение, чтобы оно было кроссплатформенным.Если это приложение, которое просто отображает материал на экране, без тонны пользовательского интерфейса, как игра, это должно быть довольно просто, поскольку Xcode предоставляет шаблон для кроссплатформенного проекта, использующего Metal.