cordovaIOS错误build立Images.xcassets

我花了很多时间试图解决这个问题。

我解雇了cordova,因为埃尔卡皮坦现在和我的麦克马尔有问题。

我得到它安装,但我现在必须使用sudo cordova。

尝试了以下内容:

sudo cordova platform remove ios sudo cordova platform add ios sudo cordova build ios 

这给了我以下输出:

 ** BUILD FAILED ** The following build commands failed: CompileAssetCatalog build/emulator/<AppName>.app <AppName>/Images.xcassets (1 failure) ERROR building one of the platforms: Error code 65 for command: xcodebuild with args: -xcconfig,/Users/MacUserName/Desktop/<AppName>/<AppName>/platforms/ios/cordova/build-debug.xcconfig,-project,<AppName>.xcodeproj,ARCHS=i386,-target,<AppName>,-configuration,Debug,-sdk,iphonesimulator,build,VALID_ARCHS=i386,CONFIGURATION_BUILD_DIR=/Users/MacUserName/Desktop/<AppName>/<AppName>/platforms/ios/build/emulator,SHARED_PRECOMPS_DIR=/Users/MacUserName/Desktop/<AppName>/<AppName>/platforms/ios/build/sharedpch You may not have the required environment or OS to build this project Error: Error code 65 for command: xcodebuild with args: -xcconfig,/Users/MacUserName/Desktop/<AppName>/<AppName>/platforms/ios/cordova/build-debug.xcconfig,-project,<AppName>.xcodeproj,ARCHS=i386,-target,<AppName>,-configuration,Debug,-sdk,iphonesimulator,build,VALID_ARCHS=i386,CONFIGURATION_BUILD_DIR=/Users/MacUserName/Desktop/<AppName>/<AppName>/platforms/ios/build/emulator,SHARED_PRECOMPS_DIR=/Users/MacUserName/Desktop/<AppName>/<AppName>/platforms/ios/build/sharedpch 

cordova版本

 sudo cordova -v 6.0.0 

更新:我现在正在运行6.1.1,仍然是同样的问题

cordovaiOS平台版本

 sudo cordova platform ios -v 6.1.1 

Mac版本:10.11.3
XCode版本:7.2.1

我设法解决这个问题:

  • 删除config.xml文件中的任何图标或启animation面引用;
  • 在您的cordova项目的www/resources文件夹中放置splash.png和/或icon.png文件; 然后,
  • 运行ionic cordova resources --iconionic cordova resources --splash命令

这会为你创build所有正确的splash / icon文件,并将它们添加到config.xml文件中。 那警告就消失了。

希望这个作品!

  1. 重命名平台/ ios
  2. 在terminal上input: cordova platform add ios
  3. cordova build ios

在我的情况下工作

我在使用cordova-icon时出现这个错误,但是我的icon.png图片不是方形的。

icon.png更改为方形图像并重新制作cordova-icon意味着cordova build ios现在对我来说是合适的。

在深入cordova_lib之后,我认为(对我来说)cordova不应该为你调整图标大小,而只是复制它们,如果它们存在并且尺寸合适的话。

在cordova-lib \ src \ cordova \ metadata \ ios_parser.js中查看以下代码:

 // See https://developer.apple.com/library/ios/documentation/userexperience/conceptual/mobilehig/LaunchImages.html // for launch images sizes reference. var platformIcons = [ {dest: 'icon-60.png', width: 60, height: 60}, {dest: 'icon-60@2x.png', width: 120, height: 120}, {dest: 'icon-60@3x.png', width: 180, height: 180}, {dest: 'icon-76.png', width: 76, height: 76}, {dest: 'icon-76@2x.png', width: 152, height: 152}, {dest: 'icon-small.png', width: 29, height: 29}, {dest: 'icon-small@2x.png', width: 58, height: 58}, {dest: 'icon-40.png', width: 40, height: 40}, {dest: 'icon-40@2x.png', width: 80, height: 80}, {dest: 'icon.png', width: 57, height: 57}, {dest: 'icon@2x.png', width: 114, height: 114}, {dest: 'icon-72.png', width: 72, height: 72}, {dest: 'icon-72@2x.png', width: 144, height: 144}, {dest: 'icon-50.png', width: 50, height: 50}, {dest: 'icon-50@2x.png', width: 100, height: 100} ]; var destIconsFolder, destSplashFolder; var xcassetsExists = folderExists(path.join(platformRoot, 'Images.xcassets/')); if (xcassetsExists) { destIconsFolder = 'Images.xcassets/AppIcon.appiconset/'; } else { destIconsFolder = 'Resources/icons/'; } platformIcons.forEach(function (item) { var icon = icons.getBySize(item.width, item.height) || icons.getDefault(); if (icon){ var src = path.join(appRoot, icon.src), dest = path.join(platformRoot, destIconsFolder, item.dest); events.emit('verbose', 'Copying icon from ' + src + ' to ' + dest); shell.cp('-f', src, dest); } }); 

