나는 여기에 2 센트를 더 무서워하지 않을 것입니다 :-). Frameworks애플이 문서화 한 디렉토리 에 추가하여 정상적인 방식으로 작동하지 않는 공급 업체의 뚱뚱한 라이브러리가 많이 있습니다. 우리가 그것들을 작동시킬 수있는 유일한 방법 .framekwork은 프로젝트 디렉토리로 권한을 가져 Embedded Frameworks오고 Link Binary with Libraries빌드 설정에서 수동으로 링크하는 것 입니다. 그러나 이것은 지방 라이브러리와 마찬가지로 외부 시뮬레이터 아키텍처 i386 와 x86_64함께 아키텍처 와 함께 제공 되므로 문제없이 작동하는 것으로 보입니다 arm.
팻 라이브러리에서 아키텍처를 확인하는 빠른 방법은
$ cd 'Project_dir/Project'
$ lipo -info 'YourLibrary.framework/YourLibExec`
다음과 같은 출력을 뱉어야합니다.
Architectures in the fat file: YourLibrary.framework/YourLibExec are: i386 x86_64 armv7 arm64
이는 iTunesConnect Archival 업로드 전에 프레임 워크에서 "지방을 트리밍"(즉 i386, & x86_64) 해야한다는 것을 확인합니다. 이 아키텍처는 허용되지 않습니다 (iOS에서는 지원되지 않으므로).
자, 여기에있는 모든 대답 (또는 최소한의 대답 중 적어도)은 프레임 워크가 Frameworks디렉토리 에있는 경우에만 실제로 잘 작동하는 훌륭한 실행 스크립트를 제공합니다 . 쉘 스크립트 중독자가 아닌 한, 수정하지 않은 스크립트는 위에서 설명한 시나리오에서 작동하지 않습니다. 그러나 프레임 워크에서 i386& x86_64아키텍처를 제거하는 매우 간단한 방법이 있습니다.
프로젝트 디렉토리에서 터미널을 엽니 다.
직접으로 변경 디렉토리 .framekwork처럼,
cd YourProjectDir/YourProject/YourLibrary.framework
아래와 같이 일련의 명령을 실행하십시오.
$ mv YourLibrary YourLibrary_all_archs
$ lipo -remove x86_64 YourLibrary_all_archs -o YourLibrary_some_archs
$ lipo -remove i386 YourLibrary_some_archs -o YourLibrary
$ rm YourLibrary_all_archs YourLibrary_some_archs
여기서주의해야 할 사항 lipo -remove은 각 아키텍처를 제거 할 때마다 한 번씩 수행해야합니다. lipo입력 파일을 수정하지 않고 파일 만 생성하므로 and에 lipo -remove대해 한 번만 실행해야합니다 . 위의 명령은 먼저 실행 파일의 이름을 바꾸고 원하는 아치를 제거한 다음 남은 파일을 정리하여 간단히 수행합니다. 이제 응용 프로그램 로더 보관 파일에 iTunesConnect로 업로드 할 때 녹색 확인 표시가 나타납니다.x86_64i386
명심해야 할 사항 : .framework시뮬레이터 아키텍처에서 제거 될 예정 이므로 시뮬레이터 빌드가 작동을 멈 춥니 다 (예상). 개발 환경에서는 .framework시뮬레이터와 실제 장치 모두에서 테스트 할 수 있기 때문에 파일 에서 아키텍처를 제거 할 필요가 없습니다 . 뚱뚱한 라이브러리 Frameworks가 프로젝트 의 폴더에 있으면 수락 된 답변을보십시오.