programing

Cordova 빌드 iOS 오류 : 'path / to / myApp.xcarchive'경로에서 아카이브를 찾을 수 없습니다.

copyandpastes 2021. 1. 16. 10:58
반응형

Cordova 빌드 iOS 오류 : 'path / to / myApp.xcarchive'경로에서 아카이브를 찾을 수 없습니다.


나는 Cordova를 iPhone에서 작동하고 실행하기 위해 고심하고 있습니다. 아래 명령을 따르지만 빌드시 아래 오류가 표시됩니다.

cordova create myApp org.apache.cordova.myApp myApp
cd myApp
cordova platform add ios 
cordova build ios

아래 오류가 발생합니다.

Building project: /Users/ben/Desktop/myTest/platforms/ios/myTest.xcworkspace
    Configuration: Debug
    Platform: device
User defaults from command line:
    IDEArchivePathOverride = /Users/ben/Desktop/myTest/platforms/ios/myTest.xcarchive

Build settings from command line:
    CONFIGURATION_BUILD_DIR = /Users/ben/Desktop/myTest/platforms/ios/build/device
    SHARED_PRECOMPS_DIR = /Users/ben/Desktop/myTest/platforms/ios/build/sharedpch

Build settings from configuration file '/Users/ben/Desktop/myTest/platforms/ios/cordova/build-debug.xcconfig':
    CLANG_ALLOW_NON_MODULAR_INCLUDES_IN_FRAMEWORK_MODULES = YES
    CODE_SIGN_ENTITLEMENTS = $(PROJECT_DIR)/$(PROJECT_NAME)/Entitlements-$(CONFIGURATION).plist
    CODE_SIGN_IDENTITY = iPhone Developer
    ENABLE_BITCODE = NO
    GCC_PREPROCESSOR_DEFINITIONS = DEBUG=1
    HEADER_SEARCH_PATHS = "$(TARGET_BUILD_DIR)/usr/local/lib/include" "$(OBJROOT)/UninstalledProducts/include" "$(OBJROOT)/UninstalledProducts/$(PLATFORM_NAME)/include" "$(BUILT_PRODUCTS_DIR)"
    OTHER_LDFLAGS = -ObjC
    SWIFT_OBJC_BRIDGING_HEADER = $(PROJECT_DIR)/$(PROJECT_NAME)/Bridging-Header.h

error: archive not found at path '/Users/ben/Desktop/myTest/platforms/ios/myTest.xcarchive'
** EXPORT FAILED **

(node:4984) UnhandledPromiseRejectionWarning: Error code 65 for command: xcodebuild with args: -exportArchive,-archivePath,myTest.xcarchive,-exportOptionsPlist,/Users/ben/Desktop/myTest/platforms/ios/exportOptions.plist,-exportPath,/Users/ben/Desktop/myTest/platforms/ios/build/device
(node:4984) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). (rejection id: 1)
(node:4984) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.

플랫폼 제거 및 추가를 시도했습니다. 또한 항목도 제거합니다.

저는 macOS High Sierra 및 Xcode 10을 사용하고 있습니다.


여기에서 작업이 있습니다 .

명령 줄에서 빌드하는 경우 --buildFlag = "-UseModernBuildSystem = 0"을 지정할 수 있습니다.

# Cordova CLI
cordova run ios --buildFlag='-UseModernBuildSystem=0'
cordova build ios --buildFlag='-UseModernBuildSystem=0'

# Ionic CLI
ionic cordova run ios -- --buildFlag="-UseModernBuildSystem=0"
ionic cordova build ios -- --buildFlag="-UseModernBuildSystem=0"

build.json 구성 파일로 빌드하는 경우 iOS 릴리스 또는 디버그 구성에서 다음을 추가 할 수 있습니다.

"buildFlag": [
  "-UseModernBuildSystem=0"
]

Xcode IDE에서 프로젝트를 여는 경우 작업 공간 설정에서 빌드 시스템을 "레거시 빌드 시스템"으로 변경해야합니다.


솔루션 --buildFlag="-UseModernBuildSystem=0"이나 레거시 빌드 시스템 설정 모두 저에게 효과가 없었습니다.

어떤 이유로 인해 cordova build 명령을 실행하기 전에 컴퓨터의 USB에서 iPad 또는 iPhone을 분리해야하는 경우에만 오류가 사라집니다.

내 구성에 대해 기발한 것일 수도 있지만 다른 사람에게 도움이 될 경우 공유 할 것이라고 생각했습니다.


Cordova iOS는 5.0.0 이후의 새로운 빌드 시스템을 지원합니다 ( 릴리스 정보 참조 ).

따라서 package.json을 "cordova-ios": "5.0.0"(또는 나중에) 업데이트 하고 npm install.

작동하려면 나중에 모든 것을 정리 (플랫폼, 플러그인, www 디렉토리 삭제)해야했습니다.


빌드 플래그에 항상 설정하지 않으려면 MyApp.xcworkspace를 열고 다음으로 이동하십시오.

Sidenote: Yes you need to do this all the time by adding the ios platform in cordova. (e.g. you removed and added again the ios platform)

File > Workspace settings > Choose for Build System: Legacy Build System

enter image description here


This also happens when you run cordova ios build --prod with a device connected to your mac. Unplug and try again.

ReferenceURL : https://stackoverflow.com/questions/52281848/cordova-build-ios-error-archive-not-found-at-path-path-to-myapp-xcarchive

반응형