@@ -142,7 +142,7 @@ + (NSDictionary *)getCurrentPackage:(NSError **)error
142142 NSString *folderPath = [CodePushPackage getCurrentPackageFolderPath: error];
143143 if (!*error) {
144144 if (!folderPath) {
145- return [ NSDictionary dictionary ] ;
145+ return nil ;
146146 }
147147
148148 NSString *packagePath = [folderPath stringByAppendingPathComponent: @" app.json" ];
@@ -159,7 +159,7 @@ + (NSDictionary *)getCurrentPackage:(NSError **)error
159159 }
160160 }
161161
162- return NULL ;
162+ return nil ;
163163}
164164
165165+ (NSDictionary *)getPackage : (NSString *)packageHash
@@ -204,15 +204,22 @@ + (void)downloadPackage:(NSDictionary *)updatePackage
204204 failCallback : (void (^)(NSError *err))failCallback
205205{
206206 NSString *newPackageFolderPath = [self getPackageFolderPath: updatePackage[@" packageHash" ]];
207- NSError *error = nil ;
207+ NSError *error;
208208
209- if (![[NSFileManager defaultManager ] fileExistsAtPath: newPackageFolderPath ]) {
210- [[NSFileManager defaultManager ] createDirectoryAtPath: newPackageFolderPath
209+ if (![[NSFileManager defaultManager ] fileExistsAtPath: [ self getCodePushPath ] ]) {
210+ [[NSFileManager defaultManager ] createDirectoryAtPath: [ self getCodePushPath ]
211211 withIntermediateDirectories: YES
212212 attributes: nil
213213 error: &error];
214214 }
215215
216+ if ([[NSFileManager defaultManager ] fileExistsAtPath: newPackageFolderPath]) {
217+ // This removes any stale data in newPackageFolderPath that could have been left
218+ // uncleared due to a crash or error during the download or install process.
219+ [[NSFileManager defaultManager ] removeItemAtPath: newPackageFolderPath
220+ error: &error];
221+ }
222+
216223 if (error) {
217224 return failCallback (error);
218225 }
@@ -259,9 +266,9 @@ + (void)downloadPackage:(NSDictionary *)updatePackage
259266 return ;
260267 }
261268
262- [CodePushPackage copyEntriesInFolder : currentPackageFolderPath
263- destFolder : newPackageFolderPath
264- error: &error];
269+ [[ NSFileManager defaultManager ] copyItemAtPath : currentPackageFolderPath
270+ toPath : newPackageFolderPath
271+ error: &error];
265272 if (error) {
266273 failCallback (error);
267274 return ;
0 commit comments