programing

Xcode를 사용하여 "No such module" 오류가 발생하지만 프레임워크가 있습니다.

minxs 2023. 4. 16. 15:50
반응형

Xcode를 사용하여 "No such module" 오류가 발생하지만 프레임워크가 있습니다.

현재 Swift에서 코딩 중인데 오류가 발생했습니다.

해당 모듈이 없습니다.소셜

그러나 모듈이 "Linked Frameworks and Libraries" 및 "Embedded Binarys"에 선언된 내 프로젝트에 있기 때문에 이해할 수 없습니다.

프레임워크는 Objective-C에 있기 때문에 Bridge Header를 작성했습니다.

어떻게 하면 Xcode에게 프레임워크를 인식시킬 수 있을까요?

오류 모듈

프로젝트.

Linkes 프레임워크, 라이브러리

헤더 브리지

금요일 오후 또는 새벽 1시 이후인 경우:

★★★xcodeprojxcworkspace이런 오류가 발생합니다.

왜 이런 일이 일어나는지 모르겠지만 문제를 해결하는 방법 중 하나는 빌드 설정으로 이동하여 해당 프레임워크를 포함하는 폴더에 대한 프레임워크 검색 경로를 정의하는 것입니다.프레임워크가 프로젝트 디렉토리에 배치되어 있는 경우 프레임워크 검색 경로를 다음과 같이 설정합니다.$(SRCROOT)재귀로 설정합니다.

하위 프로젝트의 구성 이름이 "상위" 프로젝트의 이름과 일치하는지 확인하십시오.구성 이름이 정확하게 일치하지 않으면(대문자와 소문자가 구분됨) Xcode는 아카이브 프로세스를 중단하고 "No such module..." 오류를 표시합니다."

즉, "AppStore"라는 이름의 구성을 가진 "상위" 프로젝트가 있는 경우 모든 하위 프로젝트에도 이 구성 이름이 있는지 확인해야 합니다.

첨부한 스크린샷을 보세요.

"상위" 프로젝트에서의 구성 셋업

첫 번째 서브프로젝트 구성 셋업

두 번째 서브프로젝트 구성 셋업

질문에 대한 코멘트에서 Martin R의 답변이 왜 그렇게 무시되는지 잘 모르겠다.

프레임워크는 이미 브리징헤더에 추가되어 있기 때문에 Import를 건너뛰기만 하면 됩니다.

도움이 되었으면 좋겠다

Cocapods와 Swift에서도 같은 문제가 있었습니다.Podfile에서 다음 행을 찾을 수 없었습니다.

# Uncomment this line if you're using Swift
# use_frameworks!

그래서 내가 해야 할 일은 그것을 다음과 같이 바꾸는 것 뿐이었다.

# Uncomment this line if you're using Swift
use_frameworks!

...aa 그리고 효과가 있었다 :)

다음 단계가 나에게 효과가 있었다.

  1. xcode 종료
  2. 실행합니다."pod update"
  3. ..xcworkspace을 사용하다

이 스크린샷을 빌드 설정과 비교하십시오.잘 될 거야.프레임워크 검색 경로로 이동합니다.

여기에 이미지 설명을 입력하십시오.

저도 이 문제를 겪고 있었어요.두 프로젝트 간의 아카이브 방식이 일치하지 않는다는 점이 수정되었습니다.저는 프레임워크 프로젝트와 앱 프로젝트가 있는 xcworkspace를 가지고 있습니다.문제는 앱의 Archive 스키마에서 프레임워크가 Archive 스키마에서 사용하고 있는 빌드 구성과는 다른 빌드 구성을 사용하고 있다는 것입니다.양쪽 빌드 구성을 릴리스로 설정했더니 문제가 해결되었습니다.

제 경우, 틀을 수입하는 과정에서 무엇이 잘못되었는지 알아내려고 여러 번 시도했지만, 결국 틀 자체가 문제라는 것을 알게 되었습니다.신뢰할 수 있는 소스로부터 프레임워크를 가져오지 않는 경우 프레임워크를 검사하여 module.modulemap 파일이 포함된 Modules 폴더가 포함되어 있는지 확인해야 합니다.module.modulemap이 없는 경우 "No such module 'My Framework'" 오류가 나타납니다.

