2015-08-08 9 views
4

Я использую Xcode 7.0 beta 4, а недавно разделил мою единственную Main.storyboard на серию раскадровки связанный ссылками на раскадровку (недавно доступный в Xcode 7).Ошибка ibtool при связывании ссылок на раскадровку: Файл «Info.plist» не может быть сохранен в папке * .storyboardc

При строительстве, я получаю следующее "Interface Builder Раскадровка Linker Error":

/* com.apple.ibtool.errors */ 
: error: The file “Info.plist” couldn’t be saved in the folder “Pages.storyboardc”. 
    Underlying Errors: 
     Description: The operation couldn’t be completed. Not a directory 
     Failure Reason: Not a directory 

Как я могу понять смысл этой ошибки?


Ссылки раскадровки были созданы путем выбора сцены в оригинальной раскадровки и выбрав Editor> Refactor раскадровку .... Предыдущий вопрос, который я столкнулся в том, что раскадровка линкер метания другой тип ошибки:

/* com.apple.ibtool.errors */ 
: error: Deploying Storyboard References to iOS 8.0 requires that your storyboards do not 
     share any view controller identifiers. Browser.storyboard and Pages.storyboard 
     both contain a view controller with identifier "PagesViewController". 

Оказалось, что с помощью «Refactor в раскадровку ...» Команда была автоматически присваивается раскадровки идентификатор ссылки раскадровки основанный на одном из рефакторизованных идентификаторов контроллера просмотра. Это привело к ситуации, описанной в ошибке (ссылка на раскадровку с тем же идентификатором, что и идентификатор сцены контроллера вида). Я удалил эти идентификаторы, поскольку, по-моему, вам не нужно ссылаться на ссылку на раскадровку из кода.


Update:

Я также видел эта проблема проявляется в несколько иной ошибке:

/* com.apple.ibtool.errors */ 
: error: “<StoryboardReferenceID>.nib” couldn’t be removed. 
    Underlying Errors: 
     Description: The operation couldn’t be completed. Not a directory 
     Failure Reason: Not a directory 

ответ

3

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

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

Я не знаю, каковы последствия идентификатора раскадровки для ссылки на раскадровку, но кажется, что компоновщик предпочел бы, чтобы у них был один! Я бы предпочел предупреждение/ошибку компилятора вместо ошибки компоновщика, если требуется идентификатор (например, когда сцена недоступна из-за отсутствия идентификатора), поэтому я сейчас думаю, что это ошибка компоновщика, которая может быть сглажена по окончательному выпуску Xcode 7.

+0

Привет Стюарт, я также сталкиваюсь с этим. Не могли бы вы пояснить, что вы подразумеваете под «повторным добавлением идентификаторов раскадровки»? Я заметил, что эта ошибка также исчезает, когда я устанавливаю Identity-> StoryboardID непустым, но это приводит к ошибке времени выполнения, поэтому не помогает. – pixbroker

+0

«Повторно добавив идентификаторы раскадровки», я имею в виду то, что вы сказали о том, чтобы установить идентификатор раскадровки непустым. Я подозреваю, что вам нужно иметь дело с вашей ошибкой во время выполнения, но вам нужно будет опубликовать отдельный вопрос, чтобы справиться с этим (дайте мне знать, когда вы это сделаете, и я посмотрю). – Stuart