Skip to content

Commit df49daa

Browse files
Fatme HavaluovaFatme Havaluova
authored andcommitted
Fix update - copy correctly TNSDebugging.framework and Metadata folder
1 parent 0f5ae7b commit df49daa

File tree

5 files changed

+55
-15
lines changed

5 files changed

+55
-15
lines changed

lib/definitions/platform.d.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,8 @@ interface IPlatformData {
2727
validPackageNamesForDevice: string[];
2828
validPackageNamesForEmulator?: string[];
2929
frameworkFilesExtensions: string[];
30+
frameworkDirectoriesExtensions?: string[];
31+
frameworkDirectoriesNames?: string[];
3032
targetedOS?: string[];
3133
}
3234

lib/node-package-manager.ts

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,14 @@ export class NodePackageManager implements INodePackageManager {
3030
}
3131

3232
public addToCache(packageName: string, version: string): IFuture<void> {
33-
return this.addToCacheCore(packageName, version);
33+
return (() => {
34+
this.addToCacheCore(packageName, version).wait();
35+
36+
var packagePath = path.join(npm.cache, packageName, version, "package");
37+
if(!this.isPackageUnpacked(packagePath).wait()) {
38+
this.cacheUnpack(packageName, version).wait();
39+
}
40+
}).future<void>()();
3441
}
3542

3643
public load(config?: any): IFuture<void> {
@@ -84,7 +91,7 @@ export class NodePackageManager implements INodePackageManager {
8491
}
8592
return options.frameworkPath;
8693
} else {
87-
var version: string = version || this.getLatestVersion(packageName).wait();
94+
version = version || this.getLatestVersion(packageName).wait();
8895
var packagePath = path.join(npm.cache, packageName, version, "package");
8996
if (!this.isPackageCached(packagePath).wait()) {
9097
this.addToCacheCore(packageName, version).wait();

lib/services/android-project-service.ts

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,6 @@ class AndroidProjectService implements IPlatformProjectService {
2323
private $logger: ILogger,
2424
private $projectData: IProjectData,
2525
private $propertiesParser: IPropertiesParser) {
26-
2726
}
2827

2928
public get platformData(): IPlatformData {
@@ -38,7 +37,7 @@ class AndroidProjectService implements IPlatformProjectService {
3837
util.format("%s-%s.%s", this.$projectData.projectName, "debug", "apk"),
3938
util.format("%s-%s.%s", this.$projectData.projectName, "release", "apk")
4039
],
41-
frameworkFilesExtensions: [".jar", ".dat"]
40+
frameworkFilesExtensions: [".jar", ".dat", ".so"]
4241
};
4342
}
4443

lib/services/ios-project-service.ts

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,9 @@ class IOSProjectService implements IPlatformProjectService {
3737
validPackageNamesForEmulator: [
3838
this.$projectData.projectName + ".app"
3939
],
40-
frameworkFilesExtensions: [".a", ".h", ".bin"],
40+
frameworkFilesExtensions: [".a", ".framework", ".bin"],
41+
frameworkDirectoriesExtensions: [".framework"],
42+
frameworkDirectoriesNames: ["Metadata"],
4143
targetedOS: ['darwin']
4244
};
4345
}

lib/services/platform-service.ts

