Skip to content
This repository was archived by the owner on May 20, 2025. It is now read-only.

Commit 3026c86

Browse files
committed
Add error handling
1 parent 4bea684 commit 3026c86

File tree

1 file changed

+31
-22
lines changed

1 file changed

+31
-22
lines changed

ios/CodePush/CodePushPackage.m

Lines changed: 31 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ @implementation CodePushPackage
1010
static NSString *const RelativeBundlePathKey = @"bundlePath";
1111
static NSString *const StatusFile = @"codepush.json";
1212
static NSString *const UpdateBundleFileName = @"app.jsbundle";
13+
static NSString *const UpdateMetadataFileName = @"app.json";
1314
static NSString *const UnzippedFolderName = @"unzipped";
1415

1516
#pragma mark - Public methods
@@ -46,7 +47,7 @@ + (void)downloadPackage:(NSDictionary *)updatePackage
4647
{
4748
NSString *newUpdateHash = updatePackage[@"packageHash"];
4849
NSString *newUpdateFolderPath = [self getPackageFolderPath:newUpdateHash];
49-
NSString *newUpdateMetadataPath = [newUpdateFolderPath stringByAppendingPathComponent:@"app.json"];
50+
NSString *newUpdateMetadataPath = [newUpdateFolderPath stringByAppendingPathComponent:UpdateMetadataFileName];
5051
NSError *error;
5152

5253
if ([[NSFileManager defaultManager] fileExistsAtPath:newUpdateFolderPath]) {
@@ -290,6 +291,11 @@ + (NSString *)getCodePushPath
290291
+ (NSDictionary *)getCurrentPackage:(NSError **)error
291292
{
292293
NSString *packageHash = [CodePushPackage getCurrentPackageHash:error];
294+
295+
if (*error || !packageHash) {
296+
return nil;
297+
}
298+
293299
return [CodePushPackage getPackage:packageHash error:error];
294300
}
295301

@@ -318,8 +324,8 @@ + (NSString *)getCurrentPackageBundlePath:(NSError **)error
318324
+ (NSString *)getCurrentPackageHash:(NSError **)error
319325
{
320326
NSDictionary *info = [self getCurrentPackageInfo:error];
321-
if (*error) {
322-
return NULL;
327+
if (*error || !info) {
328+
return nil;
323329
}
324330

325331
return info[@"currentPackage"];
@@ -353,15 +359,15 @@ + (NSMutableDictionary *)getCurrentPackageInfo:(NSError **)error
353359
encoding:NSUTF8StringEncoding
354360
error:error];
355361
if (*error) {
356-
return NULL;
362+
return nil;
357363
}
358364

359365
NSData *data = [content dataUsingEncoding:NSUTF8StringEncoding];
360366
NSDictionary* json = [NSJSONSerialization JSONObjectWithData:data
361367
options:kNilOptions
362368
error:error];
363369
if (*error) {
364-
return NULL;
370+
return nil;
365371
}
366372

367373
return [json mutableCopy];
@@ -375,27 +381,25 @@ + (NSString *)getDownloadFilePath
375381
+ (NSDictionary *)getPackage:(NSString *)packageHash
376382
error:(NSError **)error
377383
{
378-
NSString *folderPath = [self getPackageFolderPath:packageHash];
384+
NSString *updateDirectoryPath = [self getPackageFolderPath:packageHash];
385+
NSString *updateMetadataFilePath = [updateDirectoryPath stringByAppendingPathComponent:UpdateMetadataFileName];
379386

380-
if (!folderPath) {
381-
return [NSDictionary dictionary];
387+
if (![[NSFileManager defaultManager] fileExistsAtPath:updateMetadataFilePath]) {
388+
return nil;
382389
}
383390

384-
NSString *packageFilePath = [folderPath stringByAppendingPathComponent:@"app.json"];
391+
NSString *updateMetadataString = [NSString stringWithContentsOfFile:updateMetadataFilePath
392+
encoding:NSUTF8StringEncoding
393+
error:error];
385394

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;
396397
}
397398

398-
return NULL;
399+
NSData *updateMetadata = [updateMetadataString dataUsingEncoding:NSUTF8StringEncoding];
400+
return [NSJSONSerialization JSONObjectWithData:updateMetadata
401+
options:kNilOptions
402+
error:error];
399403
}
400404

401405
+ (NSString *)getPackageFolderPath:(NSString *)packageHash
@@ -405,15 +409,20 @@ + (NSString *)getPackageFolderPath:(NSString *)packageHash
405409

406410
+ (NSDictionary *)getPreviousPackage:(NSError **)error
407411
{
408-
NSString *packageHash = [CodePushPackage getPreviousPackageHash:error];
412+
NSString *packageHash = [self getPreviousPackageHash:error];
413+
414+
if (*error || !packageHash) {
415+
return nil;
416+
}
417+
409418
return [CodePushPackage getPackage:packageHash error:error];
410419
}
411420

412421
+ (NSString *)getPreviousPackageHash:(NSError **)error
413422
{
414423
NSDictionary *info = [self getCurrentPackageInfo:error];
415424
if (*error) {
416-
return NULL;
425+
return nil;
417426
}
418427

419428
return info[@"previousPackage"];

0 commit comments

Comments
 (0)