[iphone] xcode에서 iOS 앱 아카이브를 생성 할 수 없습니다

응용 프로그램에서 iOS 앱 아카이브를 생성하는 데 문제가 있습니다. 응용 프로그램은 잘 컴파일되고 시뮬레이터에서도 작동합니다. 이제 나는 임시 테스트를하고 싶었고 iOS 앱 아카이브를 생성 할 수 없습니다. 제품-> 아카이브를 클릭하면 일반 xcode 아카이브가 생성됩니다. 누구든지 나를 도울 수 있습니까? 이 애플리케이션의 iOS 앱 아카이브를 이미 생성했음을 언급해야합니다. 어떤 이유로 iOS 아카이브 생성을 중단했습니다. 고마워



답변

빌드 설정 확인 :

  1. 주요 프로젝트 대상에 대해 설치 건너 뛰기가 NO입니다.
  2. 프레임 워크 (하위 프로젝트) 대상의 경우 건너 뛰기 설치가 예입니다.
  3. 하위 프로젝트의 빌드 단계에서 복사 헤더는 공개 가 아닌 프로젝트에 있어야합니다 (정적 라이브러리를 빌드하는 경우 적용되지 않음)
  4. 배포중인 설치 디렉토리가 유효합니다 (예 : / Applications).

답변

프레임 워크 / 라이브러리를 추가 한 경우 이런 상황이 발생할 수 있습니다. 해당 라이브러리의 Target-> Build Settings를 편집하고 ‘Skip Install’설정을 ‘Yes’로 설정해야합니다. 다시 아카이브 할 때 XCode는 ‘일반 xcode 아카이브’가 아닌 ‘iOS App Archive’를 다시 생성하기 시작해야합니다.


답변

의 또한 건너 뛰기 설치 와 경우에 당신은 당신이에서 (있는 경우) 헤더를 이동해야 앱 프로젝트 내에서 다른 lib 디렉토리 / framwork 프로젝트를 열어 대중 에게 프로젝트 에서 빌드 단계 / 복사 헤더 .

lib / framwork 대상의 빌드 단계


답변

나는 그것이 나를 위해 작동하도록 다음을 수행했다.

  1. 나는 320 개의 정적 라이브러리를 가지고 있었고 , 주 프로젝트 내에 파일을 포함 시키기 위해 cocoapods 를 사용 했습니다.
  2. 다른 모든 하위 프로젝트 / 정적 라이브러리의 건너 뛰기 설치를 따르고 위에서 설명한 것처럼 사본 헤더를 공개에서 프로젝트로 전환했습니다.
  3. 가장 중요한 것은 프로젝트에서 사용하는 각 라이브러리에서 빌드 단계-> 파일 복사 로 이동하여 대상 이에서 (으) Absolute path로 변경 되었는지 확인하십시오 products directory. 참고 :이 오류를 발생시키는 라이브러리를 찾으려면 검색 범위를 좁히려면 아래 힌트를 참조하십시오.

그게 다야!

힌트 : 아카이브가 ipa가 아닌 아카이브 파일을 작성하게하는 문제가있는 파일에 대한 아이디어를 얻으려면 다음 을 수행하십시오.

  1. 아카이브를 선택하고 배포 버튼을 클릭하십시오.
  2. ‘내장 제품 저장’옵션을 선택하십시오.
  3. 다음을 누르고 저장하십시오.
  4. Finder에서 생성 된 디렉토리를 탐색하십시오.
  5. ‘libraries’서브 디렉토리는 건너 뛰기 설치를 예로 설정해야하는 라이브러리를 식별합니다.
  6. 경우에 따라 usr/local/include공개에서 프로젝트로 이동해야하는 범인 헤더 파일 또는 절대 경로에서 제품 디렉토리로 변경해야하는 파일 (또는 건너 뛰기 설치를 yes 플래그로 설정하는 것을 잊어 버린 파일)도 식별 할 수 있습니다. 그러나 해당 디렉토리 (예 : usr / local / include)는 서브 라이브러리 디렉토리 구조에 따라 다릅니다. 대부분의 경우. 위의 3 단계에서 파일 복사 아래에 나열된 모든 파일 을 볼 수 있습니다. 여기에서 찾으면 문제의 원인에 대한 명확한 대답이 있습니다.

힌트로 업데이트 : 인생을 더욱 단순하게 만듭니다. 위의 힌트 에서 4 단계 아래에 표시되는 모든 파일 . xcode의 전역 검색에서 해당 파일을 검색하기 만하면됩니다. 예를 들어, 이것은 내 폴더의 내용이었습니다 (위 힌트의 단계를 따르십시오).

여기에 이미지 설명을 입력하십시오

그래서 나는 그것이 cryptossl 라이브러리 와 관련이 있다고 말할 수 있습니다.

여기에 이미지 설명을 입력하십시오

skip install을 yes로 설정하는 것을 잊었다는 것을 깨달았습니다.


답변

아카이브를 내보내는 경우이를 열고 제품/urs/local/include 에서 다음 제안 시도를 참조하십시오 .

각 포드, 아래에서 Packaging, Private Headers Folder Path그리고이 Public Headers Folder Path설정됩니다 /usr/local/include. 내가 지우면 유효한 아카이브를 얻습니다.

여기에 이미지 설명을 입력하십시오

React Native 앱을 0.11.0Xcode 7및 CocoaPods 로 업그레이드 한 후 나를 위해 일했습니다 0.39.0.beta.4.


답변

당신이 CocoaPods뿐만 아니라 WatchKit 또는 오늘 확장을 사용하는 경우, 개방이 문제를 설명에게 문제가 될 수 REPO 무엇 CocoaPods에가.

솔루션 내게는 제거했다 Copy Pod ResourcesWatchKit 확장에서의 위상을하고 오늘 확장에 따라 대상 Build Phases. 이 작업을 수행하면 프로젝트가 예상대로 컴파일 및 보관되었습니다.

이것이 누군가를 도울 수 있기를 바랍니다.


답변

위의 답변 중 하나라도 효과가 없으면 문제가있는 것입니다 cocoaPods. 최신 업데이트로 0.38.1인해 문제가 발생했지만 다운 그레이드 0.37.1되어 정상적으로 돌아 왔습니다. 사용Xcode 6.3.1

나중에 편집 : 업데이트하면 0.38.2이 문제가 해결됩니다. 이 문제를 일으킨 원인에 대한 추가 정보 : Cocoapods 0.38.1이 유효한 아카이브를 생성하지 못했습니다.