2014-11-26 3 views
15

this guy, this guythis guy과 같은 문제가 있습니다. 실제로 모든 사람이 맞는지 확실하지 않습니다.유효성 검사 오류 : 번들에 허용되지 않는 파일 'Frameworks'이 포함되어 있습니다.

그들은 모두 자신의 솔루션을 찾지 못했지만 그 중 아무 것도 내 문제에 적용되지 않습니다. 포함 된 확장 기능이 포함 된 iOS 8 앱에서 Xcode 6.1을 사용하고 있습니다. 앱과 확장 프로그램은 모두 포함 된 프레임 워크에 의존합니다. 스토어에 앱을 제출하려고하면 유효성 경고가 표시됩니다. "ERROR ITMS-9000: Invalid bundle. The bundle at 'xxxxx.appex' contains disallowed file 'Frameworks'".

Frameworks라는 파일을 찾을 수 없습니다. 공유 프레임 워크는 Apple의 권장 저장 위치 인/Library/Frameworks에 저장되어 있어야합니다. 이 프로젝트는 또한 설정 파일에서 $ FRAMEWORK_PATH (빌드 폴더에 해당 이름의 파일이나 폴더가 포함되어 있지는 않지만)에 대한 참조를 가지고 있기 때문에 Cocoapods를 사용합니다.

+0

해결 했습니까? 나는 똑같은 문제를 겪고있다. –

+0

upvoted 답변보다 나은 해결책은 다음과 같습니다. http://stackoverflow.com/questions/30361864/invalid-bundle-the-bundle-contains-disallowed-nested-bundles-contains-disallow – buildsucceeded

답변

2

이 작업을 계속하면서 내 Share Extension에 대상이 "Frameworks"디렉토리로 설정된 "프레임 워크 포함"빌드 단계가 있음을 알았습니다. 나는 이것을 "Shared Frameworks"로 바꾸었고 오류가 사라졌습니다.

그러나 다른 오류가 남아 있습니다 : "... 포함 된 중첩 된 번들이 없습니다". 나는 이것이 원본의 결과로 일종의 우산 오류 경고라고 생각했다. 나는 그 질문에 대해 또 다른 질문을 할 것이다. 미래의 시청자에 대한 확인을

9

여기에 수정 프로그램입니다 :

자신의 아이폰 OS 프레임 워크를 (내가 엑스 코드 6.1을 사용하고 있습니다)은 최종 제품 자체를 번들 프레임 워크의 '프레임 워크'폴더가 포함되어 있습니다를 빌드 할 때 만들 때. 즉 MyFramework.framework/Frameworks. 이것은 파일 복사/임베드 프레임 워크 빌드 단계를 지정하지 않은 경우에도 발생합니다.

당신이해야 할 일은 프레임 워크 번들로 가서 빈 프레임 워크 폴더를 찾아서 삭제하는 것입니다. 이것은 앱의 기능에 어떤 영향도 미치지 않습니다. 그런 다음 앱을 빌드하고 임베디드 프레임 워크에 계획대로 Frameworks 폴더가 없는지 확인하십시오.

이제 보관 파일에 불쾌감을주는 폴더가 없어야하며 오류가 없어야합니다!

+0

"어떻게 할 것인가? 프레임 워크 번들, 빈 프레임 워크 폴더를 찾아 삭제하십시오. " 프레임 워크 번들은 어디에 있습니까? 어떻게 열지? – WayneZhao

+0

frameworks 폴더는 어디에 두어도 상관 없습니다.빌드 할 때'Users/username/Library/Developer/Xcode/DerivedData/projectName/Build/Products/Debug-xxx /'에 나타납니다. 나는 Xcode가 그것들을 인식 할 수 있도록 그것들을 움직인다. 'myFramework.framework' 파일 (폴더와 같은 것)을 두 번 클릭하면 삭제해야 할 Frameworks 폴더가 나타납니다. –

+0

나를 위해 일했는데 프레임 워크를 포함하는 프레임 워크를 빌드하는 방법을 알아야합니다. – Jeef

4

빌드 설정> 패키징> 모듈 확장을 내 확장 및 앱 대상보기에서 YES로 설정을 변경했습니다. 나를 위해 잘 작동합니다.

Try to create the script there 'problematic target' -> Build Phases' then click on + and select New Run Script Phase , the run script should go after all others. Insert there :

cd "${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/" 
if [[ -d "Frameworks" ]]; then 
    rm -fr Frameworks 
fi 

그런 다음 프로젝트를 청소하고 다시 한 번 아카이브를 만들려고 : 내 경우

+0

Xcode 7 사용자가 여기 있습니다. 이전 답변에서 이유가 없으므로 이런 종류의 문제가 다시 발생했습니다. – CQM

4

이 솔루션은 다음이었다. 이 대답은 다음 문제에 제공되었다 :

내가이 도움을 바랍니다.

+0

내 경우, XCode 7.1.1 스크립트는 문제를 해결하지 않습니다. 그래서 나는 cocoapods를 버전 0.39.0.beta3로 다운 그레이드해야하고 "pod install"명령어 – andreacipriani

+0

을 실행해야합니다. A. 두 스크립트를 모두 보관해야합니까, 아니면 마지막 부분 만 보관해야합니까? B. 나 또한 두 옵션에서 enable 옵션을 확인해야합니까 (1. show enviromental variable, 2. Run script only installing)? "$ {SRCROOT}/포드/대상 지원 파일은/포드 - Orsys WatchKit 확장/포드 - Orsys WatchKit Extension-frameworks.sh" CD "$ {CONFIGURATION_BUILD_DIR}/$ {UNLOCALIZED_RESOURCES_FOLDER_PATH} /" [[경우 -d "Frameworks"]]]; then rm -fr 프레임 워크 fi –

+0

나는 Cocoapods 프레임 워크 임베드 스크립트를 비활성화 했으므로 어쨌든 메인 프레임에 동일한 프레임 워크가 있습니다. – igraczech