theextremeprogrammer / Succinct

UI tests at the speed of unit tests. Proper encapsulation. Architecture agnostic. Freedom to refactor.
MIT License
42 stars 7 forks source link

Add support for Swift Package Manager (SPM) #55

Closed theextremeprogrammer closed 2 years ago

rgravina commented 2 years ago

@derekleerock I've got something working over in this branch I've used as a SPM dependency in another project and it was able to use Succinct via SPM. You should be able to try this out by adding the package to any project in Xcode via File -> Add Packages..., using the URL to my fork of the repo, and support-swift-package-manager for the branch name. https://github.com/rgravina/Succinct/tree/support-swift-package-manager

However, two things probably need to happen before I could make a PR out of that for you to review:

1) It would be best if this PR is reviewed (and hopefully) merged first if you're OK switching over to SPM, because I am having some build issues with Nimble 9.0.0, Xcode 13 and Carthage. I'm sure they can be fixed with some work (see this issue, it seems you need Nimble 9.2.1, and I've previously fixed Xcode 13 and Carthage issues by using --use-xcframeworks with Carthage or possibly a Carthage wrapper change might work). If you're planning to merge that PR anyway then a fix wouldn't be needed! To get around the problem for now, support-swift-package-manager is rebased on the top the other PRs branch. I hope that makes sense!

2) I've had to add import UIKit or import Foundation on most files. For some reason, the #import <UIKit/UIKit.h> in Succinct.h is not having any effect. Maybe it's a Package.swift issue, but I've found a mention of why that might not work here on Stack Overflow. Maybe there's an answer to how to do that nicely in Quick or some other project that supports SPM.