0

I am using Swift Package Manager (SPM) with a multi-module setup in my Xcode project. However, when trying to use Xcode Previews, I am encountering errors.

Could anyone help me troubleshoot this issue or suggest a workaround? I would greatly appreciate any advice or insights.

no such file or directory: '/Users/ryunosuke.shibuya/Library/Developer/Xcode/DerivedData/StudyLegends-dsbzblsktceigvdzyfekfytqihoy/Build/Intermediates.noindex/Previews/StudyLegends/Products/Debug-iphonesimulator/PackageFrameworks/LoginFeature_-432B9D2E86C8FF2F_PackageProduct.framework/LoginFeature_-432B9D2E86C8FF2F_PackageProduct'

----------------------------------------

LinkDylibError: Failed to build AuthView.swift

Linking failed: no such file or directory: '/Users/ryunosuke.shibuya/Library/Developer/Xcode/DerivedData/StudyLegends-dsbzblsktceigvdzyfekfytqihoy/Build/Intermediates.noindex/Previews/StudyLegends/Products/Debug-iphonesimulator/PackageFrameworks/LoginFeature_-432B9D2E86C8FF2F_PackageProduct.framework/LoginFeature_-432B9D2E86C8FF2F_PackageProduct'

clang: error: no such file or directory: '/Users/ryunosuke.shibuya/Library/Developer/Xcode/DerivedData/StudyLegends-dsbzblsktceigvdzyfekfytqihoy/Build/Intermediates.noindex/Previews/StudyLegends/Products/Debug-iphonesimulator/PackageFrameworks/LoginFeature_-432B9D2E86C8FF2F_PackageProduct.framework/LoginFeature_-432B9D2E86C8FF2F_PackageProduct'


==================================

