답변:
나에게 이전 솔루션 중 어느 것도 효과가 없었습니다. ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES
빌드 설정에 YES로 설정해야하는 플래그 (이전 버전 : "내장 된 컨텐츠에 스위프트 코드가 포함됨") 가 있음을 발견했습니다 . 기본적으로 NO였습니다!
이 오류는 Objective-C 프로젝트를 변환하여 Swift 사용을 시작하는 중에 문제가 발생한 경우 발생할 수 있습니다. 문제는 링커 빌드 설정이 제대로 구성되지 않았으므로 직접 수행해야한다는 것입니다. Runpath Search Paths 빌드 설정을 찾아서 다음과 같이 설정하십시오.
$(inherited) @executable_path/Frameworks
편집 : 또한 다른 문제로 인해이 오류가 최근에 발생했다고 덧붙여 야합니다 .Apple은 아마도 Xcode 6.1 또는 6.1.1에서 시작하여 Swift 자체를 변경했습니다. 유일한 해결책은 Xcode를 종료하고 Keychain Access에서 인증서를 삭제하고 회원 센터로 이동하여 모든 인증서 및 프로필을 삭제 한 다음 (Store의 앱 프로필 제외-삭제할 수 없음) 처음부터 전체 인증서 요청 프로세스
나는 왜이 질문이 다운 투표되고 있는지 잘 모르겠습니다. 기존 프로젝트에서 Swift를 처음 사용할 때도이 문제가있었습니다. Xcode를 다시 시작하면이 문제가 해결되었습니다.
이 문제에 대해 오랫동안 검색했습니다. 이 문제의 원인은 여러 가지가 있습니다.
Objectice C 프로젝트에서 Swift 코드 / 라이브러리를 사용할 때 직면하는 경우 솔루션 1-2-3을 시도해야합니다
새로운 Swift 프로젝트 솔루션 4로이 문제에 직면 한 경우 가장 적합합니다.
Xcode를 재시작 한 다음 컴퓨터와 iPhone
프로젝트 빌드 설정으로 이동하여 Always Embed Swift Standard Libraries
(이전 Embedded Content Contains Swift Code
) 플래그를YES
프로젝트 빌드 설정으로 이동하여 추가 @executable_path/Frameworks
로 Runpath Search Paths
옵션
위의 방법 중 어느 것도 작동하지 않으면 이것이되어야합니다. 애플은 닌자 패치 인증서 인 것처럼 보입니다.AirSign의 게시물에
InHouse 인증서
Subject: UID=269J2W3P2L, CN=iPhone Distribution: Company Name, O=Company Name, C=FR
그들은 OU 라는 새로운 필드를 추가했습니다.
Subject: UID=269J2W3P2L, CN=iPhone Distribution: Company Name, OU=269J2W3P2L, O=Company Name, C=FR
인증서와 프로 비전을 다시 만들어야합니다
@executable_path/../Frameworks
iOS 프로젝트가 ..
중간에 없이 필요로하는 곳이 필요합니다 . 대상을 한 OS에서 다른 OS로 변환 한 경우이 값을 변경하는 것이 중요합니다.
필자의 경우 사용자 정의 프레임 워크를 가져 오려고 시도했지만 비슷한 오류가 발생했습니다. 연결된 프레임 워크 및 라이브러리가 아닌 Embedded Binaries에서 프레임 워크를 가져와야합니다.
임베디드 바이너리는 프로젝트 설정->-> 일반에 있습니다.
해결책 5 :
제 경우에는 accfews 의 답변에 언급 된 모든 솔루션 이 매우 도움이되었지만 아무것도 효과가 없었습니다. 프로젝트 대상의 "일반"섹션에있는 "내장 바이너리"섹션에 빠른 라이브러리를 추가하여 문제를 해결했습니다. 아마도 내 작업 공간에 신속한 프레임 워크를 포함했기 때문일 수 있습니다. 그것이 무엇이든 지금 컴파일! 스위프트 준비해, 내가 왔어!
저에게있어 문제는 Apple Worldwide Developer Relations Certification Authority가 유효하지 않기 때문입니다.
여기에서 다운로드하십시오 : https://developer.apple.com/certificationauthority/AppleWWDRCA.cer
키 체인 접근으로 드래그 앤 드롭하고 프로젝트를 정리하고 실행하십시오.
Alt 키를 누른 상태에서 제품-> 빌드 폴더 정리 ...로 이동하십시오.
그것이 누군가를 도울 수 있기를 바랍니다 ..
이런 일이 발생하는 이유는 많습니다. 주말 동안이 문제를 일으키는 또 다른 문제 (코드 서명 순서)를 발견하면서 즐거운 주말을 보냈을 때 가능한 모든 솔루션을 함께 제공하는 요약 답변을 만들고 싶었습니다.
DerivedData
및 Build
디렉토리를 삭제할 수도 있습니다 . 세 이하 봐 환경 설정 의 위치 DerivedData
. Build
프로젝트 폴더에 있어야합니다.@executable_path/Frameworks
. 쉬운 일입니다. 자체 명령 행 빌드를 수행하는 경우 .ipa
업로드 할 고유 파일을 작성하고있을 수 있습니다. 이 경우 다음을 확인해야합니다.
SwiftSupport/iphoneos
동일한 지 확인하십시오.Contents/YourApp.app/Frameworks
Swift는 버전간에 바이너리 호환성이 없기 때문에이 버전이 앱을 빌드 한 버전인지 확인해야합니다. 이 라이브러리는 아래에서 찾을 수 있습니다 /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/swift/iphoneos
.codesign
라이브러리와 프레임 워크 파일 (아래 Frameworks
에서 .app
첫번째 다음 전체 서명 폴더) .app
트리. .app
나무는 서명해야 entitlements.plist
하지만 하지 프레임 워크.Swift 3.0이 나오고 더 이상 Swift와 앱을 번들로 묶을 필요가 없을 때이 문제가 사라질 것입니다.
프로덕션 인증서가있는 Ad Hoc (또는 엔터프라이즈) 모바일 프로비저닝을 사용하여이 문제가 발생했습니다. 개발 인증서 및 모바일 제공으로 전환하면 문제가 해결되었습니다.
내 프로젝트는 일부 Objective-C 클래스가있는 Swift 프로젝트입니다. 오래된 inHouse (엔터프라이즈) 인증서로 서명 할 때도 같은 문제가있었습니다.
다음 단계는이 문제를 해결했습니다.
Runpath Search Paths
빌드 설정을을 : $(inherited) @executable_path/Frameworks
. 해결책 6 :
이 경우 엔터프라이즈 배포 인증서가 해지되었습니다. 새 인증서를 생성하고 프로비저닝 프로파일을 업데이트하면 문제가 해결되었습니다.
(이 오류의 원인은 여러 가지가있는 것 같습니다. 누군가에게 도움이되기를 바랍니다.)
올바른 코드 서명 ID를 설정하면 문제가 해결되었습니다 (빌드 설정-> 코드 서명 ID).
Apple 기술 질문에 따르면 "iOS 8이 출시 된 후 생성 된 모든 엔터프라이즈 및 표준 iOS 개발자 인증서에는 Swift 언어 앱을 실행할 수있는 새로운 팀 ID 필드가 있습니다"
임베디드 바이너리를 통해 세 개의 프레임 워크를 추가하면 링크 된 프레임 워크 및 라이브러리에도 추가됩니다. 링크 된 프레임 워크 및 라이브러리 에서 세 항목을 삭제하면 문제가 해결됩니다.
Xcode를 다시 시작하고 Mac을 다시 시작하는 등의 마술 방법이 작동하지 않습니다.
일반적으로이 라이브러리를 빌드 단계의 "파일 복사"세그먼트에 추가하면이 오류가 사라집니다.
이 솔루션들 중 어느 것도 나를 위해 일하는 것 같지 않았습니다. 두 번의 성공적인 실행 후에는 다시 실패합니다. "내장 컨텐츠에 스위프트 코드가 포함됨"플래그가 항상 YES로 설정되었습니다.
Xcode를 6.3 호환으로 설정했습니다. 다시 3.2 호환으로 변경하면 해결되었습니다.
otool