Lines changed: 40 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -464,16 +464,36 @@ export class PlatformService implements IPlatformService {
464464
private updatePlatformCore(platformData: IPlatformData, currentVersion: string, newVersion: string): IFuture<void> {
465465
return (() => {
466466
// Remove old framework files
467-
var oldFrameworkFiles = this.getFrameworkFiles(platformData, currentVersion).wait();
468-
_.each(oldFrameworkFiles, file => {
469-
this.$fs.deleteFile(path.join(platformData.projectRoot, file)).wait();
467+
var oldFrameworkData = this.getFrameworkFiles(platformData, currentVersion).wait();
468+
469+
_.each(oldFrameworkData.frameworkFiles, file => {
470+
var fileToDelete = path.join(platformData.projectRoot, file);
471+
this.$logger.trace("Deleting %s", fileToDelete);
472+
this.$fs.deleteFile(fileToDelete).wait();
473+
});
474+
475+
_.each(oldFrameworkData.frameworkDirectories, dir => {
476+
var dirToDelete = path.join(platformData.projectRoot, dir);
477+
this.$logger.trace("Deleting %s", dirToDelete);
478+
this.$fs.deleteDirectory(dirToDelete).wait();
470479
});
471480

472481
// Add new framework files
473-
var newFrameworkFiles = this.getFrameworkFiles(platformData, newVersion).wait();
482+
var newFrameworkData = this.getFrameworkFiles(platformData, newVersion).wait();
474483
var cacheDirectoryPath = this.getNpmCacheDirectoryCore(platformData.frameworkPackageName, newVersion);
475-
_.each(newFrameworkFiles, file => {
476-
shell.cp("-f", path.join(cacheDirectoryPath, file), path.join(platformData.projectRoot, file));
484+
485+
_.each(newFrameworkData.frameworkFiles, file => {
486+
var sourceFile = path.join(cacheDirectoryPath, constants.PROJECT_FRAMEWORK_FOLDER_NAME, file);
487+
var destinationFile = path.join(platformData.projectRoot, file);
488+
this.$logger.trace("Replacing %s with %s", sourceFile, destinationFile);
489+
shell.cp("-f", sourceFile, destinationFile);
490+
});
491+
492+
_.each(newFrameworkData.frameworkDirectories, dir => {
493+
var sourceDirectory = path.join(cacheDirectoryPath, constants.PROJECT_FRAMEWORK_FOLDER_NAME, dir);
494+
var destinationDirectory = path.join(platformData.projectRoot, dir);
495+
this.$logger.trace("Copying %s to %s", sourceDirectory, destinationDirectory);
496+
shell.cp("-fR", path.join(sourceDirectory, "*"), destinationDirectory);
477497
});
478498

479499
// Update .tnsproject file
@@ -485,16 +505,22 @@ export class PlatformService implements IPlatformService {
485505
}).future<void>()();
486506
}
487507

488-
private getFrameworkFiles(platformData: IPlatformData, version: string): IFuture<string[]> {
508+
private getFrameworkFiles(platformData: IPlatformData, version: string): IFuture<any> {
489509
return (() => {
490510
var npmCacheDirectoryPath = this.getNpmCacheDirectory(platformData.frameworkPackageName, version).wait();
511+
491512
var allFiles = this.$fs.enumerateFilesInDirectorySync(npmCacheDirectoryPath);
492513
var filteredFiles = _.filter(allFiles, file => _.contains(platformData.frameworkFilesExtensions, path.extname(file)));
493-
var relativeToCacheFiles = _.map(filteredFiles, file => file.substr(npmCacheDirectoryPath.length));
494514

495-
return relativeToCacheFiles;
515+
var allFrameworkDirectories = _.map(this.$fs.readDirectory(path.join(npmCacheDirectoryPath, constants.PROJECT_FRAMEWORK_FOLDER_NAME)).wait(), dir => path.join(npmCacheDirectoryPath, constants.PROJECT_FRAMEWORK_FOLDER_NAME, dir));
516+
var filteredFrameworkDirectories = _.filter(allFrameworkDirectories, dir => this.$fs.getFsStats(dir).wait().isDirectory() && (_.contains(platformData.frameworkFilesExtensions, path.extname(dir)) || _.contains(platformData.frameworkDirectoriesNames, path.basename(dir))));
496517

497-
}).future<string[]>()();
518+
return {
519+
frameworkFiles: this.mapFrameworkFiles(npmCacheDirectoryPath, filteredFiles),
520+
frameworkDirectories: this.mapFrameworkFiles(npmCacheDirectoryPath, filteredFrameworkDirectories)
521+
}
522+
523+
}).future<any>()();
498524
}
499525

500526
private getNpmCacheDirectory(packageName: string, version: string): IFuture<string> {
@@ -512,5 +538,9 @@ export class PlatformService implements IPlatformService {
512538
private getNpmCacheDirectoryCore(packageName: string, version: string): string {
513539
return path.join(this.$npm.getCacheRootPath(), packageName, version, "package");
514540
}
541+
542+
private mapFrameworkFiles(npmCacheDirectoryPath: string, files: string[]): string[] {
543+
return _.map(files, file => file.substr(npmCacheDirectoryPath.length + constants.PROJECT_FRAMEWORK_FOLDER_NAME.length + 1))
544+
}
515545
}
516546
$injector.register("platformService", PlatformService);

0 commit comments

Comments
 (0)