MobileOrg / mobileorg

MobileOrg iPhone App
http://mobileorg.github.io
GNU General Public License v2.0
557 stars 70 forks source link

Switch SwiftyDropbox dependency to Swift Package Manager #273

Closed dive closed 3 years ago

dive commented 3 years ago

Carthage has a problem right now with Xcode 12 support (due to Apple Silicon support, aka arm64 for macOS targets) and it breaks the compilation for all package (check the #3019). They are working on a solution - XCFramework support but it will take a while.

On the other hand, SwiftyDropbox just added Swift Package Manager support (#252). It is easier to maintain, and, perhaps, this is the future of dependency management for Swift projects. Let's switch at some point.

To do

webframp commented 3 years ago

Very interested in knowing what your results are for this.

Researching for #272 showed that the box sdk also has support for SPM: https://github.com/box/box-ios-sdk#swift-package-manager and it would make sense to me to migrate the dep management while there's only one explicit dependency.

dive commented 3 years ago

Tried to set up a repository with Xcode 12 to fix the issue with iCloud, can confirm that the Carthage problem affects our flow as well:

➜  mobileorg git:(develop) carthage bootstrap --platform ios
*** Checking out Alamofire at "4.9.1"
*** Checking out SwiftyDropbox at "5.1.0"
*** xcodebuild output can be found in /var/folders/5_/283pnd4x5cg90yqp0byk4wtr0000gn/T/carthage-xcodebuild.8qSgip.log
*** Building scheme "Alamofire iOS" in Alamofire.xcworkspace
Build Failed
        Task failed with exit code 1:
        /usr/bin/xcrun lipo -create /Users/dive/Library/Caches/org.carthage.CarthageKit/DerivedData/12.0.1_12A7300/Alamofire/4.9.1/Build/Intermediates.noindex/ArchiveIntermediates/Alamofire\ iOS/IntermediateBuildFilesPath/UninstalledProducts/iphoneos/Alamofire.framework/Alamofire /Users/dive/Library/Caches/org.carthage.CarthageKit/DerivedData/12.0.1_12A7300/Alamofire/4.9.1/Build/Products/Release-iphonesimulator/Alamofire.framework/Alamofire -output /Volumes/Extended/Projects/github/mobileorg/Carthage/Build/iOS/Alamofire.framework/Alamofire

This usually indicates that project itself failed to compile. Please check the xcodebuild log for more details: /var/folders/5_/283pnd4x5cg90yqp0byk4wtr0000gn/T/carthage-xcodebuild.8qSgip.log
➜  mobileorg git:(develop) xcode-select -p
/Volumes/Extended/Archive/Xcode_12.0.1.app/Contents/Developer

Let's try to switch to SPM, otherwise we have to use a workaround from Carthage and it is a bit hacky.

webframp commented 3 years ago

Great that you had success reproducing, but definitely annoying. I think the switch to SPM is a good idea especially since we really just have the one dependency right now