ibtool 无法在 Xcode 7.1 Beta 中编译故事板

ibtool fails to compile storyboard in Xcode 7.1 Beta

从 Xcode 7.0 Beta 3 更新到 7.1 Beta(所有中间版本,包括 7.0 GM,我的项目都有一个启动时崩溃的错误,仅在 7.1 Beta 中修复)我可以' 由于以下错误而构建我的项目:

CompileStoryboard MyApp/Resources/Storyboards/Main.storyboard  
    cd /Users/me/Developer/my-app  
    export PATH="/Applications/Xcode-beta.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/usr/bin:/Applications/Xcode-beta.app/Contents/Developer/usr/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin"  
    export XCODE_DEVELOPER_USR_PATH=/Applications/Xcode-beta.app/Contents/Developer/usr/bin/..  
    /Applications/Xcode-beta.app/Contents/Developer/usr/bin/ibtool --errors --warnings --notices --module MyApp --output-partial-info-plist /Users/me/Library/Developer/Xcode/DerivedData/MyApp-bwakexzthboxucdaodqtbbbwgsaz/Build/Intermediates/MyApp.build/Debug-iphonesimulator/MyApp.build/Main-SBPartialInfo.plist --auto-activate-custom-fonts --target-device iphone --minimum-deployment-target 8.0 --output-format human-readable-text --compilation-directory /Users/me/Developer/my-app/MyApp/Resources/Storyboards/Main.storyboard  


/ com.apple.ibtool.errors */  
: error: Not enough arguments provided; where is the input document to operate on?  

Xcode 配置为使用 Xcode 7.1 (7B60) 命令行工具:

$ xcode-select -p  
/Applications/Xcode-beta.app/Contents/Developer  

ibtool 似乎是正确的版本:

$ ibtool --version  
<?xml version="1.0" encoding="UTF-8"?>  
<!DOCTYPE plist PUBLIC "-/  
<plist version="1.0">  
<dict>  
  <key>com.apple.ibtool.version</key>  
  <dict>  
  <key>bundle-version</key>  
  <string>9046</string>  
  <key>short-bundle-version</key>  
  <string>7.1</string>  
  </dict>  
</dict>  
</plist>  

编辑: 比较 Xcode 7.0 Beta 3 中成功构建的输出(为清楚起见格式化):

CompileStoryboard MyApp/Resources/Storyboards/Main.storyboard
    cd /Users/me/Developer/my-app
    export PATH="/Applications/Xcode 7.0 Beta/Xcode-beta.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/usr/bin:/Applications/Xcode 7.0 Beta/Xcode-beta.app/Contents/Developer/usr/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin"
    export XCODE_DEVELOPER_USR_PATH="/Applications/Xcode 7.0 Beta/Xcode-beta.app/Contents/Developer/usr/bin/.."
    /Applications/Xcode\ 7.0\ Beta/Xcode-beta.app/Contents/Developer/usr/bin/ibtool
    --errors
    --warnings
    --notices
    --module MyApp
    --output-partial-info-plist /Users/me/Library/Developer/Xcode/DerivedData/MyApp-bwakexzthboxucdaodqtbbbwgsaz/Build/Intermediates/MyApp.build/Debug-iphonesimulator/MyApp.build/Main-SBPartialInfo.plist
    --auto-activate-custom-fonts
    --target-device iphone
    --minimum-deployment-target 8.0
    --output-format human-readable-text
    --compilation-directory /Users/me/Library/Developer/Xcode/DerivedData/MyApp-bwakexzthboxucdaodqtbbbwgsaz/Build/Products/Debug-iphonesimulator/MyApp.app
    /Users/me/Developer/my-app/MyApp/Resources/Storyboards/Main.storyboard

2015-09-17 15:44:06.451 Interface Builder Cocoa Touch Tool[1216:88742] Error creating notification handler for simulator graphics quality override: 1000000

来自 Xcode 7.1 Beta 的不成功:

CompileStoryboard MyApp/Resources/Storyboards/Main.storyboard
    cd /Users/me/Developer/my-app
    export PATH="/Applications/Xcode-beta.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/usr/bin:/Applications/Xcode-beta.app/Contents/Developer/usr/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin"
    export XCODE_DEVELOPER_USR_PATH=/Applications/Xcode-beta.app/Contents/Developer/usr/bin/..
    /Applications/Xcode-beta.app/Contents/Developer/usr/bin/ibtool
    --errors
    --warnings
    --notices
    --module MyApp
    --output-partial-info-plist /Users/me/Library/Developer/Xcode/DerivedData/MyApp-bwakexzthboxucdaodqtbbbwgsaz/Build/Intermediates/MyApp.build/Debug-iphonesimulator/MyApp.build/Main-SBPartialInfo.plist
    --auto-activate-custom-fonts
    --target-device iphone
    --minimum-deployment-target 8.0
    --output-format human-readable-text
    --compilation-directory
    /Users/me/Developer/my-app/MyApp/Resources/Storyboards/Main.storyboard

/* com.apple.ibtool.errors */
: error: Not enough arguments provided; where is the input document to operate on?

显示我似乎缺少 --compilation-directory 参数的值,因此故事板的路径被用作编译的目标文件而不是目标文件。

是否可以 inspect/modify 这个编译步骤,或者这可能是 Xcode 中的错误?

感谢 Apple 支持人员,解决方案是将 Main.storyboard 文件从 Compile Sources 构建阶段移动到 Copy Bundle Resources 阶段。

为 "Error creating notification handler for simulator graphics quality override" 添加另一个可能的答案。当我在 xcode 构建阶段添加一个 运行 脚本,然后将脚本拖到 sop 以使其成为 运行 预构建时,我得到了这个错误。不知道为什么会这样,但是当我将 运行 脚本 window 拖回底部时它修复了它。