예기치 않은 CFBundleExecutable 키


98

인터넷 검색에 시간을 보낸 후 문제가 새로운 것임을 알려줍니다.

iOS7-8을 지원하는 완전한 기능의 프로젝트가있었습니다. 물론 AppStore에 여러 번 성공적으로 제출되었습니다.

우리는 GA 및 Instabug와 같은 포드, 많은 추적 및 모니터링을 사용합니다.

이제 iOS 9의 Xcode 7에 빌드 된 앱 버전을 TestFlight에 제출하기로 결정했습니다.

Flurry 및 기타 사전 빌드 된 라이브러리와 같은 많은 포드에 비트 코드가 포함되어 있지 않기 때문에 비트 코드를 비활성화했습니다.

빌드가 성공적으로 완료되었습니다. iTunesConnect에 제출하면 다음과 같은 결과가 나타납니다. 여기에 이미지 설명 입력

GoogleAppIndexing 라이브러리 (pod에서도 마찬가지)에 대해서도 동일했지만 작동하도록하기 위해 제거했습니다. 지금-Instabug. 너무 멀어서 iOS 9에서 무슨 일이 일어나고 있는지 그리고 그러한 오류를 던지기 시작하기 위해 완전히 작동하는 프로젝트를 만든 변경 사항을 이해하려고 노력하고 있습니다.

모든 생각과 아이디어를 환영합니다! 여러분의 경험을 공유해 주시고, 놓친 것이 있으면 기꺼이 제 발걸음을 공유하겠습니다.


2
이 문제를 해결 했습니까? 저도이 문제에 직면하고 있지만 GoogleMaps.bundle입니다 ...
Johnny

1
아니, 아직. 일반적인 문제인 것 같습니다.
Dumoko 2015-08-19

