diff --git a/ios/CodePush/CodePush.h b/ios/CodePush/CodePush.h index bd7db3c..1760715 100644 --- a/ios/CodePush/CodePush.h +++ b/ios/CodePush/CodePush.h @@ -70,6 +70,7 @@ failCallback:(void (^)(NSError *err))failCallback; @interface CodePushPackage : NSObject + (void)downloadPackage:(NSDictionary *)updatePackage + expectedBundleFileName:(NSString *)expectedBundleFileName progressCallback:(void (^)(long long, long long))progressCallback doneCallback:(void (^)())doneCallback failCallback:(void (^)(NSError *err))failCallback; @@ -113,6 +114,7 @@ failCallback:(void (^)(NSError *err))failCallback; error:(NSError **)error; + (NSString *)findMainBundleInFolder:(NSString *)folderPath + expectedFileName:(NSString *)expectedFileName error:(NSError **)error; + (NSString *)assetsFolderName; diff --git a/ios/CodePush/CodePush.m b/ios/CodePush/CodePush.m index 68141c6..d016e8d 100644 --- a/ios/CodePush/CodePush.m +++ b/ios/CodePush/CodePush.m @@ -419,7 +419,9 @@ RCT_EXPORT_METHOD(downloadUpdate:(NSDictionary*)updatePackage forKey:BinaryBundleDateKey]; } - [CodePushPackage downloadPackage:mutableUpdatePackage + [CodePushPackage + downloadPackage:mutableUpdatePackage + expectedBundleFileName:[bundleResourceName stringByAppendingPathExtension:bundleResourceExtension] // The download is progressing forward progressCallback:^(long long expectedContentLength, long long receivedContentLength) { dispatch_async(_methodQueue, ^{ diff --git a/ios/CodePush/CodePushPackage.m b/ios/CodePush/CodePushPackage.m index 9699f09..979bd34 100644 --- a/ios/CodePush/CodePushPackage.m +++ b/ios/CodePush/CodePushPackage.m @@ -205,6 +205,7 @@ NSString * const UnzippedFolderName = @"unzipped"; } + (void)downloadPackage:(NSDictionary *)updatePackage + expectedBundleFileName:(NSString *)expectedBundleFileName progressCallback:(void (^)(long long, long long))progressCallback doneCallback:(void (^)())doneCallback failCallback:(void (^)(NSError *err))failCallback @@ -360,7 +361,9 @@ NSString * const UnzippedFolderName = @"unzipped"; } NSString *relativeBundlePath = [CodePushUpdateUtils findMainBundleInFolder:newUpdateFolderPath + expectedFileName:expectedBundleFileName error:&error]; + if (error) { failCallback(error); return; diff --git a/ios/CodePush/CodePushUpdateUtils.m b/ios/CodePush/CodePushUpdateUtils.m index 29c199f..ca541f7 100644 --- a/ios/CodePush/CodePushUpdateUtils.m +++ b/ios/CodePush/CodePushUpdateUtils.m @@ -118,6 +118,7 @@ NSString * const ManifestFolderPrefix = @"CodePush"; } + (NSString *)findMainBundleInFolder:(NSString *)folderPath + expectedFileName:(NSString *)expectedFileName error:(NSError **)error { NSArray* folderFiles = [[NSFileManager defaultManager] @@ -132,7 +133,9 @@ NSString * const ManifestFolderPrefix = @"CodePush"; BOOL isDir = NO; if ([[NSFileManager defaultManager] fileExistsAtPath:fullFilePath isDirectory:&isDir] && isDir) { - NSString *mainBundlePathInFolder = [self findMainBundleInFolder:fullFilePath error:error]; + NSString *mainBundlePathInFolder = [self findMainBundleInFolder:fullFilePath + expectedFileName:expectedFileName + error:error]; if (*error) { return nil; } @@ -140,9 +143,7 @@ NSString * const ManifestFolderPrefix = @"CodePush"; if (mainBundlePathInFolder) { return [fileName stringByAppendingPathComponent:mainBundlePathInFolder]; } - } else if ([[fileName pathExtension] isEqualToString:@"bundle"] || - [[fileName pathExtension] isEqualToString:@"jsbundle"] || - [[fileName pathExtension] isEqualToString:@"js"]) { + } else if ([fileName isEqualToString:expectedFileName]) { return fileName; } }