|  BuildInvocationError
|  
|  /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang -F /Applications/Xcode.app/Contents/SharedFrameworks-iphonesimulator -target arm64-apple-ios16.0-simulator -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator16.2.sdk -L/Users/ryunosuke.shibuya/Library/Developer/Xcode/DerivedData/StudyLegends-dsbzblsktceigvdzyfekfytqihoy/Build/Intermediates.noindex/Previews/StudyLegends/Intermediates.noindex/EagerLinkingTBDs -L/Users/ryunosuke.shibuya/Library/Developer/Xcode/DerivedData/StudyLegends-dsbzblsktceigvdzyfekfytqihoy/Build/Intermediates.noindex/Previews/StudyLegends/Products/Debug-iphonesimulator -L/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/usr/lib -F/Users/ryunosuke.shibuya/Library/Developer/Xcode/DerivedData/StudyLegends-dsbzblsktceigvdzyfekfytqihoy/Build/Intermediates.noindex/Previews/StudyLegends/Intermediates.noindex/EagerLinkingTBDs -F/Users/ryunosuke.shibuya/Library/Developer/Xcode/DerivedData/StudyLegends-dsbzblsktceigvdzyfekfytqihoy/Build/Intermediates.noindex/Previews/StudyLegends/Products/Debug-iphonesimulator/PackageFrameworks -F/Users/ryunosuke.shibuya/Library/Developer/Xcode/DerivedData/StudyLegends-dsbzblsktceigvdzyfekfytqihoy/Build/Intermediates.noindex/Previews/StudyLegends/Products/Debug-iphonesimulator/PackageFrameworks -F/Users/ryunosuke.shibuya/Library/Developer/Xcode/DerivedData/StudyLegends-dsbzblsktceigvdzyfekfytqihoy/Build/Intermediates.noindex/Previews/StudyLegends/Products/Debug-iphonesimulator/PackageFrameworks -F/Users/ryunosuke.shibuya/Library/Developer/Xcode/DerivedData/StudyLegends-dsbzblsktceigvdzyfekfytqihoy/Build/Intermediates.noindex/Previews/StudyLegends/Products/Debug-iphonesimulator/PackageFrameworks -F/Users/ryunosuke.shibuya/Library/Developer/Xcode/DerivedData/StudyLegends-dsbzblsktceigvdzyfekfytqihoy/Build/Intermediates.noindex/Previews/StudyLegends/Products/Debug-iphonesimulator/PackageFrameworks -F/Users/ryunosuke.shibuya/Library/Developer/Xcode/DerivedData/StudyLegends-dsbzblsktceigvdzyfekfytqihoy/Build/Intermediates.noindex/Previews/StudyLegends/Products/Debug-iphonesimulator/PackageFrameworks -F/Users/ryunosuke.shibuya/Library/Developer/Xcode/DerivedData/StudyLegends-dsbzblsktceigvdzyfekfytqihoy/Build/Intermediates.noindex/Previews/StudyLegends/Products/Debug-iphonesimulator/PackageFrameworks -F/Users/ryunosuke.shibuya/Library/Developer/Xcode/DerivedData/StudyLegends-dsbzblsktceigvdzyfekfytqihoy/Build/Intermediates.noindex/Previews/StudyLegends/Products/Debug-iphonesimulator/PackageFrameworks -F/Users/ryunosuke.shibuya/Library/Developer/Xcode/DerivedData/StudyLegends-dsbzblsktceigvdzyfekfytqihoy/Build/Intermediates.noindex/Previews/StudyLegends/Products/Debug-iphonesimulator/PackageFrameworks -F/Users/ryunosuke.shibuya/Library/Developer/Xcode/DerivedData/StudyLegends-dsbzblsktceigvdzyfekfytqihoy/Build/Intermediates.noindex/Previews/StudyLegends/Products/Debug-iphonesimulator/PackageFrameworks -F/Users/ryunosuke.shibuya/Library/Developer/Xcode/DerivedData/StudyLegends-dsbzblsktceigvdzyfekfytqihoy/Build/Intermediates.noindex/Previews/StudyLegends/Products/Debug-iphonesimulator/PackageFrameworks -F/Users/ryunosuke.shibuya/Library/Developer/Xcode/DerivedData/StudyLegends-dsbzblsktceigvdzyfekfytqihoy/Build/Intermediates.noindex/Previews/StudyLegends/Products/Debug-iphonesimulator/PackageFrameworks -F/Users/ryunosuke.shibuya/Library/Developer/Xcode/DerivedData/StudyLegends-dsbzblsktceigvdzyfekfytqihoy/Build/Intermediates.noindex/Previews/StudyLegends/Products/Debug-iphonesimulator/PackageFrameworks -F/Users/ryunosuke.shibuya/Library/Developer/Xcode/DerivedData/StudyLegends-dsbzblsktceigvdzyfekfytqihoy/Build/Intermediates.noindex/Previews/StudyLegends/Products/Debug-iphonesimulator/PackageFrameworks -F/Users/ryunosuke.shibuya/Library/Developer/Xcode/DerivedData/StudyLegends-dsbzblsktceigvdzyfekfytqihoy/Build/Intermediates.noindex/Previews/StudyLegends/Products/Debug-iphonesimulator/PackageFrameworks -F/Users/ryunosuke.shibuya/Library/Developer/Xcode/DerivedData/StudyLegends-dsbzblsktceigvdzyfekfytqihoy/Build/Intermediates.noindex/Previews/StudyLegends/Products/Debug-iphonesimulator/PackageFrameworks -F/Users/ryunosuke.shibuya/Library/Developer/Xcode/DerivedData/StudyLegends-dsbzblsktceigvdzyfekfytqihoy/Build/Intermediates.noindex/Previews/StudyLegends/Products/Debug-iphonesimulator/PackageFrameworks -F/Users/ryunosuke.shibuya/Library/Developer/Xcode/DerivedData/StudyLegends-dsbzblsktceigvdzyfekfytqihoy/Build/Intermediates.noindex/Previews/StudyLegends/Products/Debug-iphonesimulator/PackageFrameworks -F/Users/ryunosuke.shibuya/Library/Developer/Xcode/DerivedData/StudyLegends-dsbzblsktceigvdzyfekfytqihoy/Build/Intermediates.noindex/Previews/StudyLegends/Products/Debug-iphonesimulator/PackageFrameworks -F/Users/ryunosuke.shibuya/Library/Developer/Xcode/DerivedData/StudyLegends-dsbzblsktceigvdzyfekfytqihoy/Build/Intermediates.noindex/Previews/StudyLegends/Products/Debug-iphonesimulator/PackageFrameworks -F/Users/ryunosuke.shibuya/Library/Developer/Xcode/DerivedData/StudyLegends-dsbzblsktceigvdzyfekfytqihoy/Build/Intermediates.noindex/Previews/StudyLegends/Products/Debug-iphonesimulator/PackageFrameworks -F/Users/ryunosuke.shibuya/Library/Developer/Xcode/DerivedData/StudyLegends-dsbzblsktceigvdzyfekfytqihoy/Build/Intermediates.noindex/Previews/StudyLegends/Products/Debug-iphonesimulator/PackageFrameworks -F/Users/ryunosuke.shibuya/Library/Developer/Xcode/DerivedData/StudyLegends-dsbzblsktceigvdzyfekfytqihoy/Build/Intermediates.noindex/Previews/StudyLegends/Products/Debug-iphonesimulator/PackageFrameworks -F/Users/ryunosuke.shibuya/Library/Developer/Xcode/DerivedData/StudyLegends-dsbzblsktceigvdzyfekfytqihoy/Build/Intermediates.noindex/Previews/StudyLegends/Products/Debug-iphonesimulator/PackageFrameworks -F/Users/ryunosuke.shibuya/Library/Developer/Xcode/DerivedData/StudyLegends-dsbzblsktceigvdzyfekfytqihoy/Build/Intermediates.noindex/Previews/StudyLegends/Products/Debug-iphonesimulator/PackageFrameworks -F/Users/ryunosuke.shibuya/Library/Developer/Xcode/DerivedData/StudyLegends-dsbzblsktceigvdzyfekfytqihoy/Build/Intermediates.noindex/Previews/StudyLegends/Products/Debug-iphonesimulator/PackageFrameworks -F/Users/ryunosuke.shibuya/Library/Developer/Xcode/DerivedData/StudyLegends-dsbzblsktceigvdzyfekfytqihoy/Build/Intermediates.noindex/Previews/StudyLegends/Products/Debug-iphonesimulator/PackageFrameworks -F/Users/ryunosuke.shibuya/Library/Developer/Xcode/DerivedData/StudyLegends-dsbzblsktceigvdzyfekfytqihoy/Build/Intermediates.noindex/Previews/StudyLegends/Products/Debug-iphonesimulator/PackageFrameworks -F/Users/ryunosuke.shibuya/Library/Developer/Xcode/DerivedData/StudyLegends-dsbzblsktceigvdzyfekfytqihoy/Build/Intermediates.noindex/Previews/StudyLegends/Products/Debug-iphonesimulator/PackageFrameworks -F/Users/ryunosuke.shibuya/Library/Developer/Xcode/DerivedData/StudyLegends-dsbzblsktceigvdzyfekfytqihoy/Build/Intermediates.noindex/Previews/StudyLegends/Products/Debug-iphonesimulator/PackageFrameworks -F/Users/ryunosuke.shibuya/Library/Developer/Xcode/DerivedData/StudyLegends-dsbzblsktceigvdzyfekfytqihoy/Build/Intermediates.noindex/Previews/StudyLegends/Products/Debug-iphonesimulator/PackageFrameworks -F/Users/ryunosuke.shibuya/Library/Developer/Xcode/DerivedData/StudyLegends-dsbzblsktceigvdzyfekfytqihoy/Build/Intermediates.noindex/Previews/StudyLegends/Products/Debug-iphonesimulator/PackageFrameworks -F/Users/ryunosuke.shibuya/Library/Developer/Xcode/DerivedData/StudyLegends-dsbzblsktceigvdzyfekfytqihoy/Build/Intermediates.noindex/Previews/StudyLegends/Products/Debug-iphonesimulator/PackageFrameworks -F/Users/ryunosuke.shibuya/Library/Developer/Xcode/DerivedData/StudyLegends-dsbzblsktceigvdzyfekfytqihoy/Build/Intermediates.noindex/Previews/StudyLegends/Products/Debug-iphonesimulator/PackageFrameworks -F/Users/ryunosuke.shibuya/Library/Developer/Xcode/DerivedData/StudyLegends-dsbzblsktceigvdzyfekfytqihoy/Build/Intermediates.noindex/Previews/StudyLegends/Products/Debug-iphonesimulator/PackageFrameworks -F/Users/ryunosuke.shibuya/Library/Developer/Xcode/DerivedData/StudyLegends-dsbzblsktceigvdzyfekfytqihoy/Build/Intermediates.noindex/Previews/StudyLegends/Products/Debug-iphonesimulator/PackageFrameworks -F/Users/ryunosuke.shibuya/Library/Developer/Xcode/DerivedData/StudyLegends-dsbzblsktceigvdzyfekfytqihoy/Build/Intermediates.noindex/Previews/StudyLegends/Products/Debug-iphonesimulator/PackageFrameworks -F/Users/ryunosuke.shibuya/Library/Developer/Xcode/DerivedData/StudyLegends-dsbzblsktceigvdzyfekfytqihoy/Build/Intermediates.noindex/Previews/StudyLegends/Products/Debug-iphonesimulator/PackageFrameworks -F/Users/ryunosuke.shibuya/Library/Developer/Xcode/DerivedData/StudyLegends-dsbzblsktceigvdzyfekfytqihoy/Build/Intermediates.noindex/Previews/StudyLegends/Products/Debug-iphonesimulator/PackageFrameworks -F/Users/ryunosuke.shibuya/Library/Developer/Xcode/DerivedData/StudyLegends-dsbzblsktceigvdzyfekfytqihoy/Build/Intermediates.noindex/Previews/StudyLegends/Products/Debug-iphonesimulator/PackageFrameworks -F/Users/ryunosuke.shibuya/Library/Developer/Xcode/DerivedData/StudyLegends-dsbzblsktceigvdzyfekfytqihoy/Build/Intermediates.noindex/Previews/StudyLegends/Products/Debug-iphonesimulator/PackageFrameworks -F/Users/ryunosuke.shibuya/Library/Developer/Xcode/DerivedData/StudyLegends-dsbzblsktceigvdzyfekfytqihoy/Build/Intermediates.noindex/Previews/StudyLegends/Products/Debug-iphonesimulator/PackageFrameworks -F/Users/ryunosuke.shibuya/Library/Developer/Xcode/DerivedData/StudyLegends-dsbzblsktceigvdzyfekfytqihoy/Build/Intermediates.noindex/Previews/StudyLegends/Products/Debug-iphonesimulator/PackageFrameworks -F/Users/ryunosuke.shibuya/Library/Developer/Xcode/DerivedData/StudyLegends-dsbzblsktceigvdzyfekfytqihoy/Build/Intermediates.noindex/Previews/StudyLegends/Products/Debug-iphonesimulator/PackageFrameworks -F/Users/ryunosuke.shibuya/Library/Developer/Xcode/DerivedData/StudyLegends-dsbzblsktceigvdzyfekfytqihoy/Build/Intermediates.noindex/Previews/StudyLegends/Products/Debug-iphonesimulator/PackageFrameworks -F/Users/ryunosuke.shibuya/Library/Developer/Xcode/DerivedData/StudyLegends-dsbzblsktceigvdzyfekfytqihoy/Build/Intermediates.noindex/Previews/StudyLegends/Products/Debug-iphonesimulator/PackageFrameworks -F/Users/ryunosuke.shibuya/Library/Developer/Xcode/DerivedData/StudyLegends-dsbzblsktceigvdzyfekfytqihoy/Build/Intermediates.noindex/Previews/StudyLegends/Products/Debug-iphonesimulator/PackageFrameworks -F/Users/ryunosuke.shibuya/Library/Developer/Xcode/DerivedData/StudyLegends-dsbzblsktceigvdzyfekfytqihoy/Build/Intermediates.noindex/Previews/StudyLegends/Products/Debug-iphonesimulator/PackageFrameworks -F/Users/ryunosuke.shibuya/Library/Developer/Xcode/DerivedData/StudyLegends-dsbzblsktceigvdzyfekfytqihoy/Build/Intermediates.noindex/Previews/StudyLegends/Products/Debug-iphonesimulator/PackageFrameworks -F/Users/ryunosuke.shibuya/Library/Developer/Xcode/DerivedData/StudyLegends-dsbzblsktceigvdzyfekfytqihoy/Build/Intermediates.noindex/Previews/StudyLegends/Products/Debug-iphonesimulator/PackageFrameworks -F/Users/ryunosuke.shibuya/Library/Developer/Xcode/DerivedData/StudyLegends-dsbzblsktceigvdzyfekfytqihoy/Build/Intermediates.noindex/Previews/StudyLegends/Products/Debug-iphonesimulator/PackageFrameworks -F/Users/ryunosuke.shibuya/Library/Developer/Xcode/DerivedData/StudyLegends-dsbzblsktceigvdzyfekfytqihoy/Build/Intermediates.noindex/Previews/StudyLegends/Products/Debug-iphonesimulator/PackageFrameworks -F/Users/ryunosuke.shibuya/Library/Developer/Xcode/DerivedData/StudyLegends-dsbzblsktceigvdzyfekfytqihoy/Build/Intermediates.noindex/Previews/StudyLegends/Products/Debug-iphonesimulator/PackageFrameworks -F/Users/ryunosuke.shibuya/Library/Developer/Xcode/DerivedData/StudyLegends-dsbzblsktceigvdzyfekfytqihoy/Build/Intermediates.noindex/Previews/StudyLegends/Products/Debug-iphonesimulator/PackageFrameworks -F/Users/ryunosuke.shibuya/Library/Developer/Xcode/DerivedData/StudyLegends-dsbzblsktceigvdzyfekfytqihoy/Build/Intermediates.noindex/Previews/StudyLegends/Products/Debug-iphonesimulator/PackageFrameworks -F/Users/ryunosuke.shibuya/Library/Developer/Xcode/DerivedData/StudyLegends-dsbzblsktceigvdzyfekfytqihoy/Build/Intermediates.noindex/Previews/StudyLegends/Products/Debug-iphonesimulator/PackageFrameworks -F/Users/ryunosuke.shibuya/Library/Developer/Xcode/DerivedData/StudyLegends-dsbzblsktceigvdzyfekfytqihoy/Build/Intermediates.noindex/Previews/StudyLegends/Products/Debug-iphonesimulator/PackageFrameworks -F/Users/ryunosuke.shibuya/Library/Developer/Xcode/DerivedData/StudyLegends-dsbzblsktceigvdzyfekfytqihoy/Build/Intermediates.noindex/Previews/StudyLegends/Products/Debug-iphonesimulator/PackageFrameworks -F/Users/ryunosuke.shibuya/Library/Developer/Xcode/DerivedData/StudyLegends-dsbzblsktceigvdzyfekfytqihoy/Build/Intermediates.noindex/Previews/StudyLegends/Products/Debug-iphonesimulator/PackageFrameworks -F/Users/ryunosuke.shibuya/Library/Developer/Xcode/DerivedData/StudyLegends-dsbzblsktceigvdzyfekfytqihoy/Build/Intermediates.noindex/Previews/StudyLegends/Products/Debug-iphonesimulator -F/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/Library/Frameworks -iframework /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/Library/Frameworks -iframework /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator16.2.sdk/Developer/Library/Frameworks -Xlinker -no_deduplicate -Xlinker -objc_abi_version -Xlinker 2 -fobjc-link-runtime -L/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/swift/iphonesimulator -L/usr/lib/swift -dynamiclib /Users/ryunosuke.shibuya/Library/Developer/Xcode/DerivedData/StudyLegends-dsbzblsktceigvdzyfekfytqihoy/Build/Intermediates.noindex/Previews/StudyLegends/Intermediates.noindex/StudyLegends.build/Debug-iphonesimulator/LoginFeature.build/Objects-normal/arm64/AuthView.1.preview-thunk.o -o /Users/ryunosuke.shibuya/Library/Developer/Xcode/DerivedData/StudyLegends-dsbzblsktceigvdzyfekfytqihoy/Build/Intermediates.noindex/Previews/StudyLegends/Intermediates.noindex/StudyLegends.build/Debug-iphonesimulator/LoginFeature.build/Objects-normal/arm64/AuthView.1.preview-thunk.dylib /Users/ryunosuke.shibuya/Library/Developer/Xcode/DerivedData/StudyLegends-dsbzblsktceigvdzyfekfytqihoy/Build/Intermediates.noindex/Previews/StudyLegends/Products/Debug-iphonesimulator/PackageFrameworks/LoginFeature_-432B9D2E86C8FF2F_PackageProduct.framework/LoginFeature_-432B9D2E86C8FF2F_PackageProduct -framework SwiftUI