. 이것은 내가 다른 사람이이 문제를 가지고 있는지, 애플 개발자 포럼에 요청했습니다 :( 정말 짜증나는 forums.developer.apple.com/message/42851#42851
조니

우리는 Startapp과의 새로운 통합에서도 이것을보고 있습니다. iOS 9 및 Xcode 7 베타 5도 있습니다.
Trey Bean

2
Instabug의 Moataz가 여기 있습니다. 당신이 Instabug.bundle를 대체 할 수 당신이 하나를 가지고 dropbox.com/s/37zwhaqzatfnz3n/Instabug.bundle.zip?dl=0 , 어떻게되는지 알려주세요
Moataz 솔리

답변:


112

오늘 Xcode 7 베타 5를 사용하여 앱을 제출하려고 할 때 똑같은 오류 메시지와 함께 동일한 문제가 발생했지만 instabug.bundle비트 대신 저를위한 것 TencentOpenApi_IOS_Bundle.bundle입니다.

프로젝트에서 명명 된 번들을 찾아 문제를 해결 한 다음 오류 메시지에서 알 수 있듯이 키 Info.plist를 제거하여 번들에있는 번들을 편집했습니다 CFBundleExecutable. CFBundlePackageType키가 이미 설정 한 BNDL내가 만지지 않았다 그래서.

이러한 변경 후 Product> Clean을 수행 한 다음 앱을 App Store에 제출하는 데 문제가 없었습니다.

이게 도움이 되길 바란다.


2
경험을 공유해 주셔서 감사합니다! 그래서 그것은 도서관 저자 문제입니다. 하지만 우리 개발자들은 이런 트릭을해서는 안됩니다. 예를 들어 저는 포드와 CI 시스템을 사용합니다. CI로 이동할 수 없으며 포드 설치 후 매번이 수동 변경을 수행합니다. 그러나 적어도 우리는 그것을 작동시킬 것입니다. 지금까지 일반적인 솔루션을 찾고 있습니다. 곧 오지 않으면 도움이되는 답변으로 표시하겠습니다. 다시 감사합니다!
Dumoko 2015-08-20

나는 이것을 할 수 없다. Xcode에서 pod 내에서 info.plist를 열려고하면 파일이 잠겨 있고 변경 사항이 저장되지 않는다고 알려줍니다. 외부 텍스트 편집기를 사용하면 plist 파일의 내용이 어떻게 든 인코딩 된 것을 볼 수 있지만 일반 텍스트가 아닙니다.
Mike Keskinov 2015 년

@MikeKeskinov,이 링크가 도움이 될 수 있습니까? [ apple.stackexchange.com/questions/68646/… ? Finder에서 info.plist를 찾고 Xcode에서 편집 할 수 있도록 파일의 권한을 편집 할 것을 제안합니다.
Sleiman

저도 비슷한 문제를 겪었고 Apple에보고했습니다. 귀하의 단계는 Apple에서 제안한대로 절대적으로 정확합니다. bugreport.apple.com/problem/viewproblem
Avinash

이 문제를 해결하기 위해 쉘 스크립트를 작성했습니다. 프로젝트의 빌드 단계 중에 실행 스크립트로 추가합니다. gist.github.com/brightredchilli/ca63430518f0daa4dfa9
Ying

52

AviarySDKXcode 7 GM에서 App Store에 제출하는 동안 이 문제가 발생했습니다 .

먼저 라이브러리의 최신 버전을 사용하고 있는지 확인합니다. 공급 업체에서 이미이 문제를 수정했을 수 있습니다. 그러나 여전히이 문제가 발생하면 Sleiman이 설명하는 것처럼 문제 CFBundleExecutable가되는 라이브러리의 plist 파일에서 키 를 제거해야합니다 .

Cmd + Shift + O를 누르고 "Info.plist"를 입력하면 적절한 파일을 찾을 수 있습니다.

여기에 이미지 설명 입력

plist를 편집하면 CFBundleExecutable및 다른 키 대신 설명이 포함 된 이름이 표시 될 수 있습니다 . 외부 편집기에서이 파일을 편집 할 수 없으므로 목록을 마우스 오른쪽 버튼으로 클릭하여 원시 키 / 값보기로 전환해야했습니다.

여기에 이미지 설명 입력

이제 CFBundleExecutable삭제할 수 있는 키 ( "실행 파일"에 대한 설명이 있음)를 볼 수 있습니다.

AviarySDK의 Info.plist경우 위의 이미지에서 볼 수있는 각각에 대해 한 번씩이 작업을 두 번 수행 한 다음 성공적으로 제출할 수있었습니다.


이것의 부작용이 무엇인지 아십니까? Polljoy 번들과 동일한 문제가 있습니다. 항목이 plist에 잘못 있다고 생각하십니까?
Stoff81 2015 년

1
"Xcode는이 키를 적절한 프로젝트의 정보 속성 목록 파일에 자동으로 추가합니다." 부작용에 대해 말씀 드릴 수 없어서 죄송 합니다만, 프레임 워크 지원과 함께 배포되지 않은 오래된 라이브러리를 사용했기 때문인 것 같습니다. Xcode 이를 지원 하는 것과 동일하게 처리하려고합니다. 프레임 워크 용.
Adam S

불행히도 일부 라이브러리 (예 : AppIndexing 등)의 경우 plist 파일 내용이 암호화 된 것 같습니다. 볼 수는 있지만 변경 사항을 저장하지는 않습니다. XCode 외부에서 파일을 열려고하면 파일이 암호화되어 있음이 분명합니다 (일반 텍스트 없음).
Mike Keskinov 2015 년

이것은 Google 로그인에 효과가 있었고 App Store에 업로드 할 수있었습니다
James

2
방금 Aviary와 Cocoapods 0.39에서 같은 문제를 언급했습니다. 제안한 수정 사항이 작동하는 것 같습니다. 총알을 깨물고 AdobeCreativeSDK로 전환 할 때가 된 것 같습니다. :(
Keab42

11

이 문제를 다음과 같이 해결합니다. 다음 패키지의 모든 "실행 파일"을 제거해야합니다.

  • GooglePlus.bundle
  • GPPCommonSharedResources.bundle
  • GPPShareboxSharedResources.bundle

"번들 유형 코드"가 동일한 BNDL인지 확인하십시오.

중요 : 주 프로젝트의 info.plist에서 아무것도 편집하지 마십시오.

첨부 된 화면은 각 패키지 위에 나열된 "info.plist"여야합니다.

여기에 이미지 설명 입력

여기에 이미지 설명 입력

여기에 이미지 설명 입력



5

Less than (<) Xcode 7.0 을 통해 빌드가 제출 되면 제출되며 Xcode 7에 대해 다음과 같은 방법으로 해결했습니다 .

info.plist다음 이미지와 같이 프로젝트 프로젝트 네비게이터에서 검색했습니다 .

여기에 이미지 설명 입력

이제 이러한 info.plist파일을 하나씩 열고 대상의BundleExecutable 키를 제외하고 키를 삭제했습니다.info.plist

이제 프로젝트를 정리하고 달성했으며 문제없이 제출되었습니다.


4

Google Maps Library에서 동일한 문제가 발생하여 SDK의 info.plist 깨끗한 프로젝트 인 ( ) CFBundleExecutable내부 키를 제거 하고 appstore에 업로드했습니다.GMSCoreResources.bundleInfo.plist

행복한 프로그래밍.

여기에 이미지 설명 입력


1

Build Settings => Enable Bitcode를 확인하고 NO로 설정하십시오.


0

한 가지 추가 참고 사항 : 때때로 추가 대상이있는 경우 키를 포함 할 수있는 대상 속성이있을 수 있으므로 ( "정보"섹션에) 해당 항목을 확인하고 거기에서도 제거하십시오. 포함하려고했던 번들 중 하나에서 이것을 발견했습니다. plist에서 정보를 삭제했지만 오류가 계속 발생했습니다.


0

CocoaPods를 통해 설치된 라이브러리에서이 오류가 표시되는 경우 pod update <OFFENDING POD NAME>

그것은 나를 위해 문제를 해결했습니다.



0

제 경우 SDK에는 In 폴더 info.plist에 사용하지 않는 파일이 포함 되어 있습니다. 그것은 나를 위해 문제를 만듭니다. 따라서 사용하지 않는 info.plist파일을 찾아 소스 코드에서 삭제하십시오.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.