SwiftyJSON.framework 디렉토리 구조 예시

Modules 폴더에 "MyFramework.swiftmodule" 폴더가 없는 경우 프레임워크는 발견되지만 Xcode는 내용을 인식하지 못하기 때문에 다른 오류가 발생합니다.

Xcode 컴파일 오류:해당 모듈은 없습니다.

//Swift
import <module_name> //No such module '< module_name >'

컴파일 시간 오류입니다.다양한 케이스로 입수할 수 있습니다.

  • .xcodeproj.xcworkspace
  • module.modulemap ★★★★★★★★★★★★★★★★★」.swiftmodule [대략]

Objective-C 라이브러리/프레임워크 타깃

생성된 바이너리가 다음을 포함하는지 확인합니다.module.modulemap은 '파일'에 있습니다.Build Phases -> Headers section

Framework Search Paths

컨슈머 -> 프레임워크

the the the the the the the the the the the면면면면 the the the the the the the the the the the the the the the the Framework Search Paths( 설정한 후)Framework Search Path프레임워크 자원을 가리키기 위해 Xcode는 프로젝트를 성공적으로 구축합니다.과 같은 인해 합니다.Image not found

일 수도 경로일 .$(SRCROOT) ★★★★★★★★★★★★★★★★★」$(SRCROOT)/..

Import Paths

스위프트 컨슈머 -> 스위프트 스태틱 라이브러리

Import Paths는 (으)를 ..swiftmodule

Find Implicit Dependencies

, 「」가 경우.Find Implicit Dependencies

코코아팟

  • 이 종속성이 대상에 존재하는지 확인합니다.
pod deintegrate
pod install

UI Test Bundle

★★★★★★에App Target코코아팟의 추가 의존성을 사용하였습니다. 문제를 해결하려면 을 사용합니다.inherit![About]Podfile

[재귀 경로]

프레임워크가 실제로 존재한다고 가정하고, 그 경로에 있다고 가정하면...~/Library/Developer/Xcode/DerivedData/ModuleCache 디렉토리를 삭제합니다(프로젝트를 정리하고 프로젝트별 파생 데이터를 삭제하여 적절한 측정을 수행합니다).

표준 정리를 수행하면 ModuleCache 디렉토리가 재구축되지 않습니다.

는 꼭 해 주세요.Find implicit Dependencies스킴

이 문제가 발생할 수 있는 설정 오류는 몇 가지 있습니다.

  1. .xcworkspace 아니다.xcodeproj 또한 .Social, 먼저 빌드하기 TriviaApp.
  2. iOS Deployment Target(iOS 배포 대상)이 메인 앱이 있는 모든 모듈에 대해 동일하게 설정되어 있는지 확인합니다.를 들어 " " " 입니다.TriviaApp의 전개 은, 「Deployment Target」이 「Deployment Target은 「Deployment Target」으로 설정되어 .9.0,Social의 전개 도 「배치 대상」으로 가 있습니다.9.0.
  3. 모듈메인 모듈)을 합니다.TriviaApp 프레임워크 「 」 ) Social ).에 3가지 3가지 구성이 있습니다.Debug,Release,ReleasePremium도 3가지 .Debug,Release,ReleasePremium, 아카이브 이, 「」, 「」의 양쪽 모두에 대해서 동일하게 설정되어 TriviaApp ★★★★★★★★★★★★★★★★★」Social의 「」가TriviaApp이 「아카이브」로 되어 있습니다.ReleasePremium , 의 , ,.Social도 '아카이브'로 설정할 가 있습니다.ReleasePremium.
  4. Import 할 필요가 없음을 확인해 주세요.Social.swift이 "에되어 있는 경우Bridging-Header.h.
  5. 파일에서 , " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " "" " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " "#use_frameworks!use_frameworks!Podfile을 다시 이 효과적일 수 Social팟에 의존합니다.
  6. 위의 절차 중 하나라도 작동하지 않으면 파생 데이터 폴더를 삭제하고 다시 빌드해 보십시오.

