You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cordova.apache.org by sh...@apache.org on 2015/09/22 02:37:04 UTC

cordova-lib git commit: CB-9665 - Support .xcassets for icons and splashscreens in the CLI

Repository: cordova-lib
Updated Branches:
  refs/heads/master 1594c0afa -> 0c5bed6dd


CB-9665 - Support .xcassets for icons and splashscreens in the CLI


Project: http://git-wip-us.apache.org/repos/asf/cordova-lib/repo
Commit: http://git-wip-us.apache.org/repos/asf/cordova-lib/commit/0c5bed6d
Tree: http://git-wip-us.apache.org/repos/asf/cordova-lib/tree/0c5bed6d
Diff: http://git-wip-us.apache.org/repos/asf/cordova-lib/diff/0c5bed6d

Branch: refs/heads/master
Commit: 0c5bed6dd141cf1d1156e09a62dc048c49cd6f8e
Parents: 1594c0a
Author: Shazron Abdullah <sh...@apache.org>
Authored: Thu Sep 17 17:31:28 2015 -0700
Committer: Shazron Abdullah <sh...@apache.org>
Committed: Mon Sep 21 17:41:01 2015 -0700

----------------------------------------------------------------------
 cordova-lib/src/cordova/metadata/ios_parser.js | 48 +++++++++++++++------
 1 file changed, 36 insertions(+), 12 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cordova-lib/blob/0c5bed6d/cordova-lib/src/cordova/metadata/ios_parser.js
----------------------------------------------------------------------
diff --git a/cordova-lib/src/cordova/metadata/ios_parser.js b/cordova-lib/src/cordova/metadata/ios_parser.js
index 2f089c3..dd1cc56 100644
--- a/cordova-lib/src/cordova/metadata/ios_parser.js
+++ b/cordova-lib/src/cordova/metadata/ios_parser.js
@@ -139,12 +139,21 @@ ios_parser.prototype.update_from_config = function(config) {
         {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, 'Resources/icons/', item.dest);
+                dest = path.join(platformRoot, destIconsFolder, item.dest);
             events.emit('verbose', 'Copying icon from ' + src + ' to ' + dest);
             shell.cp('-f', src, dest);
         }
@@ -153,23 +162,29 @@ ios_parser.prototype.update_from_config = function(config) {
     // Update splashscreens
     var splashScreens = config.getSplashScreens('ios');
     var platformSplashScreens = [
-        {dest: 'Resources/splash/Default~iphone.png', width: 320, height: 480},
-        {dest: 'Resources/splash/Default@2x~iphone.png', width: 640, height: 960},
-        {dest: 'Resources/splash/Default-Portrait~ipad.png', width: 768, height: 1024},
-        {dest: 'Resources/splash/Default-Portrait@2x~ipad.png', width: 1536, height: 2048},
-        {dest: 'Resources/splash/Default-Landscape~ipad.png', width: 1024, height: 768},
-        {dest: 'Resources/splash/Default-Landscape@2x~ipad.png', width: 2048, height: 1536},
-        {dest: 'Resources/splash/Default-568h@2x~iphone.png', width: 640, height: 1136},
-        {dest: 'Resources/splash/Default-667h.png', width: 750, height: 1334},
-        {dest: 'Resources/splash/Default-736h.png', width: 1242, height: 2208},
-        {dest: 'Resources/splash/Default-Landscape-736h.png', width: 2208, height: 1242}
+        {dest: 'Default~iphone.png', width: 320, height: 480},
+        {dest: 'Default@2x~iphone.png', width: 640, height: 960},
+        {dest: 'Default-Portrait~ipad.png', width: 768, height: 1024},
+        {dest: 'Default-Portrait@2x~ipad.png', width: 1536, height: 2048},
+        {dest: 'Default-Landscape~ipad.png', width: 1024, height: 768},
+        {dest: 'Default-Landscape@2x~ipad.png', width: 2048, height: 1536},
+        {dest: 'Default-568h@2x~iphone.png', width: 640, height: 1136},
+        {dest: 'Default-667h.png', width: 750, height: 1334},
+        {dest: 'Default-736h.png', width: 1242, height: 2208},
+        {dest: 'Default-Landscape-736h.png', width: 2208, height: 1242}
     ];
+    
+    if (xcassetsExists) {
+        destSplashFolder = 'Images.xcassets/LaunchImage.launchimage/';
+    } else {
+        destSplashFolder = 'Resources/splash/';
+    }
 
     platformSplashScreens.forEach(function(item) {
         var splash = splashScreens.getBySize(item.width, item.height);
         if (splash){
             var src = path.join(appRoot, splash.src),
-                dest = path.join(platformRoot, item.dest);
+                dest = path.join(platformRoot, destSplashFolder, item.dest);
             events.emit('verbose', 'Copying splash from ' + src + ' to ' + dest);
             shell.cp('-f', src, dest);
         }
@@ -300,6 +315,15 @@ ios_parser.prototype.update_build_settings = function(config) {
     return Q();
 };
 
+function folderExists(folderPath) {
+    try {
+        var stat = fs.statSync(folderPath);
+        return stat && stat.isDirectory();
+    } catch (e) {
+        return false;
+    }
+}
+
 // Construct a default value for CFBundleVersion as the version with any
 // -rclabel stripped=.
 function default_CFBundleVersion(version) {


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@cordova.apache.org
For additional commands, e-mail: commits-help@cordova.apache.org