mirror of
https://github.com/zhigang1992/react-native-code-push.git
synced 2026-05-25 20:05:31 +08:00
Add error handling
This commit is contained in:
@@ -10,6 +10,7 @@ static NSString *const DownloadFileName = @"download.zip";
|
||||
static NSString *const RelativeBundlePathKey = @"bundlePath";
|
||||
static NSString *const StatusFile = @"codepush.json";
|
||||
static NSString *const UpdateBundleFileName = @"app.jsbundle";
|
||||
static NSString *const UpdateMetadataFileName = @"app.json";
|
||||
static NSString *const UnzippedFolderName = @"unzipped";
|
||||
|
||||
#pragma mark - Public methods
|
||||
@@ -46,7 +47,7 @@ static NSString *const UnzippedFolderName = @"unzipped";
|
||||
{
|
||||
NSString *newUpdateHash = updatePackage[@"packageHash"];
|
||||
NSString *newUpdateFolderPath = [self getPackageFolderPath:newUpdateHash];
|
||||
NSString *newUpdateMetadataPath = [newUpdateFolderPath stringByAppendingPathComponent:@"app.json"];
|
||||
NSString *newUpdateMetadataPath = [newUpdateFolderPath stringByAppendingPathComponent:UpdateMetadataFileName];
|
||||
NSError *error;
|
||||
|
||||
if ([[NSFileManager defaultManager] fileExistsAtPath:newUpdateFolderPath]) {
|
||||
@@ -290,6 +291,11 @@ static NSString *const UnzippedFolderName = @"unzipped";
|
||||
+ (NSDictionary *)getCurrentPackage:(NSError **)error
|
||||
{
|
||||
NSString *packageHash = [CodePushPackage getCurrentPackageHash:error];
|
||||
|
||||
if (*error || !packageHash) {
|
||||
return nil;
|
||||
}
|
||||
|
||||
return [CodePushPackage getPackage:packageHash error:error];
|
||||
}
|
||||
|
||||
@@ -318,8 +324,8 @@ static NSString *const UnzippedFolderName = @"unzipped";
|
||||
+ (NSString *)getCurrentPackageHash:(NSError **)error
|
||||
{
|
||||
NSDictionary *info = [self getCurrentPackageInfo:error];
|
||||
if (*error) {
|
||||
return NULL;
|
||||
if (*error || !info) {
|
||||
return nil;
|
||||
}
|
||||
|
||||
return info[@"currentPackage"];
|
||||
@@ -353,7 +359,7 @@ static NSString *const UnzippedFolderName = @"unzipped";
|
||||
encoding:NSUTF8StringEncoding
|
||||
error:error];
|
||||
if (*error) {
|
||||
return NULL;
|
||||
return nil;
|
||||
}
|
||||
|
||||
NSData *data = [content dataUsingEncoding:NSUTF8StringEncoding];
|
||||
@@ -361,7 +367,7 @@ static NSString *const UnzippedFolderName = @"unzipped";
|
||||
options:kNilOptions
|
||||
error:error];
|
||||
if (*error) {
|
||||
return NULL;
|
||||
return nil;
|
||||
}
|
||||
|
||||
return [json mutableCopy];
|
||||
@@ -375,27 +381,25 @@ static NSString *const UnzippedFolderName = @"unzipped";
|
||||
+ (NSDictionary *)getPackage:(NSString *)packageHash
|
||||
error:(NSError **)error
|
||||
{
|
||||
NSString *folderPath = [self getPackageFolderPath:packageHash];
|
||||
NSString *updateDirectoryPath = [self getPackageFolderPath:packageHash];
|
||||
NSString *updateMetadataFilePath = [updateDirectoryPath stringByAppendingPathComponent:UpdateMetadataFileName];
|
||||
|
||||
if (!folderPath) {
|
||||
return [NSDictionary dictionary];
|
||||
if (![[NSFileManager defaultManager] fileExistsAtPath:updateMetadataFilePath]) {
|
||||
return nil;
|
||||
}
|
||||
|
||||
NSString *packageFilePath = [folderPath stringByAppendingPathComponent:@"app.json"];
|
||||
NSString *updateMetadataString = [NSString stringWithContentsOfFile:updateMetadataFilePath
|
||||
encoding:NSUTF8StringEncoding
|
||||
error:error];
|
||||
|
||||
NSString *content = [NSString stringWithContentsOfFile:packageFilePath
|
||||
encoding:NSUTF8StringEncoding
|
||||
error:error];
|
||||
if (!*error) {
|
||||
NSData *data = [content dataUsingEncoding:NSUTF8StringEncoding];
|
||||
NSDictionary* jsonDict = [NSJSONSerialization JSONObjectWithData:data
|
||||
options:kNilOptions
|
||||
error:error];
|
||||
|
||||
return jsonDict;
|
||||
if (*error) {
|
||||
return nil;
|
||||
}
|
||||
|
||||
return NULL;
|
||||
NSData *updateMetadata = [updateMetadataString dataUsingEncoding:NSUTF8StringEncoding];
|
||||
return [NSJSONSerialization JSONObjectWithData:updateMetadata
|
||||
options:kNilOptions
|
||||
error:error];
|
||||
}
|
||||
|
||||
+ (NSString *)getPackageFolderPath:(NSString *)packageHash
|
||||
@@ -405,7 +409,12 @@ static NSString *const UnzippedFolderName = @"unzipped";
|
||||
|
||||
+ (NSDictionary *)getPreviousPackage:(NSError **)error
|
||||
{
|
||||
NSString *packageHash = [CodePushPackage getPreviousPackageHash:error];
|
||||
NSString *packageHash = [self getPreviousPackageHash:error];
|
||||
|
||||
if (*error || !packageHash) {
|
||||
return nil;
|
||||
}
|
||||
|
||||
return [CodePushPackage getPackage:packageHash error:error];
|
||||
}
|
||||
|
||||
@@ -413,7 +422,7 @@ static NSString *const UnzippedFolderName = @"unzipped";
|
||||
{
|
||||
NSDictionary *info = [self getCurrentPackageInfo:error];
|
||||
if (*error) {
|
||||
return NULL;
|
||||
return nil;
|
||||
}
|
||||
|
||||
return info[@"previousPackage"];
|
||||
|
||||
Reference in New Issue
Block a user