ios - Xcode 11-CFBundleVersion 오류를 설치한 후 시뮬레이터에서 응용 프로그램을 실행할 수 없습니다.




xcode10 xcode11 (6)

Sgeven.Zheng과 Cristik의 답변을 결합합니다.

원인

Xcode11 Beta를 설치하면 CoreSimulator.framework의 새 버전이 다음 업데이트와 함께 설치됩니다.

https://developer.apple.com/documentation/xcode_release_notes/xcode_11_beta_release_notes

"CFBundleVersion이없는 번들은 유효하지 않으며 장치 나 시뮬레이터에 제대로 설치 될 수 없습니다 CoreSimulator는 이전에 이러한 번들을 확인하면서 더 명확한 오류 메시지를 표시하여 거부합니다. (49892531)"

다음 문제는 해결되지 않습니다.

  • Xcode11 베타 제거
  • Xcode 10 제거 및 재설치

CoreSimulator.frameworkXcode.app 번들 외부에있는 /Library/Developer/PrivateFrameworks/CoreSimulator.framework 설치되어 있기 때문입니다. 다시 설치하면 xcode10은 현재 설치된 CoreSimulator.framework 버전이 CoreSimulator.framework 이 설치 한 버전보다 최신 버전임을 감지하므로 그대로 두십시오.

단기간 고정

  1. xcode11 제거
  2. Xcode 10 설치 (이미 설치되어있는 경우 다시 설치할 필요 없음)
  3. /Library/Developer/PrivateFrameworks/CoreSimulator.framework 제거하십시오.
  4. Xcode 10을 시작하고 명령 줄 도구 설치에 동의하십시오.

장기 고정

이것은 "실제"버그가 아니기 때문에 Xcode11의 의도 된 동작이므로 결국 앱이 항상 유효한 CFBundleVersion 빌드되도록 조치를 취해야합니다.

어제, Xcode 11의 베타 버전을 다운로드했습니다. 그 후 프로젝트를 열고 새로운 Xcode로 실행하려고했습니다. 메시지와 함께 오류가 발생했습니다.


Failed to install the requested application
Domain: NSPOSIXErrorDomain
Code: 22
Failure Reason: The application's CFBundleVersion is invalid.
Recovery Suggestion: Ensure your bundle contains a CFBundleVersion with a valid semantic version number.
--

베타 버전을 닫고 Xcode (10.2.1)의 최신 안정 버전으로 다시 실행하려고 시도했지만 동일한 오류가 발생했습니다. Xocde 11로 프로젝트를 실행하기 전에 Xcode 10에서 문제없이 작동했음을 언급 할 필요가 있습니다. 베타 Xcode로 실행하기 전후에 아무 것도 변경되지 않았습니다.

내가 이미 시도한 것 :

  • Xcode 11 베타를 제거했습니다.
  • 내 프로젝트를 정리하고 최신 지사에서 가져 왔습니다.
  • Xcode 10을 완전히 제거했습니다.
~/Library/Caches/com.apple.dt.Xcode
~/Library/Developer
~/Library/MobileDevice
~/Library/Preferences/com.apple.dt.Xcode.plist
/Library/Preferences/com.apple.dt.Xcode.plist
/System/Library/Receipts/com.apple.pkg.XcodeExtensionSupport.bom
/System/Library/Receipts/com.apple.pkg.XcodeExtensionSupport.plist
/System/Library/Receipts/com.apple.pkg.XcodeSystemResources.bom
/System/Library/Receipts/com.apple.pkg.XcodeSystemResources.plist
  • 그런 다음 안정적인 버전 10.2.1을 새로 설치했습니다.

Xcode 11에서 아무런 문제없이 테스트하지 않은 다른 프로젝트를 실행할 수 있습니다.

나의 마지막 아이디어는 단지 macOS를 재설치하는 것이지만,하지 말고 싶다.

편집 : 응용 프로그램이 실제 iPhone XS에서 작동 중임을 언급하는 것을 잊어 버렸습니다.


Xcode11의 새로운 기능입니다.

릴리스 노트에서 그것은 말했다 :

CFBundleVersion이없는 번들은 유효하지 않으며 장치 나 시뮬레이터에 제대로 설치 될 수 없습니다. CoreSimulator는 더 명확한 오류 메시지와 함께 프로세스 초기에 그러한 번들을 확인하고 거부합니다. (49892531)

할 수있는 일 :

  1. link 스타일로 CFBundleVersion을 편집하십시오
  2. Xcode 및 시뮬레이터 재설정
  3. 다시 실행하면 다시 작동하는 것을 볼 수 있습니다.

시뮬레이터 성공으로 앱을 실행하면 CFBundleVersion을 다시 변경할 수 있으며 여전히 XD를 사용할 수 있음을 알게 될 것입니다


나는이 같은 문제에 또한 뛰어 갔다.

지금까지 제공되는 다른 옵션을 시도하는 것까지는 미치지 못했지만 간단히 / DerivedData 디렉토리를 삭제하여 시뮬레이터를 구축 할 수있었습니다.

Xcode -> 환경 설정 -> 위치를 선택하고 파생 데이터의 경로 옆에있는 화살표를 선택하면됩니다.


나에게도 일어 났고, 거의 하루 종일 가능한 원인을 찾기 위해 낭비했다.

마지막으로 문제를 해결하고 시뮬레이터에 설치할 수있는 단계 :

  1. Xcode 및 iOS 시뮬레이터 종료
  2. /Library/Developer (루트에서 하나)를 제거하거나 백업을 유지하려면 이름을 바꿉니다.
  3. Xcode를 다시 시작하고 명령 줄 도구 설치에 동의하십시오.
  4. 당신이 떠났던 곳에서 계속 작업하십시오 :)

질문에 언급 된 단계 (Xcode 11을 완전히 제거하고 Xcode 10을 완전히 제거한 후 나중에 다시 설치) 이외에도 다른 위치에서 프로젝트 복제를 시도하고 파생 데이터의 가능한 모든 위치를 순환 시키며 다른 시뮬레이터 런타임을 설치하고 시도했습니다 . 다행히도 콘솔 로그 앱은 앱 번들을 거부 한 프로세스 경로를 보여주었습니다. /Library/Developer/PrivateFrameworks/CoreSimulator.framework 에 Xcode가 설치 한 바이너리 중 하나였습니다.

Xcode 11이 새로운 버전의 프레임 워크를 설치 한 것으로 보입니다. Xcode 10이 프레임 워크를 덮어 쓰지 않고있었습니다. 전체 /Library/Developer 폴더를 제거하면 명령 줄 도구 설치가 시작되어 결국 Xcode 10에서 제대로 작동하는 시뮬레이터 런타임을 가져 왔습니다.

당신은 베타를 사랑해야 해 :)


이것에 더해서, CFBundleVersion이 다음과 같은 사항을 제시하지 못한다면 나는 알아 차렸다.

This key is a machine-readable string composed of one to three period-separated integers, such as 10.14.1. The string can only contain numeric characters (0-9) and periods. 시뮬레이터에는 빌드되지 않습니다.

link


제 경우에는 11 베타 버전의 시뮬레이터 / 코어 리 미터 버전과 10.1 -> 킬링 버전을 실행하고 Xcode를 다시 열면 시뮬레이터가 문제를 해결했습니다.





xcode11