How to programmatically find the size of my iPhone app?

I am working on finding the size of an iphone application along with frameworks, but I have not found a way to do this. Can anyone provide me a code for this? I got code to determine the current memory usage of my application while running.

link here

+1
source share
3 answers
NSString *folderPath = [[NSBundle mainBundle] bundlePath]; NSArray *filesArray = [[NSFileManager defaultManager] subpathsOfDirectoryAtPath:folderPath error:nil]; NSEnumerator *filesEnumerator = [filesArray objectEnumerator]; NSString *fileName; unsigned long long int fileSize = 0; while (fileName = [filesEnumerator nextObject]) { NSDictionary *fileDictionary = [[NSFileManager defaultManager] fileAttributesAtPath:[folderPath stringByAppendingPathComponent:fileName] traverseLink:YES]; fileSize += [fileDictionary fileSize]; } NSLog(@"App size : %lld",fileSize); 
+1
source

If someone is still looking for an answer, then: please note that the fileAttributesAtPath method is void, so use the attributesOfItemAtPath method

Example:

 //get full pathname of bundle directory NSString *bundlePath = [[NSBundle mainBundle] bundlePath]; //get paths of all of the contained subdirectories NSArray *bundleArray = [[NSFileManager defaultManager] subpathsOfDirectoryAtPath:bundlePath error:nil]; //to access each object in array NSEnumerator *filesEnumerator = [bundleArray objectEnumerator]; NSString *fileName; unsigned long long int fileSize = 0; NSError *error = nil; //return next object from enumerator while (fileName = [filesEnumerator nextObject]) { NSDictionary *fileDictionary = [[NSFileManager defaultManager] attributesOfItemAtPath:[bundlePath stringByAppendingPathComponent:fileName] error:&error]; fileSize += [fileDictionary fileSize]; } //converts a byte count value into a textual representation that is formatted with the appropriate byte modifier (KB, MB, GB and so on) NSString *folderSizeStr = [NSByteCountFormatter stringFromByteCount:fileSize countStyle:NSByteCountFormatterCountStyleMemory]; NSLog(@"App size (bundle size): %@ \n\n\n",folderSizeStr); 
0
source

Quick Answer - SWIFT 3.x

 let bundlePath = Bundle.main.bundlePath let bundleArray = FileManager.default.subpaths(atPath: bundlePath) var fileSize : UInt64 = 0 for file in bundleArray! { do { let attr = try FileManager.default.attributesOfItem(atPath: bundlePath + "/" + file ) let xfileSize = attr[FileAttributeKey.size] as? UInt64 ?? 0 fileSize = fileSize + xfileSize } catch { } } let folderSize = ByteCountFormatter.string(fromByteCount: Int64(fileSize), countStyle: .memory) print("App size (bundle size): \(folderSize)")//xx MB 

What will give you the size of the application in the kit -

/Users/MyLaptop/Library/Developer/CoreSimulator/Devices/DB7032C9-7CE2-42A9-83D1-59E2D2C5C361/data/Containers/Bundle/Application/CC808040-2F18-4B35-A912-591BD0C7pp9.pp

0
source

Source: https://habr.com/ru/post/1259901/


All Articles