I rewrote the bundle like this for Previews but it did not work.

import class Foundation.Bundle
import class Foundation.ProcessInfo

private class BundleFinder {}

extension Foundation.Bundle {
    /// Returns the resource bundle associated with the current Swift module.
    static var current: Bundle = {
        let bundleName = "StudyLegends_Generated"

        var candidates = [
            // Bundle should be present here when the package is linked into an App.
            Bundle.main.resourceURL,

            // Bundle should be present here when the package is linked into a framework.
            Bundle(for: BundleFinder.self).resourceURL,

            // For command-line tools.
            Bundle.main.bundleURL,
        ]

        // FIX FOR PREVIEWS
        if ProcessInfo.processInfo.environment["XCODE_RUNNING_FOR_PREVIEWS"] == "1" {
            candidates.append(contentsOf: [
                // Bundle should be present here when running previews from a different package
                Bundle(for: BundleFinder.self).resourceURL?.deletingLastPathComponent().deletingLastPathComponent().deletingLastPathComponent(),
                Bundle(for: BundleFinder.self).resourceURL?.deletingLastPathComponent().deletingLastPathComponent()
            ])
        }

        for candidate in candidates {
            let bundlePath = candidate?.appendingPathComponent(bundleName + ".bundle")
            if let bundle = bundlePath.flatMap(Bundle.init(url:)) {
                return bundle
            }
        }
        fatalError("unable to find bundle named \(bundleName)")
    }()
}
Ryu
  • 1
  • SPMs autogenerate a `Bundle` named `.module`. use this one for accessing any Resources in that package. why the linker fails is hard to tell without more info: - are all dependencies correctly declared in package manifest? - are you building Previews in the correct Xcode scheme? the linker error clearly states what files are missing (LoginFeature). check if it is built. – tim Apr 23 '23 at 18:41

1 Answers1

0

For some reason this is not alway needed, but also add the target as a product in the manifest so:

.library(
    name: "LoginFeature",
    targets: ["LoginFeature"]),

Then when you are in the file with the preview make sure the "LoginFeature" Scheme is selected. (it looks like a building icon, not the pink stack icon). Not sure if this is your issue or not, but worth trying.

hidden-username
  • 2,610
  • 3
  • 14
  • 19