Very strange problem with my iPhone App. We have an App that has been approved and is in sales at the App Store. It contains a feature to download some database updates. The update comes in a ZIP via HTTP. The problem is that I cannot save this downloaded ZIP because I get the "The operation couldn’t be completed. Operation not permitted" error.
BUT: this happens on 2 phones out of 10. If a phone cannot save the file it cannot do at all. If I redownload the app from the store it does not change it. But those phones who are capable to save the ZIP are always capable. All phones run the same iOS version and all of them are iPhone 4. This really drives me crazy.
If I start XCode one phone gives no error in debug the other gives. And they always give.
Here is the code:
- (void)connectionDidFinishLoading:(NSURLConnection *)connection {
[activeResponse release];
[theConnection release];
NSLog(@"%d", [receivedData length]);
NSString *s = [[NSString alloc] initWithData:receivedData encoding:NSASCIIStringEncoding];
NSLog(@"%@", s);
[s release];
[theRequest release];
NSString *path = [NSString stringWithFormat:@"%@/%@", [[NSBundle mainBundle] resourcePath], @"temp.zip"];
NSLog(path);
NSError * error;
if ([receivedData writeToFile:path options:NSDataWritingAtomic error:&error])
NSLog(@"Success");
else
NSLog(@"Error");
if (error)
NSLog([error description]);
Any ideas, please?
When you encounter the error message Operation not permitted on Mac Terminal, you can enable Full Disk Access to Terminal in System Preferences in the first step. If this still does not help, you can disable the System Integrity Protection temporarily to remove the Terminal error.
Question: Q: Safari error 'undefined' Answer: A: Answer: A: That's a message from the server, not from Safari. It means that the server isn't working.
You are not allowed to write to the application bundle, I'm surprised it works on any of your devices. There are various places you can write, depending on what your purpose is:
[NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0]
[NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES) objectAtIndex:0]
NSTemporaryDirectory()
Also, BTW, it might be cleaner to use [directory stringByAppendingPathComponent:filename]
rather than [NSString stringWithFormat:@"%@/%@", directory, filename]
to construct paths.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With