How about using URLForResource? Prints well at runtime with the print request you requested.

This version displays the entire lock file on the console.
override func viewDidLoad() { super.viewDidLoad() let url = NSBundle.mainBundle().URLForResource("/lockfilefolder/Podfile", withExtension: "lock")! let data = try! String(contentsOfURL: url, encoding: NSUTF8StringEncoding) print(data) } /* Prints */ // PODS: // - Firebase/Analytics (3.3.0): // - FirebaseAnalytics (= 3.2.1) // - Firebase/Auth (3.3.0): // - Firebase/Analytics (= 3.3.0) // - FirebaseAuth (= 3.0.3) // - Firebase/Core (3.3.0): // - Firebase/Analytics (= 3.3.0) // - Firebase/Database (3.3.0): // - Firebase/Analytics (= 3.3.0) // - FirebaseDatabase (= 3.0.2) // TL;DR
This next version prints specific line numbers. Using componentsSeparatedByString("-") , I can remove the character - before the pod name, so that it looks cleaner. This works because lock files use - for each line in the list of subcategory names. Note that we are using pathForResource not a URLForResource .
do { if let path = NSBundle.mainBundle().pathForResource("/lockfilefolder/Podfile", ofType: "lock"){ let data = try String(contentsOfFile: path, encoding: NSUTF8StringEncoding) let lockFileData = data.componentsSeparatedByString("-") print("Current version: \(lockFileData[6])") } } catch let err as NSError { print(err) }
In the next version, we will print two lines. We use the data.componentsSeparatedByCharactersInSet(NSCharacterSet.newlineCharacterSet()) method. In this case, it becomes difficult to remove - so it is not worth it.
let url = NSBundle.mainBundle().URLForResource("/lockfilefolder/Podfile", withExtension: "lock")! let data = try! String(contentsOfURL: url, encoding: NSUTF8StringEncoding) let lockFileData = data.componentsSeparatedByCharactersInSet(NSCharacterSet.newlineCharacterSet()) print(lockFileData[72]) print(lockFileData[6])
tymac source share