如何以编程方式查找我的iPhone应用程序的大小?

我正在寻找iphone应用程序的大小以及框架,但我没有find一个方法如何做到这一点。任何人都可以提供这样的代码吗?我得到的代码,find我的应用程序在运行当前的内存使用情况。

链接在这里

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); 

如果任何人仍然在寻找答案,那么请注意fileAttributesAtPath方法被剥离,所以使用attributesOfItemAtPath方法

例:

 //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); 

SWIFT答案 – 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 

这将给你的应用程序大小捆绑 –

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