선택한 구성에 대해 [Build Active Architecture Only](액티브 아키텍처 구축만)이 [Yes](네)로 설정되었습니다.이것이 성공했습니다.

왼쪽 프로젝트 네비게이터에서 [Pods]를 선택합니다.> [ Build Settings ]> [ Build Active Architecture Only ]를 선택하여 [No]를 선택합니다.

나에게 효과가 있었던 것은 다른 질문에 대한 이 해결책이다.Xcode를 닫고 프로젝트를 워크스페이스로 다시 엽니다.
하여 [ ]를 엽니다..xcodeworkspace
워크스페이스를 열면(프로젝트 대신) 프로젝트 탐색기에서 포드(Pods)가 최상위 프로젝트로 표시됩니다.

며칠 전에도 같은 에러가 발생했습니다.문제를 해결한 방법은 다음과 같습니다.

오류: "module not found"

  • 루트 프로젝트 디렉토리에 포드 파일 생성
  • cocapod 설치(Swift 및 iOS 프로젝트용 종속 관리자)
  • 포드 설치 실행
  • 프로젝트 빌드 설정으로 이동합니다.

    • Swift 컴파일러 - Code Generation에서 Objective-c 브리징 헤더를 찾습니다(Swift 컴파일러를 찾을 수 없는 경우 프로젝트에 새로운 Swift 파일을 추가합니다).
    • 라이브러리 헤더 파일을 왼쪽에서 브리징 헤더로 드래그 앤 드롭합니다(첨부 여기에 이미지 설명 입력이미지 참조).
  • 새로운 브리징헤더 파일(예: TestProject-Bridging-Header.h)을 생성하여 Swift 컴파일러 → Objective-C Generated Interface Header Name 아래에 둡니다(참조, 위 이미지 참조).

  • TestProject-Bridging-Header.h 파일에 #import "Mixpanel/Mixpanel"이라고 적습니다.h"
  • Swift 파일의 코드는 Import Mixpanel(라이브러리 이름)이어야 합니다.

그게 다예요.

같은 문제를 해결한 방법은 작업영역 디렉토리를 기본값으로 유지하는 것이 아니라 작업영역 디렉토리를 기준으로 파생된 데이터 위치를 설정하는 것이었습니다.xcode 기본 설정으로 이동합니다.기본 설정에서 위치 탭으로 이동하고 파생 데이터를 상대 데이터로 설정합니다.도움이 됐으면 좋겠다.

같은 에러가 발생하고 있습니다.

import Firebase

그러나 그 후 메인 타깃 섹션에는 포드를 추가하지 않고 테스트 및 테스트에만 추가한다는 것을 알게 되었다.Podfile의 UI 대상입니다.

명령어를 사용하여

pod init

xcode swift 프로젝트의 경우 다음 팟파일이 생성됩니다.

# Uncomment the next line to define a global platform for your project
# platform :ios, '9.0'

target 'MyApp' do
  # Comment the next line if you're not using Swift and don't want to use dynamic frameworks
  use_frameworks!

  # Pods for MyApp

  target 'MyAppTests' do
    inherit! :search_paths
    # Pods for testing
  end

  target 'MyAppUITests' do
    inherit! :search_paths
    # Pods for testing
  end

end

따라서 적절한 플레이스 홀더에 팟을 추가해야 합니다.

★★★★★★★★★★★★★★★★★.pod deintegrate 다음에 또 한 번.pod install저도 도움이 돼요

xCode 12와 시뮬레이터는

프로젝트 탐색기에서 Pods.xcodeproj로 이동하고 'Excluded Architectures' 아래의 빌드 설정에서 모든 디버깅 및 릴리스에 대해 값 arm64의 'Any iOS Simulator SDK'를 선택하면 오류가 사라질 수 있습니다.

