Часть plugin.xmlCordova 3,0 плагин PLIST конфигурации
<!-- ios -->
<platform name="ios">
<config-file target="config.xml" parent="/*">
<feature name="MyPlugin">
<param name="ios-package" value="MyPlugin"/>
</feature>
</config-file>
<!--this need to be added to the .plist file-->
<config-file target="*-Info.plist" parent="UIBackgroundModes">
<array>
<string>location</string>
</array>
</config-file>
<header-file src="src/ios/MyPlugin.h" />
<source-file src="src/ios/MyPlugin.m" />
</platform>
Левая сторона Перед установкой мой плагин, правая сторона После:
Как вы можете видеть, прежде чем :
<key>NSMainNibFile</key>
<string></string>
<key>NSMainNibFile~ipad</key>
<string></string>
И после
<key>NSMainNibFile</key>
<string>
</string>
<key>NSMainNibFile~ipad</key>
<string>
</string>
Какая разница! Если я удалю эти пробелы, о которых я не знаю, откуда они пришли, у меня нет сбоев после запуска!
ИОС 6 выход имитатора (но такое же на устройстве тоже)
*** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'Could not load NIB in bundle: 'NSBundle </Users/myusername/Library/Application Support/iPhone Simulator/6.0/Applications/F4FDE3C4-D7A8-440F-866D-D0DECD79E2F5/My.app> (loaded)' with name '
''
*** First throw call stack:
(0xea012 0x2848e7e 0xe9deb 0x540fac 0x54298d 0x324ceb 0x325002 0x323ed6 0x335315 0x33624b 0x327cf8 0x367adf9 0x367aad0 0x5fbf5 0x5f962 0x90bb6 0x8ff44 0x8fe1b 0x3237da 0x32565c 0x1fe3c 0x1fd9d)
libc++abi.dylib: terminate called throwing an exception
(lldb)
Я думаю, что это ошибка в Кордова/PhoneGap, но это не делает мой босс счастливым. Как это решить? . .plist сгенерирован каждый раз при запуске из командной строки, поэтому его нельзя вручную редактировать.
Не удается найти документацию, только this, и я не знаю, почему добавлено мое местоположение 4 раза, если я написал только 1 раз.
Edit: После установки мой плагин из командной строки (но не компиляции или выполнения) PLIST выглядит следующим образом:
<key>NSMainNibFile</key>
<string>
</string>
<key>NSMainNibFile~ipad</key>
<string>
</string>
<key>UIBackgroundModes</key>
<array>
<string>location</string>
</array>
$ phonegap build ios
<key>NSMainNibFile</key>
<string>
</string>
<key>NSMainNibFile~ipad</key>
<string>
</string>
<key>UIBackgroundModes</key>
<array>
<string>location</string>
<string>location</string>
</array>
-observe: есть строка с добавленным место!
$ phonegap run ios
[phonegap] detecting iOS SDK environment...
[phonegap] using the local environment
[phonegap] compiling iOS...
[phonegap] successfully compiled iOS app
[phonegap] trying to install app onto device
[phonegap] no device was found
[phonegap] trying to install app onto emulator
[phonegap] successfully installed onto emulator
PLIST будет очищено 2 раза: те будут удалены 2x, наконец, он снова будет добавлен. Теперь PLIST выглядит следующим образом:
<key>NSMainNibFile</key>
<string>
</string>
<key>NSMainNibFile~ipad</key>
<string>
</string>
<key>UIBackgroundModes</key>
<array>
<string>location</string>
<string>location</string>
<string>location</string>
<string>location</string>
<string>location</string>
</array>
edit2:
cordova prepare
СЛУЧАЙНО очищает <string></string>
пробелы И всегда добавить <string>location</string>
в UIBackgroundModes массив!
https://issues.apache.org/jira/browse/CB-4731 –