最好的select似乎是使用一个插件,为您resize的钩子。 查看在Cordova / PhoneGap或https://github.com/disusered/cordova-icon-gm&#x4E2D; 生成iOS和Android图标,以获取同一插件的新的更具前景的版本(目录中的钩子在6.x中不推荐使用)。

我设法解决了这个问题,通过删除config.xml中的非故事板飞溅引用,最新版本的cordova似乎只使用故事板:

如此删除:

  <splash src="res/ios/splash/Default~iphone.png" width="320" height="480"/> <splash src="res/ios/splash/Default@2x~iphone.png" width="640" height="960"/> <splash src="res/ios/splash/Default-Portrait~ipad.png" width="768" height="1024"/> <splash src="res/ios/splash/Default-Portrait@2x~ipad.png" width="1536" height="2048"/> <splash src="res/ios/splash/Default-Landscape~ipad.png" width="1024" height="768"/> <splash src="res/ios/splash/Default-Landscape@2x~ipad.png" width="2048" height="1536"/> <splash src="res/ios/splash/Default-568h@2x~iphone.png" width="640" height="1136"/> <splash src="res/ios/splash/Default-667h.png" width="750" height="1334"/> <splash src="res/ios/splash/Default-736h.png" width="1242" height="2208"/> <splash src="res/ios/splash/Default-Landscape-736h.png" width="2208" height="1242"/> 

而只保留这些:

  <splash src="res/ios/splash/Default@2x~iphone~anyany.png" /> <splash src="res/ios/splash/Default@2x~iphone~comany.png" /> <splash src="res/ios/splash/Default@2x~iphone~comcom.png" /> <splash src="res/ios/splash/Default@3x~iphone~anyany.png" /> <splash src="res/ios/splash/Default@3x~iphone~anycom.png" /> <splash src="res/ios/splash/Default@3x~iphone~comany.png" /> <splash src="res/ios/splash/Default@2x~ipad~anyany.png" /> <splash src="res/ios/splash/Default@2x~ipad~comany.png" /> 

对于solo icon.png文件,图像必须是1024×1024才能在config.xml中使用独奏<icon src="icon.png"/>

我必须用cordova-cli 6.5.0cordova-ios 4.5.1xcodebuild 9.0

我会build议使用cordova-icon和cordova-splash npm软件包。 这是因为你可以把两个图像放在你的根目录下,那么这些命令就会为你解决其余的问题。 他们是由cordova,你可以使用安装:

 npm install -g cordova-icon npm install -g cordova-splash 

然后在项目的根目录下放一个你的logo的标识为“icon.png”。 和:

“初始屏幕图像应为2208×2208像素,中心正方形大约为1200×1200像素,图像可能会在中心四周被裁剪。

https://www.npmjs.com/package/cordova-splash

只需将与该说明相匹配的图像放在项目根目录中作为“splash.png”

删除config.xml中指定要用于ios的图像的任何行,cordova-icon / splash会自动将它们放在正确的名称上,以便xcode能够识别它们。

一旦你有了这个设置,只需执行这些命令:

 cordova platform remove ios cordova platform add ios cordova-icon cordova-splash 

然后运行你的构build命令。 对我来说是这样的:

 cordova build ios --build-config 

但是你可能没有构buildconfiguration,或者需要额外的参数。 如果构build失败(确保你运行命令,即使你认为它会失败 – 它将设置)只需在xcode中的platform / ios中打开生成的工作区,清理项目,然后构build。 这应该工作。