유효성 검사 오류:잘못된 번들입니다....의 번들에 허용되지 않는 파일 'Frameworks'가 포함되어 있습니다.
저는 Xcode 6 GM으로 앱을 제출하려고 하는데 유효성 검사에서 이 오류가 발생합니다.앱에는 동작 확장 기능과 동적 프레임워크가 있으며 확장 기능과 앱 자체 간에 공유됩니다.
저는 프로젝트 어디에도 'Frameworks'라는 파일이 없기 때문에 이것이 무엇을 의미하는지 잘 모르겠습니다.이 문제가 있거나 아이디어가 있는 사람이 있습니까?

아래 나열된 문제로 인해 보관 유효성 검사에 실패했습니다.
iTunes Store 작업에 실패했습니다.
잘못된 번들입니다.되지 않는 파일 가 .의 번들에 허용되지 않는 파일 'Frameworks'가 포함되어 있습니다.
이 오류는 Swift를 사용하는 것과 관련이 있는 것으로 나타났습니다(앱과 확장 모두 Swift를 사용함).
앱의 경우 다음을 설정해야 했습니다.
Embedded Content Contains Swift Code: YES
확장의 경우:
Embedded Content Contains Swift Code: NO
Xcode 8 및 9
이름이 다음으로 변경된 것 같습니다.Always Embed Swift Standard LibrariesXcode 8 및 9 서.앱의 경우:
Always Embed Swift Standard Libraries: YES
확장의 경우:
Always Embed Swift Standard Libraries: NO
이 실행 스크립트를 App Extension 대상에 추가하는 것이 유일한 솔루션이었습니다.
cd "${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/"
if [[ -d "Frameworks" ]]; then
rm -fr Frameworks
fi
출처: https://github.com/CocoaPods/CocoaPods/issues/4203
빌드 설정에서 이 문제를 해결하는 3단계
- 앱: 앱컨너이:
Embedded Content Contains Swift Code: YES - 확장:
Embedded Content Contains Swift Code: NO - 파일: Path= 실행 경로 =
@executable_path/../../Frameworks
저의 경우, 방금 코코아 포드 1.0.1로 업그레이드했는데 이것은 새로운 버그인 것 같습니다.
포드 업데이트는 프레임워크 폴더를 만드는 내 확장의 대상에 실행 스크립트를 추가합니다.@Roman의 실행 스크립트를 추가하여 제거하려다가 발견했습니다.
해결책은 내 확장의 빌드 단계에서 이 스크립트를 삭제하는 것이었습니다.여기에 가야 했던 것이 있습니다...
제 경우, "Always Embed Swift Standard Libraries"에 대해 "Yes"를 지정하는 코코아 포드 라이브러리 "Blockly"가 하나 있었습니다.옵션에 대해 NO를 만든 후 작동했습니다.
다음을 포함하는 확장에 대한 모든 빌드 단계 제거embed표제의 단어
추가로:
- 내장된 콘텐츠에 포함된 Swift 코드는 다음과 같이 설정해야 합니다.
Yes확장 대상에 대해.
위의 답변 중 하나도 저에게 효과가 없었습니다.이는 부모 앱이나 부모 앱의 확장이 아닌 오류가 발생했기 때문입니다.오히려 연결된 라이브러리 중 하나에 문제가 있었습니다.
확인하려면 먼저 Xcode를 사용하여 보관한 후 Organizer를 사용하여 항목을 선택하고 Show in Finder를 사용하여 찾습니다.그러면 다음과 같이 표시됩니다..xcarchivejava.
해당 파일을 선택하고 "패키지 내용 표시"를 선택합니다.
Products/Applications 폴더에서 .app을 선택하고 다시 "Show Package Contents"를 선택합니다.
Frameworks 폴더에서 문제가 있는 모듈을 찾습니다.예를 들어 다음과 같은 오류가 발생할 경우:
ERROR ITMS-90206: "Invalid Bundle. The bundle at 'MyApp.app/Frameworks/MyLib.framework' contains disallowed file 'Frameworks'."
다음에그에서.Frameworks/MyLib.framework다음이 표시될 수 있습니다.
../Frameworks/libswiftContacts.dylib
../Frameworks/libswiftCore.dylib
../Frameworks/libswiftCoreData.dylib
../Frameworks/libswiftCoreGraphics.dylib
../Frameworks/libswiftCoreImage.dylib
../Frameworks/libswiftCoreLocation.dylib
../Frameworks/libswiftDarwin.dylib
../Frameworks/libswiftDispatch.dylib
../Frameworks/libswiftFoundation.dylib
../Frameworks/libswiftLocalAuthentication.dylib
../Frameworks/libswiftObjectiveC.dylib
../Frameworks/libswiftPassKit.dylib
../Frameworks/libswiftUIKit.dylib
../Frameworks/libswiftWebKit.dylib
라이브러리에 " " " " " " " " " " " (" " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " "EMBEDDED_CONTENT_CONTAINS_SWIFT = YES;
Xcode에서 종속 모듈을 찾아 플래그를 업데이트합니다.
이 문제를 극복한 후에도 iTunes Store에서 다음과 같은 설명 이메일을 보내도 앱이 거부될 수 있습니다.
Invalid Swift Support - The Watch OS application has Swift libraries at both...
다시 이것은 다음과 같습니다.EMBEDDED_CONTENT_CONTAINS_SWIFTflag.만 이 이 래그로 되어 있는지 하십시오. 상위 앱만 이 설정을 다음으로 설정해야 합니다.YES이를 WatchKit으로 설정해야 합니다.NO이것은 위의 @Mike의 답변에 자세히 나와 있습니다.
나의 경우 해결책은 내 확장자의 임베디드 바이너리에서 내 프레임워크를 제거하고 내 확장자의 Linked Frameworks and Libraries에 추가하는 것이었습니다. (둘 다 확장자의 일반 탭에서 찾을 수 있습니다.)
Embedded Pods Frameworks 스크립트와 Roman의 스크립트가 모두 동일한 대상에 있는 경우.
Embed Pods 프레임워크가 다른 프레임워크보다 먼저 위치하는지 확인하십시오.그렇지 않다면, 로만의 대본을 마지막으로 옮기세요.
▁for다에 대한 설정을 수 .Embedded Content Contains Swift Code 수 .Always Embed Swift Standard Libraries그리고 프레임워크에 대해 이 문제를 NO로 설정하면 문제가 해결되었습니다.
위의 답변은 저에게 효과가 없었습니다.저는 아래와 같은 일을 했습니다.
- 팀의 다른 개발자로부터 확장의 대상 설정 복사
- 컨테이너 앱: 내장된 콘텐츠에 Swift 코드 포함: YES
- 확장: 내장된 콘텐츠에 Swift 코드 포함: NO
대상에서 모든 확장 설정을 확인하십시오.
만약 당신이 코코아 포드를 사용한다면, 저는 문제가 있는 대상(확장자)에서 임베디드 프레임워크 빌드 단계를 삭제하는 것을 고려할 것입니다. 이것이 저에게 문제를 해결해 주었습니다.
- 컨테이너 앱: 빌드 설정 -> 임베디드 콘텐츠에 스위프트 코드 포함: YES
- 확장:빌드 설정 -> 내장된 콘텐츠에 Swift 코드 포함: NO
- 확장:빌드 단계 ->에서 다음 실행 스크립트를 추가
cd "${Configuration_BUILD_DIR}/${NOCALIZED_RESOURCES_FOLDER_PATH}/"(-d "Frameworks" ]인 경우), rm -fr Frameworks fi
- (중요)확장:빌드 단계 -> 실행 스크립트를 마지막으로 이동합니다(임베디드 포드 프레임워크 스크립트 이후).
동일한 오류가 발생했는데, 확장 번들에 프레임워크를 복사하고 있었기 때문입니다.알고 보니 확장에서 사용하는 프레임워크는 기본 App 번들에 복사하고 확장 빌드 설정에서만 연결해야 합니다(복사되지 않음).검색 경로 '@executable_path/../..확장 빌드에 /Frameworks'가 있습니다.그 경로는 XCode 10에 의해 자동으로 추가된 것 같습니다.
유니티3의 경우d
Unity-iPhone 대상에 대해 "Always Embed Swift Standart Libraries"를 YES로 설정합니다.
아카이브에 대한 .xcode 아카이브(사진 참조) 경로 내의 Framework 폴더 삭제 ~/라이브러리/개발자/Xcode/아카이브
유니티 포럼 https://forum.unity.com/threads/2019-3-validation-on-upload-to-store-gives-unityframework-framework-contains-disallowed-file.751112/ 에서.
여기 나열된 빌드 설정 중 이 문제를 해결한 것은 없습니다.하지만 "내장 바이너리"에서 "링크된 프레임워크 및 라이브러리"로 일부 프레임워크를 이동한 후에 이 작업을 수행하게 되었습니다.
메인 앱과 커스텀 프레임워크 중 하나가 모두 동일한 프레임워크 종속성을 가지고 있는 것으로 보이며 No No인 것처럼 보이지만, 메인 앱에서 Embedded 영역에서 Linked 영역으로 이동하면 오류 없이 앱을 성공적으로 업로드할 수 있었습니다.
저는 이런 질문들을 많이 찾았지만 아무도 제 문제를 해결하는 데 도움이 되지 않았기 때문에 이것이 누군가에게 도움이 되기를 바랍니다.
저는 애플의 추천으로 인텐트 확장자(Siri 바로 가기용)가 있는 앱을 만들고 확장자와 제 앱 간에 공유하는 코드 프레임워크를 사용하고 있습니다.
대상에 대한 "일반" 설정의 "프레임워크 및 라이브러리" 섹션에서 내 프레임워크를 확장에 추가했습니다.여기에 프레임워크를 추가하면 두 개의 열이 있습니다.하나는 프레임워크의 이름을 말하고 다른 하나는 "Embed"라는 제목입니다."Embed" 열에 아무것도 표시되지 않았기 때문에 문제가 없다고 생각했지만 프레임워크에 대해 해당 열에 대해 "Do Not Embed" 옵션을 명시적으로 선택해야 했습니다.제가 그렇게 하고 Xcode에 보관했을 때, 저는 검증 과정에서 프레임워크가 각 대상 아래에 있는 제 ipa 콘텐츠에 더 이상 나열되지 않는다는 것을 알 수 있었습니다. 단 한 번만 유효성 검사가 성공했습니다.
저의 경우, Firebase SPM이 범인이었습니다.프레임워크 폴더 때문에 AppStore 유효성 검사에 실패한 ShareExtension이 있습니다.스키마의 사후 보관 스크립트를 사용하여 이 문제를 해결했습니다.
저는 오늘 확장 기능이 있는 제 앱의 XCode 7.1.1에서 처음으로 이 문제를 겪었습니다(제 프로젝트에는 Swift가 없습니다).대본(https://github.com/CocoaPods/CocoaPods/issues/4203) 은 제게 맞지 않았습니다.
39 버전으로 다운그레이드, 중pod install그리고 나서 다시 시도하면 문제가 해결됩니다.
저는 같은 오류를 수신하고 있었습니다. 그리고.
허용되지 않는 중첩 번들 오류
나의 문제는 그것에 있었습니다.SquareReaderSDK.framework특히 지시사항에 따라 새 실행 스크립트를 추가해야 했습니다.
FRAMEWORKS="${BUILT_PRODUCTS_DIR}/${FRAMEWORKS_FOLDER_PATH}"
"${FRAMEWORKS}/SquareReaderSDK.framework/setup"
https://stackoverflow.com/a/40396491/2559850 의 설명과 같이 모든 포드 및 확장에서 내장된 프레임워크를 제거해야 합니다.
빌드 단계의 끝에 스크립트를 추가해야 합니다.
cd "${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/"
if [[ -d "Frameworks" ]]; then
rm -fr Frameworks
fi
언급URL : https://stackoverflow.com/questions/25777958/validation-error-invalid-bundle-the-bundle-at-contains-disallowed-file-fr
'codememo' 카테고리의 다른 글
| 를 통해 MongoDB에서 인덱스를 만드는 방법.그물 (0) | 2023.05.08 |
|---|---|
| VSTO: 기본 Excel 스레드에서 호출 (0) | 2023.05.08 |
| Express 4.0: req.files를 사용하여 파일 업로드가 정의되지 않았습니다. (0) | 2023.05.08 |
| MongoDB 성능 - 여러 데이터베이스 보유 (0) | 2023.05.08 |
| Eclipse에서 UTF-8 인코딩을 지원하는 방법 (0) | 2023.05.08 |




