Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

ibtool fails to compile storyboard in Xcode 7.1 Beta

Having updated from Xcode 7.0 Beta 3 to 7.1 Beta (all intermediate releases including the 7.0 GM had a crash-on-launch bug for my project, which has only been fixed in 7.1 Beta) I can't build my project due to the following error:

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 is configured to use the Xcode 7.1 (7B60) command line tools:

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

And ibtool appears to be the correct version:

$ 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>  

EDIT: Comparing the output from a successful build in Xcode 7.0 Beta 3 (formatted for clarity):

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

with the unsuccessful one from 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?

reveals that I seem to be missing a value for the --compilation-directory argument and so the path to the storyboard is being used instead of as the target file for compilation.

Is it possible to inspect/modify this compilation step or is this likely a bug in Xcode?

like image 586
fractious Avatar asked Sep 17 '15 12:09

fractious


1 Answers

So thanks to an Apple support staff member, the solution is to move the Main.storyboard file from the Compile Sources build phase to the Copy Bundle Resources phase.

like image 194
fractious Avatar answered Nov 17 '22 07:11

fractious