@@ -10,6 +10,7 @@ @implementation CodePushPackage
10
10
static NSString *const RelativeBundlePathKey = @" bundlePath" ;
11
11
static NSString *const StatusFile = @" codepush.json" ;
12
12
static NSString *const UpdateBundleFileName = @" app.jsbundle" ;
13
+ static NSString *const UpdateMetadataFileName = @" app.json" ;
13
14
static NSString *const UnzippedFolderName = @" unzipped" ;
14
15
15
16
#pragma mark - Public methods
@@ -46,7 +47,7 @@ + (void)downloadPackage:(NSDictionary *)updatePackage
46
47
{
47
48
NSString *newUpdateHash = updatePackage[@" packageHash" ];
48
49
NSString *newUpdateFolderPath = [self getPackageFolderPath: newUpdateHash];
49
- NSString *newUpdateMetadataPath = [newUpdateFolderPath stringByAppendingPathComponent: @" app.json " ];
50
+ NSString *newUpdateMetadataPath = [newUpdateFolderPath stringByAppendingPathComponent: UpdateMetadataFileName ];
50
51
NSError *error;
51
52
52
53
if ([[NSFileManager defaultManager ] fileExistsAtPath: newUpdateFolderPath]) {
@@ -290,6 +291,11 @@ + (NSString *)getCodePushPath
290
291
+ (NSDictionary *)getCurrentPackage : (NSError **)error
291
292
{
292
293
NSString *packageHash = [CodePushPackage getCurrentPackageHash: error];
294
+
295
+ if (*error || !packageHash) {
296
+ return nil ;
297
+ }
298
+
293
299
return [CodePushPackage getPackage: packageHash error: error];
294
300
}
295
301
@@ -318,8 +324,8 @@ + (NSString *)getCurrentPackageBundlePath:(NSError **)error
318
324
+ (NSString *)getCurrentPackageHash : (NSError **)error
319
325
{
320
326
NSDictionary *info = [self getCurrentPackageInfo: error];
321
- if (*error) {
322
- return NULL ;
327
+ if (*error || !info ) {
328
+ return nil ;
323
329
}
324
330
325
331
return info[@" currentPackage" ];
@@ -353,15 +359,15 @@ + (NSMutableDictionary *)getCurrentPackageInfo:(NSError **)error
353
359
encoding: NSUTF8StringEncoding
354
360
error: error];
355
361
if (*error) {
356
- return NULL ;
362
+ return nil ;
357
363
}
358
364
359
365
NSData *data = [content dataUsingEncoding: NSUTF8StringEncoding];
360
366
NSDictionary * json = [NSJSONSerialization JSONObjectWithData: data
361
367
options: kNilOptions
362
368
error: error];
363
369
if (*error) {
364
- return NULL ;
370
+ return nil ;
365
371
}
366
372
367
373
return [json mutableCopy ];
@@ -375,27 +381,25 @@ + (NSString *)getDownloadFilePath
375
381
+ (NSDictionary *)getPackage : (NSString *)packageHash
376
382
error : (NSError **)error
377
383
{
378
- NSString *folderPath = [self getPackageFolderPath: packageHash];
384
+ NSString *updateDirectoryPath = [self getPackageFolderPath: packageHash];
385
+ NSString *updateMetadataFilePath = [updateDirectoryPath stringByAppendingPathComponent: UpdateMetadataFileName];
379
386
380
- if (!folderPath ) {
381
- return [ NSDictionary dictionary ] ;
387
+ if (![[ NSFileManager defaultManager ] fileExistsAtPath: updateMetadataFilePath] ) {
388
+ return nil ;
382
389
}
383
390
384
- NSString *packageFilePath = [folderPath stringByAppendingPathComponent: @" app.json" ];
391
+ NSString *updateMetadataString = [NSString stringWithContentsOfFile: updateMetadataFilePath
392
+ encoding: NSUTF8StringEncoding
393
+ error: error];
385
394
386
- NSString *content = [NSString stringWithContentsOfFile: packageFilePath
387
- encoding: NSUTF8StringEncoding
388
- error: error];
389
- if (!*error) {
390
- NSData *data = [content dataUsingEncoding: NSUTF8StringEncoding];
391
- NSDictionary * jsonDict = [NSJSONSerialization JSONObjectWithData: data
392
- options: kNilOptions
393
- error: error];
394
-
395
- return jsonDict;
395
+ if (*error) {
396
+ return nil ;
396
397
}
397
398
398
- return NULL ;
399
+ NSData *updateMetadata = [updateMetadataString dataUsingEncoding: NSUTF8StringEncoding];
400
+ return [NSJSONSerialization JSONObjectWithData: updateMetadata
401
+ options: kNilOptions
402
+ error: error];
399
403
}
400
404
401
405
+ (NSString *)getPackageFolderPath : (NSString *)packageHash
@@ -405,15 +409,20 @@ + (NSString *)getPackageFolderPath:(NSString *)packageHash
405
409
406
410
+ (NSDictionary *)getPreviousPackage : (NSError **)error
407
411
{
408
- NSString *packageHash = [CodePushPackage getPreviousPackageHash: error];
412
+ NSString *packageHash = [self getPreviousPackageHash: error];
413
+
414
+ if (*error || !packageHash) {
415
+ return nil ;
416
+ }
417
+
409
418
return [CodePushPackage getPackage: packageHash error: error];
410
419
}
411
420
412
421
+ (NSString *)getPreviousPackageHash : (NSError **)error
413
422
{
414
423
NSDictionary *info = [self getCurrentPackageInfo: error];
415
424
if (*error) {
416
- return NULL ;
425
+ return nil ;
417
426
}
418
427
419
428
return info[@" previousPackage" ];
0 commit comments