JamitLabs / Accio

A dependency manager driven by SwiftPM that works for iOS/tvOS/watchOS/macOS projects.
MIT License
664 stars 32 forks source link

Accio checking for wrong output name when copy framework (Facebook iOS SDK) #90

Closed kientux closed 4 years ago

kientux commented 4 years ago

Facebook iOS SDK is compatible with SPM. I have this in accio Package.swift:

// swift-tools-version:5.0
import PackageDescription

let package = Package(
    name: "MyProj",
    platforms: [ .iOS("9.0") ],
    products: [],
    dependencies: [
        // add your dependencies here, for example:
        // .package(url: "https://github.com/User/Project.git", .upToNextMajor(from: "1.0.0")),
        .package(url: "https://github.com/facebook/facebook-ios-sdk", .upToNextMajor(from: "7.0.0")),
    ],
    targets: [
        .target(
            name: "MyProj",
            dependencies: [
                // add your dependencies scheme names here, for example:
                // "Project",
                .product(name: "FacebookCore"),
                .product(name: "FacebookLogin"),
            ],
            path: "MyProj"
        ),
    ]
)

And this is the output of accio install:

✨  Building library FacebookCore with Carthage ...
⚠️  No shared scheme(s) found matching library name 'FacebookCore' – can't remove potentially unnecessary shared schemes, keeping all
*** xcodebuild output can be found in /var/folders/w9/smgbnbh10zz595z98n5g39600000gn/T/carthage-xcodebuild.DNyHWu.log
*** Building scheme "FBSDKCoreKit-Dynamic" in FacebookSDK.xcworkspace
*** Building scheme "FBSDKGamingServicesKit" in FacebookSDK.xcworkspace
*** Building scheme "FBSDKGamingServicesKit-Dynamic" in FacebookSDK.xcworkspace
*** Building scheme "FBSDKLoginKit-Dynamic" in FacebookSDK.xcworkspace
*** Building scheme "FBSDKShareKit-Dynamic" in FacebookSDK.xcworkspace
cp: /Users/kientux/devs/MyProj/.accio/checkouts/facebook-ios-sdk/Carthage/Build/iOS/FacebookCore.framework: No such file or directory
Error: The operation couldn’t be completed. (SwiftShell.CommandError error 0.)

Accio tries to copy FacebookCore.framework but this is actual content of Carthage/Build/iOS:

$ ls -l .accio/checkouts/facebook-ios-sdk/Carthage/Build/iOS/

total 2000
-rw-------  1 kientux  staff   98081 Jun 18 08:23 20952774-7CBD-393F-A9E6-03BF5630D415.bcsymbolmap
-rw-------  1 kientux  staff   21085 Jun 18 08:22 2468AACF-2308-3771-BD97-5BDB45CA1CF4.bcsymbolmap
-rw-------  1 kientux  staff  101455 Jun 18 08:23 2972D33C-06AE-35C7-9691-C1300CAD5784.bcsymbolmap
-rw-------  1 kientux  staff  292820 Jun 18 08:19 2B89C763-C005-3AAD-BBF3-FD4DE5372839.bcsymbolmap
-rw-------  1 kientux  staff   83161 Jun 18 08:23 5CDEBDC5-4ACF-3A4A-A809-699B20BEE428.bcsymbolmap
-rw-------  1 kientux  staff   88507 Jun 18 08:23 724E7C99-2E9E-3C12-A41A-C7BA2A0970E7.bcsymbolmap
-rw-------  1 kientux  staff   24638 Jun 18 08:22 B4B9C767-47BE-313A-B8D1-2E9CED762CE4.bcsymbolmap
-rw-------  1 kientux  staff  297780 Jun 18 08:19 D0FD9773-7E21-3378-9E07-F39EC7323BE2.bcsymbolmap
drwxr-xr-x  6 kientux  staff     192 Jun 18 08:20 FBSDKCoreKit.framework
drwxr-xr-x  3 kientux  staff      96 Jun 18 08:20 FBSDKCoreKit.framework.dSYM
drwxr-xr-x  7 kientux  staff     224 Jun 18 08:22 FBSDKGamingServicesKit.framework
drwxr-xr-x  3 kientux  staff      96 Jun 18 08:22 FBSDKGamingServicesKit.framework.dSYM
drwxr-xr-x  6 kientux  staff     192 Jun 18 08:23 FBSDKLoginKit.framework
drwxr-xr-x  3 kientux  staff      96 Jun 18 08:23 FBSDKLoginKit.framework.dSYM
drwxr-xr-x  6 kientux  staff     192 Jun 18 08:23 FBSDKShareKit.framework
drwxr-xr-x  3 kientux  staff      96 Jun 18 08:23 FBSDKShareKit.framework.dSYM
drwxr-xr-x  3 kientux  staff      96 Jun 18 08:21 Static

Is this a bug of Accio or FacebookSDK itself? Maybe accio is guessing the framework name from product name and failed?

Jeehut commented 4 years ago

@kientux Does Facebook iOS SDK support Carthage? If not, then Accio won't work with it as of now. Please also see the discussion in https://github.com/JamitLabs/Accio/issues/88, it might help you to understand where we stand at the moment, including how Accio works.

Maybe we might also have a bug in the filtering of the frameworks we need to copy though, I'm not sure. Don't have the time to check.

fredpi commented 4 years ago

Closing this, as Accio is now deprecated.