JamitLabs / Accio

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

Trouble adding XcodeProj to macOS app #35

Closed samisuteria closed 5 years ago

samisuteria commented 5 years ago

I'm having trouble adding XcodeProj to a new project built with Accio. The problem seems to be with PathKit.

✨  Building library PathKit with Carthage ...
⚠️  No shared scheme(s) found matching library name 'PathKit' – can't remove potentially unnecessary shared schemes, keeping all
*** xcodebuild output can be found in /var/folders/3g/s__pcjg96s7ghq56p393hc140000gn/T/carthage-xcodebuild.7dLiEd.log
*** Skipped building PathKit due to the error:
Dependency "PathKit" has no shared framework schemes for any of the platforms: Mac
cp: /Code/Limerick/Demo/.accio/checkouts/PathKit/Carthage/Build/Mac/PathKit.framework: No such file or directory
An error occurred: Command '/bin/bash -c "cp -R '/Code/Limerick/Demo/.accio/checkouts/PathKit/Carthage/Build/Mac/PathKit.framework' '/var/folders/3g/s__pcjg96s7ghq56p393hc140000gn/T/Accio/BuildProducts/macOS/PathKit.framework'"' returned with error code 1.
Jeehut commented 5 years ago

@samisuteria Thank you for reporting this issue. Could you please provide information about:

Also, can you reproduce the error after updating Accio and running accio clean first before running accio update?

samisuteria commented 5 years ago

I'm using Accio v0.6.0 and Carthage 0.33.0. For XcodeProj I've tried with both master and latest (6.7.0). In Xcode I just made a brand new project macOS -> Cocoa App. I've been able to successfully use Accio with other packages (Quick/Nimble/SnapKit).

// swift-tools-version:5.0
import PackageDescription

let package = Package(
    name: "Demo",
    products: [],
    dependencies: [
        .package(url: "https://github.com/tuist/xcodeproj.git", .exact("6.7.0")),
    ],
    targets: [
        .target(
            name: "Demo",
            dependencies: [
                "xcodeproj"
            ],
            path: "Demo"
        ),
    ]
)
// swift-tools-version:5.0
import PackageDescription

let package = Package(
    name: "Demo",
    products: [],
    dependencies: [
        .package(url: "https://github.com/tuist/xcodeproj.git", .branch("master")),
    ],
    targets: [
        .target(
            name: "Demo",
            dependencies: [
                "XcodeProj"
            ],
            path: "Demo"
        ),
    ]
)

Logs:


✨  Resolving dependencies ...
Fetching https://github.com/kylef/Spectre.git
Fetching https://github.com/tuist/xcodeproj.git
Fetching https://github.com/kylef/PathKit
Fetching https://github.com/kareman/SwiftShell
Fetching https://github.com/tadija/AEXML
Fetching https://github.com/tuist/Shell
Completed resolution in 7.48s
Cloning https://github.com/tuist/xcodeproj.git
Resolving https://github.com/tuist/xcodeproj.git at master
Cloning https://github.com/tadija/AEXML
Resolving https://github.com/tadija/AEXML at 4.4.0
Cloning https://github.com/kylef/PathKit
Resolving https://github.com/kylef/PathKit at 1.0.0
Cloning https://github.com/kylef/Spectre.git
Resolving https://github.com/kylef/Spectre.git at 0.9.0
Cloning https://github.com/tuist/Shell
Resolving https://github.com/tuist/Shell at 2.0.3
✨  Reading package manifest at /Users/sami/Desktop/Demo/Package.swift ...
✨  Generating dependency graph ...
✨  Resolving dependencies for target 'Demo' on platform 'macOS' ...
✨  Found cached build products for AEXML in local cache - skipping build.
✨  Generating Xcode project at /Users/sami/Desktop/Demo/.accio/checkouts/PathKit/PathKit.xcodeproj using SwiftPM ...
Fetching https://github.com/kylef/Spectre.git
Completed resolution in 1.48s
Cloning https://github.com/kylef/Spectre.git
Resolving https://github.com/kylef/Spectre.git at 0.9.0
generated: ./.accio/checkouts/PathKit/PathKit.xcodeproj
✨  Generated Xcode project at /Users/sami/Desktop/Demo/.accio/checkouts/PathKit/PathKit.xcodeproj using SwiftPM.
✨  Building library PathKit with Carthage ...
⚠️  No shared scheme(s) found matching library name 'PathKit' – can't remove potentially unnecessary shared schemes, keeping all
*** xcodebuild output can be found in /var/folders/3g/s__pcjg96s7ghq56p393hc140000gn/T/carthage-xcodebuild.ukUMoE.log
*** Skipped building PathKit due to the error:
Dependency "PathKit" has no shared framework schemes for any of the platforms: Mac
cp: /Users/sami/Desktop/Demo/.accio/checkouts/PathKit/Carthage/Build/Mac/PathKit.framework: No such file or directory
An error occurred: Command '/bin/bash -c "cp -R '/Users/sami/Desktop/Demo/.accio/checkouts/PathKit/Carthage/Build/Mac/PathKit.framework' '/var/folders/3g/s__pcjg96s7ghq56p393hc140000gn/T/Accio/BuildProducts/macOS/PathKit.framework'"' returned with error code 1.```
samisuteria commented 5 years ago

I was able to reproduce after running accio clean accio update

Jeehut commented 5 years ago

Okay, thanks, I'll have a look.

Jeehut commented 5 years ago

Okay, I've found the issue and fixed it in 779e3fc449863c88e32a90cfcf340d535829bedb. Let me prepare a new release with the fix so you can continue resolving your dependencies.

Please note that the fix does not mean that XcodeProj is already fully compatible with Accio. There might still some work needed to be done. But it's probably not an issue with Accio then but rather a configuration issue. If you need help with that, please report the issue on XcodeProj (and mention me there, if you need my help).

samisuteria commented 5 years ago

Thanks for the quick turn around 💯

Jeehut commented 5 years ago

Version 0.6.1 was just released. Please run brew upgrade accio to get it, then try again. Good luck!