2014-01-23 88 views
2

從我一直在讀的平臺文件夾不應該添加到版本控制。然而...... Condova網站上的splashscreen/icon文檔聲明將圖像置於res文件夾中......Android res文件在Cordova中的位置?

那麼我應該如何處理?我想使用合併文件夾,但這只是用於www替換。

任何想法都會很棒。 (如果我添加平臺文件夾,它會導致下一個人遇到問題,即使我嘗試在編譯時創建gitignore文件。

回答

3

我能夠弄清楚目前看來最好的做法。 。文件這對於其他人也

我創造了我所需要的資源文件夾,然後寫了一個定製鉤複製文件下面是我從http://devgirl.org/2013/11/12/three-hooks-your-cordovaphonegap-project-needs/使用一個很好的例子:

#!/usr/bin/env node 

// This hook copies various resource files 
// from our version control system directories 
// into the appropriate platform specific location 
// 


// configure all the files to copy. 
// Key of object is the source file, 
// value is the destination location. 
// It's fine to put all platforms' icons 
// and splash screen files here, even if 
// we don't build for all platforms 
// on each developer's box. 

var filestocopy = [{ 
    "config/android/res/drawable/icon.png": 
    "platforms/android/res/drawable/icon.png" 
}, { 
    "config/android/res/drawable-hdpi/icon.png": 
    "platforms/android/res/drawable-hdpi/icon.png" 
}, { 
    "config/android/res/drawable-ldpi/icon.png": 
    "platforms/android/res/drawable-ldpi/icon.png" 
}, { 
    "config/android/res/drawable-mdpi/icon.png": 
    "platforms/android/res/drawable-mdpi/icon.png" 
}, { 
    "config/android/res/drawable-xhdpi/icon.png": 
    "platforms/android/res/drawable-xhdpi/icon.png" 
}, { 
    "config/android/res/drawable/splash.png": 
    "platforms/android/res/drawable/splash.png" 
}, { 
    "config/android/res/drawable-hdpi/splash.png": 
    "platforms/android/res/drawable-hdpi/splash.png" 
}, { 
    "config/android/res/drawable-ldpi/splash.png": 
    "platforms/android/res/drawable-ldpi/splash.png" 
}, { 
    "config/android/res/drawable-mdpi/splash.png": 
    "platforms/android/res/drawable-mdpi/splash.png" 
}, { 
    "config/android/res/drawable-xhdpi/splash.png": 
    "platforms/android/res/drawable-xhdpi/splash.png" 
}, { 
    "config/ios/Resources/icons/icon-72.png": 
    "platforms/ios/YourAppName/Resources/icons/icon-72.png" 
}, { 
    "config/ios/Resources/icons/icon.png": 
    "platforms/ios/YourAppName/Resources/icons/icon.png" 
}, { 
    "config/ios/Resources/icons/[email protected]": 
    "platforms/ios/YourAppName/Resources/icons/[email protected]" 
}, { 
    "config/ios/Resources/icons/[email protected]": 
    "platforms/ios/YourAppName/Resources/icons/[email protected]" 
}, { 
    "config/ios/Resources/splash/[email protected]~iphone.png": 
    "platforms/ios/YourAppName/Resources/splash/[email protected]~iphone.png" 
}, { 
    "config/ios/Resources/splash/[email protected]~iphone.png": 
    "platforms/ios/YourAppName/Resources/splash/[email protected]~iphone.png" 
}, { 
    "config/ios/Resources/splash/Default~iphone.png": 
    "platforms/ios/YourAppName/Resources/splash/Default~iphone.png" 
}, { 
    "config/ios/Resources/splash/Default-Portrait~ipad.png": 
    "platforms/ios/YourAppName/Resources/splash/Default-Portrait~ipad.png" 
}, { 
    "config/ios/Resources/splash/[email protected]~ipad.png": 
    "platforms/ios/YourAppName/Resources/splash/[email protected]~ipad.png 
}, ]; 

var fs = require('fs'); 
var path = require('path'); 

// no need to configure below 
var rootdir = process.argv[2]; 

filestocopy.forEach(function(obj) { 
    Object.keys(obj).forEach(function(key) { 
     var val = obj[key]; 
     var srcfile = path.join(rootdir, key); 
     var destfile = path.join(rootdir, val); 
     //console.log("copying "+srcfile+" to "+destfile); 
     var destdir = path.dirname(destfile); 
     if (fs.existsSync(srcfile) && fs.existsSync(destdir)) { 
      fs.createReadStream(srcfile).pipe(
       fs.createWriteStream(destfile)); 
     } 
    }); 
}); 
0

我要注意的是,複製splash文件現在可以通過config.xml正確完成,所有你需要的是本地文件夾該項目的所有圖標和飛濺資產的根。但是,如果您的應用程序需要別的東西複製到res文件夾中,那麼當前接受的答案是很好的方法。

在我的項目中,項目文件夾的根目錄是另一個名爲'res'的文件夾。在裏面,我有一個android文件夾和一個ios文件夾,以組織我需要的所有資產。

然後,您只需引用這樣的文件,cordova就會自動將它們複製到正確的位置。

<platform name="android"> 
     <icon src="res/android/mdpi.png" density="mdpi" /> 
     <icon src="res/android/hdpi.png" density="hdpi" /> 
     <icon src="res/android/xhdpi.png" density="xhdpi" /> 
     <icon src="res/android/xxhdpi.png" density="xxhdpi" /> 

    <!-- 
    XXHDPI 144×144 drawable-xxhdpi 3 480 DPI 8 to 12 pixels 
    XHDPI 96×96 drawable-xhdpi 2 320 DPI 6 to 8 pixels 
    HDPI 72×72 drawable-hdpi 1.5 240 DPI 4 to 6 pixels 
    MDPI 48×48 drawable-mdpi 1 160 DPI 3 to 4 pixels 
    --> 
    <splash src="res/android/screen.hdpi.9.png" density="hdpi"/> 
    <splash src="res/android/screen.mdpi.9.png" density="mdpi"/> 
    <splash src="res/android/screen.xhdpi.9.png" density="xhdpi"/> 
</platform> 

<platform name="ios"> 

    <icon src="res/ios/icon/icon.png" width="57" height="57"/> 
    <icon src="res/ios/icon/[email protected]" width="114" height="114"/> 
    <icon src="res/ios/icon/icon-40.png" width="40" height="40"/> 
    <icon src="res/ios/icon/[email protected]" width="80" height="80"/> 
    <icon src="res/ios/icon/icon-50.png" width="50" height="50"/> 
    <icon src="res/ios/icon/[email protected]" width="100" height="100"/> 
    <icon src="res/ios/icon/[email protected]" width="120" height="120"/> 
    <icon src="res/ios/icon/[email protected]" width="180" height="180"/> 
    <icon src="res/ios/icon/icon-72.png" width="72" height="72"/> 
    <icon src="res/ios/icon/[email protected]" width="144" height="144"/> 
    <icon src="res/ios/icon/icon-76.png" width="76" height="76"/> 
    <icon src="res/ios/icon/[email protected]" width="152" height="152"/> 
    <icon src="res/ios/icon/icon-small.png" width="29" height="29"/> 
    <icon src="res/ios/icon/[email protected]" width="58" height="58"/> 
    <icon src="res/ios/icon/[email protected]" width="87" height="87"/> 

    <splash src="res/ios/splash/Default~iphone.png" width="320" height="480"/> 
    <splash src="res/ios/splash/[email protected]~iphone.png" width="640" height="960"/> 
    <splash src="res/ios/splash/Default-Portrait~ipad.png" width="768" height="1024"/> 
    <splash src="res/ios/splash/[email protected]~ipad.png" width="1536" height="2048"/> 
    <splash src="res/ios/splash/Default-Landscape~ipad.png" width="1024" height="768"/> 
    <splash src="res/ios/splash/[email protected]~ipad.png" width="2048" height="1536"/> 
    <splash src="res/ios/splash/[email protected]~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"/> 
</platform>