tvOS와 같은 플랫폼을 구축하려면 Apple TV(즉, 일치하는) 시뮬레이터가 선택되어 있는지 확인하십시오.

iOS 시뮬레이터를 선택하여 tvOS 앱을 구축하면 바로 이 오류가 발생합니다.거의 한 시간 동안 모든 종류의 빌드 문제를 찾아다녔어. doh.

를 사용하여 몇 개의 프레임워크를 추가했을 때와 같은 오류가 발생하였습니다.Cocoapods Pods를 해야 xcodeworkspacexcodeproject통해 xcodebuild를 -workspace <workspacename>의 파라미터xcodebuild완벽하게 작동했어요

나의 경우, 새로 만든 프레임워크에서는 아이폰OS_DEployment_TARGET은 9.3으로 설정되어 있는 반면, 앱은 10.2로 설정되어 있습니다.

타깃 플랫폼의 요건이 앱 요건보다 높기 때문에 암묵적인 의존관계 해결자가 새로운 프레임워크를 무시했습니다.

사용 인 애플리케이션 배포 대상에 맞게 iOS 배포 대상을 조정한 후 프레임워크가 성공적으로 컴파일 및 링크되었습니다.

xcode 10.3에서도 같은 문제가 발생했습니다.xCode가 팟에서 파일을 인식할 수 없었습니다.여기에서는, 다음과 같이 해결했습니다.

  • 빌드 단계로 이동
  • 라이브러리와 바이너리 연결
  • 팟에서 프레임워크 추가(이 경우 EPSignature.framwork)
  • 프로젝트 청소 및 구축

오류가 사라졌습니다.여기에 이미지 설명 입력

TL에 합니다.DR: 상 dr dr dr dr dr dr drshared_pods

지난 한 주 동안 이곳에 게시된 모든 답변들을 말 그대로 시도해 본 끝에 마침내 해결책을 찾았습니다.

두 가지 목표가 있습니다 하나는 석방용이고 다른 하나는 개발용입니다개발 목표는 출시 목표보다 한참 뒤에 생성되었기 때문에 해당 목표의 몇 가지 설정 단계를 잊어버렸습니다.

릴리즈 타깃을 사용하여 프로젝트를 적절하게 컴파일할 수 있었지만 개발 타깃에 문제가 있었습니다.

을 스무 , 는 내 팟파일에 것을 .shared_pods★★★★

target 'Release' do
  shared_pods
end

두 번째 타깃을 Podfile에 추가하면 문제가 해결됩니다.

target 'Release' do
  shared_pods
end

target 'Development' do
    shared_pods
end

이게 며칠간의 좌절감을 덜어주길 바란다.

Apple iOS xcode 버전 12.3(12C33) Webview 문제 해결

간단한 3단계:

  1. 로로 with와 함께 를 열다.xcodeproj

  2. X코드 종료

  3. 를 다시 열다.xcworkspace

모두 완료

는 ★★★★★★★★★★★★★★★★★★★★★★★★★★★★★.Import Paths Build SettingsMySQL(MySQL)을 사용합니다.올바른 방향을 가리킨 후 메시지는 사라졌습니다.

이 문제를 해결했습니다.

대상 -> 일반 -> 링크된 프레임워크 및 라이브러리

할 .Workspace골칫덩어리.

방금 누에고치를 지웠어요그리고 나서 팟 설치를 해서 제거했습니다.그리고 나서, 저는 그것을 제 포드 파일에 다시 추가하고 다시 설치했습니다.그게 효과가 있었어.이유는 잘 모르겠어요.

나는 이미 포드를 설치했다.단말기에 애플리케이션을 빌드했을 때 빌드는 문제없이 동작했지만 아카이브가 동작하지 않았습니다.그냥 뛰어요.

pod install

새로운 포드가 설치되지 않고 .xcodeproj 파일만 재생성되고 아카이브가 작동하기 시작했습니다.

언급URL : https://stackoverflow.com/questions/29500227/getting-error-no-such-module-using-xcode-but-the-framework-is-there

반응형