diff --git a/local-cli/bundle/assetPathUtils.js b/local-cli/bundle/assetPathUtils.js index bcfc880ddf637b..96ad4e583f41cb 100644 --- a/local-cli/bundle/assetPathUtils.js +++ b/local-cli/bundle/assetPathUtils.js @@ -11,6 +11,7 @@ 'use strict'; import type {PackagerAsset} from '../../Libraries/Image/AssetRegistry'; +import md5 from 'md5'; /** * FIXME: using number to represent discrete scale numbers is fragile in essence because of @@ -62,11 +63,7 @@ function getAndroidResourceFolderName(asset: PackagerAsset, scale: number) { function getAndroidResourceIdentifier(asset: PackagerAsset) { var folderPath = getBasePath(asset); - return (folderPath + '/' + asset.name) - .toLowerCase() - .replace(/\//g, '_') // Encode folder structure in file name - .replace(/([^a-z0-9_])/g, '') // Remove illegal chars - .replace(/^assets_/, ''); // Remove "assets_" prefix + return 'a' + md5(folderPath + '/' + asset.name).toLowerCase(); } function getBasePath(asset: PackagerAsset) { diff --git a/package.json b/package.json index 09b5ec0330ebbc..e89ec57d9ec8da 100644 --- a/package.json +++ b/package.json @@ -167,6 +167,7 @@ "graceful-fs": "^4.1.3", "inquirer": "^3.0.6", "lodash": "^4.17.5", + "md5": "^2.2.1", "metro": "^0.42.1", "metro-babel-register": "^0.42.1", "metro-core": "^0.42.1",