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 --icon
或ionic cordova resources --splash
命令
这会为你创build所有正确的splash / icon文件,并将它们添加到config.xml
文件中。 那警告就消失了。
希望这个作品!
- 重命名平台/ ios
- 在terminal上input:
cordova platform add ios
-
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中 生成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.0 , cordova-ios 4.5.1和xcodebuild 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像素,图像可能会在中心四周被裁剪。
只需将与该说明相匹配的图像放在项目根目录中作为“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。 这应该工作。