programing tip

xcode 5.1 : libCordova.a 아키텍처 문제

itbloger 2020. 10. 8. 07:45
반응형

xcode 5.1 : libCordova.a 아키텍처 문제


어제 (3/10/14) iOS 7.1이 출시되었을 때 Xcode 5.1로 업그레이드했고 내 PhoneGap / Cordova 프로젝트가 더 이상 내 iPhone 5s로 컴파일되지 않음을 발견했습니다. 또한 Cordova를 최신 릴리스 인 v 3.4.0-0.1.3으로 업그레이드했습니다.

나는 그렇게 변화하는 활성 아키텍처와 활성 아키텍처 만 구축하는 것과 관련된 많은 다른 솔루션을 읽었으며 그중 어느 것도 작동하지 않습니다. 그래서 여기에 내가 시도한 것과 내가 얻는 오류가 있습니다. 처음에는 오류가 발생했습니다.

missing required architecture arm64 in file <long file path omitted> libCordova.a
Undefined symbols for architecture arm64

그래서 다음을 시도했습니다. 내 프로젝트에서 CordovaLib 하위 프로젝트를 선택했고 프로젝트와 대상 모두 에서 아키텍처 아래의 빌드 설정 으로 이동하여 디버그 또는 릴리스 아키텍처에 포함되지 않았 는지 확인했습니다 . 현재 Build Active Architecture Only 는 "Yes"로 설정되어 있습니다. 그 결과 다음과 같은 오류가 발생했습니다.arm64

file was built for archive which is not the architecture being linked (armv7): 
<long file path omitted> libCordova.a
Undefined symbols for architecture armv7

설정 만 빌드 액티브 아키텍처를 "아니오"로 오류가 다시된다 :

missing required architecture arm64 in file <long file path omitted> libCordova.a
Undefined symbols for architecture arm64

무엇을 시도해야할지 모르겠습니다. 프로젝트의 아키텍처 설정에는 iOS 7.1로 설정된 키 "Base SDK"만 포함됩니다. 프로젝트의 대상에 아키텍처 설정이 없습니다. 어쨌든 나는 임베디드 CordovaLib 하위 프로젝트에 문제가 있다고 확신합니다. 이 것을 내 장치에 성공적으로 컴파일하려면 어떻게해야합니까?

업데이트 : Apache의 Jira에서 동일한 문제 : https://issues.apache.org/jira/browse/CB-6223


@Shazron은 Apache JIRA에 수정 사항을 게시했습니다. 그는 수정 사항이 Cordova 3.5의 일부로 출시 될 것이라고 언급했습니다.

  1. 프로젝트 아이콘 선택
  2. 빌드 설정을 선택합니다.
  3. "아키텍처"에 대해 $ ARCHS_STANDARD-표준 아키텍처 (armv7, armv7s, arm64)를 선택하십시오.
  4. "Valid Architectures"의 경우 "arm64"를 추가하십시오.
  5. CordovaLib.xcodeproj 아이콘을 선택하십시오.
  6. 프로젝트의 빌드 설정 (대상이 아님)에서 조건부 아키텍처 설정을 삭제합니다 (마이너스 기호를 보려면 마우스를 가져갑니다).
  7. "아키텍처"에 대해 $ ARCHS_STANDARD-표준 아키텍처 (armv7, armv7s, arm64)를 선택하십시오.
  8. "Valid Architectures"의 경우 "arm64"를 추가하십시오.
  9. 6으로 이동하지만 이제 "Target"에 대해 수행합니다.

다음은이 문제에 대한 Shazron의 전체 글에 대한 링크입니다. http://shazronatadobe.wordpress.com/2014/03/12/xcode-5-1-and-cordova-ios/

이제 릴리스되었으며 수행 할 작업의 짧은 버전은 다음과 같습니다.

Cordova CLI 3.4.1-0.1.0이 출시되었습니다. 여기에는이 블로그 게시물에 언급 된 모든 수정 사항이 포함 된 Cordova iOS 3.4.1이 포함되어 있습니다. Cordova CLI를 업데이트하고 기존 프로젝트가있는 경우 "cordova 플랫폼 업데이트 ios"를 수행하십시오.


작동하는 또 다른 접근 방식 :

  1. 프로젝트 탐색기 상단에서 프로젝트를 클릭합니다 (Cordova.lib 하위 프로젝트가 아님).
  2. 편집기 창에서 프로젝트 (대상 아님)를 선택하고 빌드 설정 편집기 탭을 선택한 다음 모두 및 수준 버튼을 클릭합니다.
  3. 필요한 경우 아키텍처 그룹을 확장하고 그 아래에서 아키텍처 행을 찾습니다.
  4. 아키텍처 행의 첫 번째 (해결됨) 및 세 번째 (iOS 기본값) 열은 표준으로 표시됩니다. 두 번째 (프로젝트) 열은 비어 있습니다.
  5. 빈 두 번째 열을 클릭하면 "$ (ARCHS_STANDARD)"라는 한 줄이있는 상자가 나타납니다.
  6. 해당 줄을 두 번 클릭하여 편집 가능한 상태로 만든 다음 "$ (ARCHS_STANDARD_32_BIT)"로 변경합니다.
  7. 상자 바깥 쪽을 클릭하여 변경 사항을 확인합니다. 이제 첫 번째와 두 번째 상자에는 $가 있습니다.
  8. 이제 빌드 할 수 있습니다.

Xcode 5.1을 5.0.2로 다운 그레이드하는 것이 저에게 효과적이었습니다. 수정 된 공식 Cordova 3.5 릴리스를 기다릴 수 없었습니다.

https://developer.apple.com/downloads/index.action 에서 이전 버전의 사본을 얻을 수 있습니다.


이 문제를 해결 하는 새 버전 3.4.1방금 출시했습니다 .

따라서 TAG 3.4.1을 가리 키도록 단일 파일을 업데이트합니다.

/usr/local/lib/node_modules/cordova/platforms.js

24 행 :

version: '3.4.0'

에:

version: '3.4.1'

그런 다음 프로젝트에서 iOS 폴더를 제거하고 다음을 실행합니다.

cordova platform add ios

그러면 모든 패치가 포함 된 3.4.1 기반의 새 템플릿이 다운로드됩니다.


이 비디오의 지침을 따르십시오 : https://www.youtube.com/watch?v=EIkJAKcz8DE

프로젝트의 유효한 아키텍처에 arm64를 추가하고 Cordova 프로젝트의 모든 조건부 아키텍처를 제거하십시오.


I was able to get my app to build in XCode 5.1 by first building the CordovaLib project separately from within XCode and then building my project.


You just have to add the arm64 architecture on every statement and building setting, i mean, on your current project, and on the cordova project.

On your project:

  • Architectures
  • Valid architectures

on Cordova:

  • Architectures
  • debug
  • release
  • Any ios SDK

AND THE MOST IMPORTANT

-Valid architectures at cordova build settings

This configuration generates a lot of warnings, but is just change the "%d" for "%ld" at all lines that the warning says.


Grab the xcode icon and drag it to the bin!

Go here https://developer.apple.com/downloads/index.action?name=Xcode and download 5.0.2 and install.

After installing, run xcode, then try the emulator from terminal.

Worked for me, annoying though!

참고URL : https://stackoverflow.com/questions/22334680/xcode-5-1-libcordova-a-architecture-problems

반응형