Как добавить ресурсы с тем же именем, но разными папками в plugin.xml?

У меня есть объектно-ориентированный компонент iOS, который должен быть включен в плагин PhoneGap/Cordova.

Вот часть того, что у меня есть в файле plugin.xml:

<platform name="ios">
...

<resource-file src="src/ios/TGCameraViewController/View/Base.lproj/TGCameraAuthorizationViewController.xib" target-dir="TGCameraViewController/View/Base.lproj" />
<resource-file src="src/ios/TGCameraViewController/View/Base.lproj/TGCameraViewController.xib" target-dir="TGCameraViewController/View/Base.lproj" />
<resource-file src="src/ios/TGCameraViewController/View/Base.lproj/TGPhotoViewController.xib" target-dir="TGCameraViewController/View/Base.lproj" />

<resource-file src="src/ios/TGCameraViewController/View/de.lproj/TGCameraAuthorizationViewController.strings" target-dir="TGCameraViewController/View/de.lproj" />
<resource-file src="src/ios/TGCameraViewController/View/de.lproj/TGCameraViewController.strings" target-dir="TGCameraViewController/View/de.lproj" />
<resource-file src="src/ios/TGCameraViewController/View/de.lproj/TGPhotoViewController.strings" target-dir="TGCameraViewController/View/de.lproj" />

<resource-file src="src/ios/TGCameraViewController/View/pt-BR.lproj/TGCameraAuthorizationViewController.strings" target-dir="TGCameraViewController/View/pt-BR.lproj" />
<resource-file src="src/ios/TGCameraViewController/View/pt-BR.lproj/TGCameraViewController.strings" target-dir="TGCameraViewController/View/pt-BR.lproj" />
<resource-file src="src/ios/TGCameraViewController/View/pt-BR.lproj/TGPhotoViewController.strings" target-dir="TGCameraViewController/View/pt-BR.lproj" />

</platform>

Когда я пытаюсь добавить плагин в мое приложение, я получаю следующую ошибку:

Failed to install 'org.test.cordova.TestPlugin':Error: Uh oh!
target destination "/Users/mg/Documents/iOS/hello/platforms/ios/HelloWorld/Resources/TGCameraAuthorizationViewController.strings" already exists
    at module.exports.resource-file.install (/usr/local/lib/node_modules/cordova/node_modules/cordova-lib/src/plugman/platforms/ios.js:128:48)
    at Object.ActionStack.process (/usr/local/lib/node_modules/cordova/node_modules/cordova-lib/src/plugman/util/action-stack.js:72:25)
    at handleInstall (/usr/local/lib/node_modules/cordova/node_modules/cordova-lib/src/plugman/install.js:591:20)
    at /usr/local/lib/node_modules/cordova/node_modules/cordova-lib/src/plugman/install.js:340:28
    at _fulfilled (/usr/local/lib/node_modules/cordova/node_modules/q/q.js:787:54)
    at self.promiseDispatch.done (/usr/local/lib/node_modules/cordova/node_modules/q/q.js:816:30)
    at Promise.promise.promiseDispatch (/usr/local/lib/node_modules/cordova/node_modules/q/q.js:749:13)
    at /usr/local/lib/node_modules/cordova/node_modules/q/q.js:509:49
    at flush (/usr/local/lib/node_modules/cordova/node_modules/q/q.js:108:17)
    at process._tickCallback (node.js:419:13)
Error: Uh oh!
target destination "/Users/mg/Documents/iOS/hello/platforms/ios/HelloWorld/Resources/TGCameraAuthorizationViewController.strings" already exists
    at module.exports.resource-file.install (/usr/local/lib/node_modules/cordova/node_modules/cordova-lib/src/plugman/platforms/ios.js:128:48)
    at Object.ActionStack.process (/usr/local/lib/node_modules/cordova/node_modules/cordova-lib/src/plugman/util/action-stack.js:72:25)
    at handleInstall (/usr/local/lib/node_modules/cordova/node_modules/cordova-lib/src/plugman/install.js:591:20)
    at /usr/local/lib/node_modules/cordova/node_modules/cordova-lib/src/plugman/install.js:340:28
    at _fulfilled (/usr/local/lib/node_modules/cordova/node_modules/q/q.js:787:54)
    at self.promiseDispatch.done (/usr/local/lib/node_modules/cordova/node_modules/q/q.js:816:30)
    at Promise.promise.promiseDispatch (/usr/local/lib/node_modules/cordova/node_modules/q/q.js:749:13)
    at /usr/local/lib/node_modules/cordova/node_modules/q/q.js:509:49
    at flush (/usr/local/lib/node_modules/cordova/node_modules/q/q.js:108:17)
    at process._tickCallback (node.js:419:13)

Я попытался использовать:

<framework src="src/ios/TGCameraViewController" custom="true" />

Таким образом, я могу включить целую папку, но когда я хочу сделать #import "SomeClass.h", он не может найти файл.

Как добавить ресурсы с тем же именем, но разными папками в plugin.xml?

2
задан confile 30 нояб. '14 в 19:28
источник поделиться
1 ответ

Согласно спецификации плагина http://cordova.apache.org/docs/en/edge/plugin_ref_spec.md.html#Plugin%20Specification

элемент ресурса файла не поддерживает какой-либо целевой атрибут. целевой атрибут для android не для iOS.

Решение просто удаляет то, что у вас есть (выше кода) в вашем plugin.xml, и просто держите <resource-file src="src/ios/TGCameraViewController"/> в файле plugin.xml и пытайтесь его построить.

6
ответ дан yaswanthsvist 09 янв. '15 в 10:29
источник поделиться

Другие вопросы по меткам