programing

Xcode의 아카이빙 프로젝트가 다중 애플리케이션 번들을 잘못 생성함

skycolor 2023. 5. 17. 22:39
반응형

Xcode의 아카이빙 프로젝트가 다중 애플리케이션 번들을 잘못 생성함

Xcode로 프로젝트를 보관하는 것은 릴리스할 주요 대상을 번들로 제공하는 대신 다중 애플리케이션 번들을 생성하는 것입니다.특히 Organizer에서 보관 파일을 확인하면 다음과 같은 메시지가 표시됩니다.

"[projectname]에는 단일 프로세서 응용 프로그램이 포함되어 있지 않거나 여러 제품이 포함되어 있습니다.다른 보관 파일을 선택하거나 단일 번들 응용 프로그램을 만들 수 있도록 구성표를 조정하십시오."

계획에 조정이 필요한 설정이 있는 것처럼 들리지만, 다른 대상이 포함되는 원인이 무엇인지 알 수 없습니다.

참고로 저는 Xcode 4.0을 사용하고 있습니다.

좋아요, 제 질문에 대답하는 중입니다.XCode 4의 종속 프로젝트와 관련된 문제인 것으로 밝혀졌습니다.이러한 경우 모든 종속 프로젝트(예: 정적 라이브러리)에 대한 빌드 설정을 검토하고 "배포" 아래의 "설치 건너뛰기" 옵션이 "예"로 설정되어 있는지 확인합니다.

자세한 내용은 http://flakasoft.com/developer-tips/xcode-4-bug-solution-for-archiving-build-with-static-library/ 를 참조하십시오.

이 문제를 해결하려면 하위 프로젝트에서 두 가지를 수정해야 했습니다.

  1. 발견한 에서 " InstallJared 검색설로를예 "치건기로 "뛰너 "합정 "설니 "로 합니다.
  2. 빌드 단계에서 머리글 복사 섹션을 검토합니다.개인 또는 공용으로 나열된 헤더 파일이 있으면 프로젝트 섹션으로 끌어다 놓습니다.

저는 제게 도움이 되도록 하기 위해 다음과 같이 했습니다.

  1. 320개의 정적 라이브러리를 위해, 저는 cocoapod를 사용하여 주요 프로젝트에 파일을 포함시켰습니다.그것은 320이 나에게 준 모든 문제를 없앴습니다 (그리고 그것들은 많습니다...) 하지만 저는 320을 님버스로 교체하려고 했습니다.하지만 님버스는 제 프로젝트에서 320을 사용하는 몇 가지 기능이 부족했습니다.님버스는 도움이 안 됐어요
  2. 다른 모든 하위 프로젝트/정적 라이브러리에 대한 빌드 설정에서 skip install을 yes로 설정하고 빌드 단계에서 복사 헤더를 공용에서 프로젝트로 전환합니다.
  3. 가장 중요한 것은 하위 도서관 아래에 있다는 것입니다.빌드 단계에서 복사 파일 대상이 에서 변경되었음을 확인했습니다.Absolute path로.products directory.

그리고 그게 끝이었습니다!

힌트: 아카이브가 ipa가 아닌 아카이브 파일을 만드는 원인이 되는 문제가 있는 파일에 대한 정보를 얻으려면 다음을 수행합니다.

  1. 보관 파일을 선택하고 배포 버튼을 클릭합니다.
  2. '제조된 제품 저장' 옵션을 선택합니다.
  3. [다음]을 누르고 저장합니다.
  4. 파인더에서 작성된 디렉토리를 찾습니다.
  5. '라이브러리' 하위 디렉터리는 설치 건너뛰기를 예로 설정하는 데 필요한 라이브러리를 식별합니다.
  6. 경우에 따라서는usr/local/includePublic(공용)에서 Project(프로젝트)로 이동해야 하는 범인 헤더 파일 또는 절대 경로에서 Products(제품) 디렉토리로 변경해야 하는 파일을 식별합니다. 그러나 해당 디렉토리(즉, usr/local/include)는 하위 라이브러리 디렉토리 구조에 따라 다릅니다.

잊어버린 복사 파일 빌드 단계가 있었습니다(일부 글꼴을 ~/라이브러리/글꼴로 복사).이 빌드 단계를 제거한 후에는 정상적으로 작동했습니다.

위의 답변 중 문제가 해결되지 않으면 보관 파일을 파인더로 내보내고 .app 번들 외부에 있는 내용을 확인하는 것이 좋습니다.

편집: https://github.com/RestKit/RestKit/wiki/Xcode-4-Archiving-Issue:--'Does-not-contain-a-single-bundle' 를 참조하십시오.

"[projectname]에 단일 프로세서 애플리케이션이 포함되어 있지 않거나 여러 제품이 포함되어 있지 않습니다.xcode5로 업그레이드한 후 다른 보관 파일을 선택하거나 단일 번들 응용 프로그램을 만들 수 있도록 구성표를 조정하십시오."

문제는 'release'에 대한 빌드 설정의 여러 필드가 비어 있다는 것입니다.xcode4가 자동으로 디버그 설정으로 전환된 것 같습니다.

Anwayays - 저의 해결책은 비어 있는 모든 '릴리스' 설정을 찾아서 디버그 설정으로 설정하는 것이었습니다.특히 Info.plist 파일 설정이었습니다.

언급URL : https://stackoverflow.com/questions/5206536/archiving-project-in-xcode-incorrectly-creates-multi-application-bundle

반응형