2017-01-19 5 views
0

오케트, 지금 몇 시간 동안 이걸 싸우고 있습니다. 현재 웹 사이트 URL을 확인하는 데 필요한 Action Extension이있는 앱을 만들고 있습니다. app과 extension (주로 네트워크 API)간에 코드를 공유해야하므로 libam을 공유해야합니다 (alamofire 등).연장을 위해 CocoaPods에 목표물을 추가하십시오.

은 여기 내 CocoaPods 당신은 내가 use_frameworks에 대한 암시 추상적 인 대상을 사용 볼 수 있듯이, 내가 거기에 공유있는 포드를 이동하려고했습니다

use_frameworks! 

target 'xxxExtension' do 
pod 'ObjectMapper', '~> 2.2' 
pod 'SwiftyJSON' 
pod 'Alamofire', '~> 4.0' 
pod 'Nuke', '~> 4.0' 
pod - 
pod - 
end 

target 'yyyMain' do 
pod 'ObjectMapper', '~> 2.2' 
pod 'SwiftyJSON' 
pod 'Alamofire', '~> 4.0' 
pod 'Nuke', '~> 4.0' 
pod - 
pod - 
pod - 
pod - 
pod - 
pod - 
    target 'yyyMainTests' do 
    inherit! :search_paths 
    pod - 
    pod - 
    pod - 
    pod - 
    pod - 
    end 
end 

이지만, 그 많은 변경되지 않았다. 동일한 오류를 직접 생성 한 abstract_target.

error: /Users/abc/Library/Developer/Xcode/DerivedData/yyyMain-fuuyjxathhqlfdczxrtmfewlpcpe/Build/Products/Debug-iphoneos/xxxExtension.appex: No such file or directory 

아이디어가 있습니까?

+0

프로젝트 이름 xxxExtension을 yyyMain으로 변경하려고 시도 했습니까? 또는 마지막으로 끝까지 제거하려고 시도하십시오 – vaibby

+0

이름을 변경하는 방법을 모르겠다 xxxExtension to yyyMain? yyyMain과 다른 모듈입니다. 어떻게 같은 이름을 공유 할 수 있습니까? 몇 번 주문을 옮기고 도움을받지 못했습니다. 링크 된 프레임 워크와 라이브러리에는 yyyExtension이 있기 때문에 이상하게 들립니다. – Kamajabu

답변

0

그래, 조금 까다 롭고 문제를 해결할 수있는 몇 가지 변경 사항을 만들었습니다.

먼저 podfile하기

post_install do |installer_representation| 
    installer_representation.pods_project.targets.each do |target| 
     if target.name.start_with? "Pods-extensionName" 
      target.build_configurations.each do |config| 
       config.build_settings['GCC_PREPROCESSOR_DEFINITIONS'] ||= ['$(inherited)', 'AF_APP_EXTENSIONS=1'] 
      end 
     end 
    end 
end 

를 추가했다.

둘째는 바이너리 연결을 수동으로 제거하기위한 것입니다 (파생 데이터를 다시 작성하고 다시 작성하는 것 외에는). 그렇게하려면 프로젝트 설정 -> 타겟 ->어플 리케이션 -> 일반 -> (하단) 임베디드 바이너리를 입력하고 * .appex 파일을 삭제해야합니다.

추가 정보 Libaries와 함께 단계를 만들고 링크 바이너리를 제거해야 할 수도 있습니다.

마지막으로 할 일은 "pod install"으로 pod를 다시 설치하고 정리 된 프로젝트에서 새 링크를 다시 만들어야합니다.

Goodluck!