Enables you to use .bundle and other resources with SPM Unit-tests. (Perfect for Github action CI)
Enables you to also use the same code in Xcode unit tests
Example code:
// The temp.bundle folder can be in the root of your project (same directory as your `Package.swift`)
// iOS can only add resources inside .bundle folders
// macOS can only read files within its SandBox. Turn off Sandbox in info.plist (Using swift 5.3 and native spm assets is a better option here)
let path: String = ResourceHelper.projectRootURL(projectRef: #file, fileName: "temp.bundle/payload.json").path
Swift.print("path: \(path)") // Users/John/Documents/AwesomeApp/temp.bundle/payload.json
Features
Example code:
Note: Swift 5.3 has support for adding assets with SPM, although a bit cumbersome. here is a tutorial 😅: https://medium.com/better-programming/how-to-add-resources-in-swift-package-manager-c437d44ec593
Installation
ResourceHelper
is available using the Swift Package Manager:Using Xcode 11, go to
File -> Swift Packages -> Add Package Dependency
and search for ResourceHelper or enter: https://github.com/eonist/ResourceHelperIf you are using
Package.swift
, you can also addResourceHelper
as a dependency easily.