Xcode6 GM으로 앱을 제출하려고하는데 유효성 검사 시이 오류가 발생합니다. 이 앱에는 액션 확장 프로그램과 확장 프로그램과 앱 자체간에 공유되는 동적 프레임 워크가 있습니다.
프로젝트 어딘가에 ‘Frameworks’라는 파일이 없으므로 이것이 무엇을 의미하는지 잘 모르겠습니다. 누구 든지이 문제를 얻었거나 아이디어가 있습니까?
답변
오류가 Swift 사용과 관련이 있음을 알 수 있습니다 (앱과 확장 프로그램 모두 Swift를 사용함).
응용 프로그램의 경우 다음을 설정해야했습니다.
Embedded Content Contains Swift Code: YES
그리고 연장을 위해 :
Embedded Content Contains Swift Code: NO
Xcode 8 및 9
Always Embed Swift Standard Libraries
Xcode 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
- 확장명 : Runpath Search Path =
@executable_path/../../Frameworks
답변
필자의 경우 방금 CocoaPods 1.0.1로 업그레이드했는데 이것은 새로운 버그 인 것 같습니다.
포드 업데이트는 내 확장의 대상에 실행 스크립트를 추가하여 Frameworks 폴더를 만듭니다. @Roman의 실행 스크립트를 추가하여 제거하려고했습니다.
해결책은 확장의 빌드 단계에서이 스크립트를 삭제하는 것이 었습니다. 여기에 가야했던 것이 있습니다 …
답변
모든 빌드 단계 제거embed
제목에 단어가있는 확장의 를 .
또한 :
Yes
확장 대상에 포함 된 컨텐츠에는 스위프트 코드 가 포함되어 있어야합니다 .
답변
위의 답변 중 어느 것도 나를 위해 일하지 않았습니다. 오류는 상위 앱이나 확장 프로그램이 아닌 오류 때문입니다. 연결된 라이브러리 중 하나가 잘못되었습니다.
확인하려면 먼저 Xcode를 사용하여 보관 한 다음 Organizer를 사용하여 항목을 선택하고 Finder에서 표시를 사용하여 찾습니다. 이 표시됩니다.xcarchive
파일 됩니다.
해당 파일을 선택하고 “패키지 내용 표시”를 선택하십시오.
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_SWIFT
깃발로 돌아옵니다 . 상위 앱만이로 설정되어 있는지 확인하십시오 YES
. WatchKit 앱과 확장 프로그램 모두이 플래그를로 설정해야합니다 NO
. 위의 @Mike의 답변에 자세히 설명되어 있습니다.
