rm -rf plugins/*
rm -rf platforms/*
phonegap build ios //this works
phonegap local plugin add https://git-wip-us.apache.org/repos/asf/cordova-plugin-device.git
phonegap build ios
添加插件后为ios构建失败。这是错误:
** BUILD FAILED **
The following build commands failed:
CompileC build/PondMD.build/Debug-iphoneos/PondMD.build/Objects-normal/armv7/CDVDevice.o PondMD/Plugins/org.apache.cordova.device/CDVDevice.m normal armv7 objective-c com.apple.compilers.llvm.clang.1_0.compiler
(1 failure)
2014-01-16 10:32:15.055 xcodebuild[69605:1007] [MT] PluginLoading: Required plug-in compatibility UUID 37B30044-3B14-46BA-ABAA-F01000C27B63 for plug-in at path '~/Library/Application Support/Developer/Shared/Xcode/Plug-ins/XCode4_beginning_of_line.xcplugin' not present in DVTPlugInCompatibilityUUIDs
2014-01-16 10:32:16.630 xcodebuild[69605:4203] DVTAssertions: Warning in /SourceCache/IDEXcode3ProjectSupport/IDEXcode3ProjectSupport-3575/Xcode3Sources/XcodeIDE/Frameworks/DevToolsBase/pbxcore/SpecificationTypes/XCGccMakefileDependencies.m:78
Details: Failed to load dependencies output contents from ``/Users/william/working/PhonegapPondMD/platforms/ios/build/PondMD.build/Debug-iphonesimulator/PondMD.build/Objects-normal/i386/CDVDevice.d''. Error: Error Domain=NSCocoaErrorDomain Code=260 "The file “CDVDevice.d” couldn’t be opened because there is no such file." UserInfo=0x7fe7a57a7440 {NSFilePath=/Users/william/working/PhonegapPondMD/platforms/ios/build/PondMD.build/Debug-iphonesimulator/PondMD.build/Objects-normal/i386/CDVDevice.d, NSUnderlyingError=0x7fe7a57aaed0 "The operation couldn’t be completed. No such file or directory"}. User info: {
NSFilePath = "/Users/william/working/PhonegapPondMD/platforms/ios/build/PondMD.build/Debug-iphonesimulator/PondMD.build/Objects-normal/i386/CDVDevice.d";
NSUnderlyingError = "Error Domain=NSPOSIXErrorDomain Code=2 \"The operation couldn\U2019t be completed. No such file or directory\"";
}.
Function: void XCGccMakefileDependenciesParsePathsFromRuleFile(NSString *__strong, F) [F = <lambda at /SourceCache/IDEXcode3ProjectSupport/IDEXcode3ProjectSupport-3575/Xcode3Sources/XcodeIDE/Frameworks/DevToolsBase/pbxcore/SpecificationTypes/XCGccMakefileDependencies.m:168:73>]
Thread: <NSThread: 0x7fe7a57ab420>{name = (null), num = 7}
Please file a bug at http://bugreport.apple.com with this warning message and any useful information you can provide.
问题似乎是phonegap没有将objective-c类和标题复制到/ platforms / ios /
william-macbook-pro:PhonegapPondMD william$ ls -l plugins/
total 8
-rw-r--r-- 1 william staff 296 Jan 16 10:32 ios.json
drwxr-xr-x 11 william staff 374 Jan 16 10:30 org.apache.cordova.device
william-macbook-pro:PhonegapPondMD william$ ls -l platforms/ios/PondMD/Plugins/
total 8
-rw-r--r-- 1 william staff 890 Jan 16 10:30 README
william-macbook-pro:PhonegapPondMD william$ phonegap -v
3.3.0-0.18.0
答案 0 :(得分:21)
我有同样的问题,我解决了它在项目名称的第一个字母中用大写创建项目。是的,这似乎令人难以置信,但这是解决方案。
答案 1 :(得分:13)
我遇到了同样的问题,并使用此处的说明解决了问题:Cordova 3.2 ios add plugin "Which config.xml? Where is it?"
总结一下,我做了以下步骤:
1.通过以下方式删除ios平台:cordova平台删除ios
2.重新安装插件
3.(重新)通过以下方式添加了ios平台:cordova platform add ios
4.再次建造项目
在此之后,它建立得很好。
答案 2 :(得分:0)
当我使用cordova plugin add
命令添加插件时,它会将插件代码放在 plugins 文件夹中。
当您检查ios平台内的插件文件夹时,您会看到该插件不可用。
所以我创建了一个与插件名称相同的文件夹,并将插件src /目录中的文件复制到此文件夹中。在此之后,项目正确构建。
我还发现在xcode中打开本机项目以更接近地检查项目很有用。
答案 3 :(得分:0)
我选择了将./plugins / ..插件文件复制到ios平台插件目录的解决方案。无论谁需要它,这里都是一个小帮手。
(npm install gulp gulp-rename)
(gulpfile.js)
var gulp = require("gulp");
var rename = require("gulp-rename");
gulp.task("cp-plugins-ios", function(){
gulp.src(["./plugins/*/src/ios/*"],{base: 'ios'}).pipe(rename(function(path){
var myDir = path.dirname.replace("src/ios","");
path.dirname = myDir;
})).pipe(gulp.dest("./platforms/ios/projectName/Plugins/"));
});