cocoapods 라이브러리를 사용하는 Xcode 6 Beta-6에서 사진 앱 확장을 빌드하려고합니다. Xcode가 사진 확장을 위해 생성하는 브리징 헤더는 cocoapods에서 아무것도 볼 수 없습니다.
예 : #import <GPUImage/GPUImage.h>
오류가 발생 "GPUImage/GPUImage.h" file not found
합니다.
나는 수입에 대해 생각할 수있는 모든 경로 (괄호와 따옴표 포함)를 시도했지만 거의 성공하지 못했습니다. 예외는 SVProgressHUD
다음과 같은 끔찍한 끔찍한 해킹이 작동
한다는 것입니다 #import "../Pods/SVProgressHUD/SVProgressHUD/SVProgressHUD.h"
.
그러나 GPUImage의 경우 GPUImage.h
헤더 로 들어가서 GPUImageContext.h
앱 확장의 일부가 아닌 일반 신속한 코드에 대한 브리징 헤더로 가져올 때 문제가 없음에도 불구하고 갑자기 볼 수 없다고 결정합니다 .
브리징 헤더가 제대로 작동하지 못하게하는 앱 확장 컴파일의 차이점은 무엇입니까?
참고 : 이 튜토리얼 의 가능한 모든 순열을 읽었 으며 누군가가 답을 찾았다 고 생각하는 경우를 대비하여 즉시 적용 할 수는 없습니다.
또한 이 SO 질문에 설명 된 문제는 관련 이 있을 수 있지만 내 문제가 앱 확장과 관련된 경우 어쨌든이 질문을했습니다.
답변
이를 수행하는 적절한 방법은 podfile을 업데이트하여 한 줄만 추가하는 것입니다.
link_with 'yourApp', 'yourAppExtension'
포드 업데이트로 문제가 해결됩니다.
답변
수정 (2015/03/10)
새로운 수락 답변을 참조하십시오. 내 테스트 포드가 모두 확장에서 허용되지 않는 sharedApplication을 사용했지만 새 프로젝트에서 시도해 보았지만 작동했습니다. 그들이 그러한 오류를 보여 주었다는 사실은 그것이 제대로 연결되었음을 의미합니다. @LeChatNoir로 이동합니다!
성공.
이 솔루션은 다음과 같습니다 : 당신은 당신의 앱 확장을하고 cocoapods를 사용하여 프로젝트에 헤더를 브리징 그리고 당신이 좋아하는 포드 포함하도록 노력하고, 그 cocoapods 라이브러리 중 하나를 사용하고자하면 #import <GPUImage/GPUImage.h>
실패 할 것이다 file not found
.
먼저 앱 확장 (프로젝트 파일을 클릭 한 다음 확장 대상을 클릭)에 libPods.a
앱 대상과 마찬가지로 에 연결하도록 지시 해야합니다.
다음으로, Info 탭 아래의 실제 프로젝트 (프로젝트 파일을 클릭 한 다음 내부 사이드 바의 “Project”섹션에서 프로젝트 파일을 다시 클릭)에서 사용할 Debug, Release 및 Inhouse의 확장 구성을 설정합니다. 드롭 다운에서 “포드”구성. Pod 설치는이 작업을 수행하지 않으므로 직접 수행해야합니다.
마지막으로 Pods 프로젝트의 대상과 프로젝트의 대상이 모두 Valid Architectures 변수에서 빌드하는 데 필요한 모든 아키텍처를 가지고 있는지 확인하십시오. 그렇지 않으면 항상 재미있는 정의되지 않은 기호 오류가 발생합니다.
이렇게 하면 정상적으로 선택한 포드를 가져올 수 있습니다.
편집 (2014/10/14) : 옆으로 Swift 확장의 프로젝트 코드 내에서 Objective-C 파일을 포함 할 수도 있으므로 .m
브리징 헤더에 넣은 모든 파일도 컴파일 되었는지 확인해야합니다. 확장 대상에 의해. .m
Xcode의 오른쪽 사이드 바에있는 “Target Membership”섹션을 사용하여 타겟에 대한 소스 컴파일 메뉴 또는 파일 자체 에서이 작업을 수행 할 수 있습니다 .
답변
위의 답변은 작동하지만 내 확장 프로그램에 몇 개의 pod 만 필요했기 때문에 Podfile에 다음을 수행했습니다.
target '[Main App Target Name]' do
pod ...
pod ...
pod ...
end
target '[Extension Target Name]' do
pod ...
end
그리고 pod install
의지가 그것을합니다!
답변
link_with, 더 이상 사용하지 않습니다.
유효하지 않은
Podfile
파일 : [!]link_with
Podfile의의 사양이 지원되지 않습니다. 대신 대상 블록을 사용하십시오.
아래는 테스트 된 완벽한 answe입니다.
source 'https://github.com/CocoaPods/Specs.git'
platform :ios, ‘9.0’
use_frameworks!
inhibit_all_warnings!
target 'DemoTodayWidget' do
pod 'Reachability', '~> 3.2'
end
target 'My Widget' do
pod 'Reachability', '~> 3.2'
end