2017-05-02 1 views
0

Alamofire 및 FileKit과 같은 라이브러리를 사용하여 iOS 응용 프로그램 및 해당 공유 확장 프로젝트가 있습니다. 모든 것은 다음 Podfile와 함께 완벽하게 작동했다 :SVosgressHUD를 ios app 및 해당 확장자에서 사용하는 방법

target 'myApp' do 
    use_frameworks! 
    pod 'BRYXBanner' 
end 
target 'myAppShareExtension' do 
    use_frameworks! 
    pod 'FileKit', '~> 4.0.1' 
    pod 'Alamofire', '~> 4.4' 
end 

그런 다음 나는 SVProgressHUD를 사용하고 싶었다. 첫째, 방금 주 앱에 추가했는데 모든 것이 괜찮 았습니다. 문제는 내가 확장 기능에서도 사용하기 시작했을 때부터 시작되었습니다. 그 이후로, 나는 Podfile을 여러 번 변경했으며, 앱과 확장 프로그램에서 Podfile을 갖지 못하게했습니다. 더 나쁜 것은 주 앱에서 다시 사용할 수 없다는 것입니다. Podfile에 추가하자 마자 내 앱이 컴파일되지 않습니다. 심지어 AlamofireFileKit도 더 이상 컴파일 할 수 없습니다.

여기 내 새로운 Podfile은 pod install 동안 오류를 생성하지 않는 유일한 파일입니다. 나는 후자의 Podfile를 사용할 때, 내 연장 대상의 이름은 것을

'sharedApplication' is unavailable: not available on iOS (App Extension) - Use view controller based solutions where appropriate instead. 

참고 :

platform :ios, '10.2' 
use_frameworks! 
target 'myApp' do 
     target 'myAppShareExtension' do 
       pod 'SVProgressHUD', :git => 'https://github.com/SVProgressHUD/SVProgressHUD.git' 
       pod 'Alamofire', '~> 4.0' 
       pod 'FileKit', '~> 4.0.1' 
     end 
end 

심지어 SVProgressHUD을 가져 오려는도 그것을 사용하지 않고, 나는 다음과 같은 오류가 컴파일하려고

이 있어야합니다. 문제는 podfile에서 발생한다고 생각합니다.

Podfile 구문이나 빌드 환경 등에 관한 제안 사항이 있으시면 언제든지 알려주십시오.

에 대한 추가 정보를 제공 할 수 있습니다. 편집 : 다른 빌드 설정 옵션을 시도했는데 거기에 뭔가 어쩌면 혼란 스럽습니다.

답변

1

오류가 발생한 위치를 확인한 후에 문제가 무엇인지 알 수 있습니다.

#if !defined(SV_APP_EXTENSIONS) 
    UIInterfaceOrientation orientation = UIApplication.sharedApplication.statusBarOrientation; 
#else 
    UIInterfaceOrientation orientation = CGRectGetWidth(self.frame) > CGRectGetHeight(self.frame) ? UIInterfaceOrientationLandscapeLeft : UIInterfaceOrientationPortrait; 
#endif 

SV_APP_EXTENSIONS이 보이십니까? 즉, 타겟이 App Extensions가 아닌 경우 위 코드를 컴파일하고, 그렇지 않은 경우 언더 코드를 컴파일합니다. 따라서 지금은 앱 확장 타겟에서 작동해야합니다. 앱 확장 타겟에 프리 프로세서 매크로를 추가해야합니다.

enter image description here

관련 문제