Bug 208386
| Summary: | run-safari --ios-simulator fails with `Can't locate object method "dictionaryWithContentsOfFile_"` | ||
|---|---|---|---|
| Product: | WebKit | Reporter: | James Darpinian <jdarpinian> |
| Component: | Tools / Tests | Assignee: | Nobody <webkit-unassigned> |
| Status: | RESOLVED CONFIGURATION CHANGED | ||
| Severity: | Normal | CC: | ap, jbedard |
| Priority: | P2 | ||
| Version: | WebKit Local Build | ||
| Hardware: | Unspecified | ||
| OS: | Unspecified | ||
James Darpinian
When I run Tools/Scripts/run-safari --ios-simulator --debug, I get an error message:
Can't locate object method "dictionaryWithContentsOfFile_" via package "NSDictionary" (perhaps you forgot to load "NSDictionary"?) at /Users/jdarpinian/src/WebKit2/Tools/Scripts/webkitdirs.pm line 1527.
When I run Tools/Scripts/run-minibrowser --ios-simulator --debug, I don't get an error message, but it doesn't work either. The script runs for about 3 seconds and then exits without printing anything, and the iOS simulator does not start.
| Attachments | ||
|---|---|---|
| Add attachment proposed patch, testcase, etc. |
Alexey Proskuryakov
I'm guessing that you have a custom Perl installed via some package manager. What does "which perl" say in Terminal?
Does this work when just run with perl in command line?
sub f
{
eval "require Foundation";
print Foundation::perlRefFromObjectRef(NSDictionary->dictionaryWithContentsOfFile_("/Applications/Safari.app/Contents/Info.plist"));
}
f()
Alexey Proskuryakov
This code was removed in bug 211008, so this particular problem can't happen any more. Still, scripts are not guaranteed to work if you have a custom version of Perl or Python installed.