IT Share you

WatchKit 앱에는 iOS 8.2 (기존 8.3)와 동일한 배포 대상이 있어야합니까?

shareyou 2020. 11. 16. 23:14
반응형

WatchKit 앱에는 iOS 8.2 (기존 8.3)와 동일한 배포 대상이 있어야합니까?


방금 Xcode 6.3 베타 4를 다운로드했는데 이제 WatchKit 앱이 오류와 함께 빌드에 실패합니다.

Embedded Binary Validation Utility Error
error: WatchKit apps must have a deployment target equal to iOS 8.2 (was 8.3)

iOS 앱과 프로젝트는 실제로 7.1의 배포 대상을 가지고 있으며 항상 그렇습니다. 그러나 우리는 Xcode 6.3 베타 1, 2 및 3을 사용하여 문제없이 WatchKit 구성 요소 (Swift 1.2 사용) 용 iOS 8.3 SDK로 작업 해 왔습니다. Xcode 6.3 베타 4에서만 오류가 발생했습니다.

다른 사람이이 오류를 가지고 있으며 해결 방법을 알고 있습니까?


프로젝트 설정을 선택하고 "TARGETS"로 이동하십시오. Watch Kit 앱을 클릭하고 빌드 설정을 선택합니다. 키 "iOS 배포 대상"의 경우 "iOS 8.3"을 찾아야합니다. 어떤 이유로 Xcode 6.3 베타 4는 "디버그"와 "릴리즈"를 위해 "iOS 8.2"에서 이것을 갖고 싶어합니다. 이제 프로젝트가 예상대로 빌드되어야합니다.

이것은 XCODE 6.3 릴리스에서도 마찬가지입니다!


대상-> "appName"Watch Kit 앱-> 배포 검색-> iOS 8.2에서 iOS 배포 대상 변경-> 실행 여기에 이미지 설명 입력


직접이 문제를 해결했습니다. Xcode 6.3 베타 4의 버그처럼 보입니다.

project.pbxprojWatchKit 확장자를 사용하여 새로 생성 된 프로젝트 파일 (텍스트보기)을 분석했습니다 . 설정이있는 것 같습니다.

IPHONEOS_DEPLOYMENT_TARGET = 8.2;

... 이전 Xcode 버전으로 만든 프로젝트에서는 누락되었습니다.

그래서이 설정을 프로젝트의 디버그 및 릴리스 구성에 수동으로 복사했습니다. 이 오류는 사라졌습니다.

그런 다음 내 앱과 WatchKit 앱 대상 간의 버전 불일치에 대한 또 다른 오류가 발생했습니다. 이 버전 불일치를 수정하면 빌드가 깔끔하게 컴파일되고 정상적으로 실행됩니다.

나는 이것이 약간 해키하다는 것을 알고 있지만 상대적으로 안전하다고 생각합니다.

project.pbxproj 파일을 검색 할 때 다음 검색어와 일치 시키려고합니다 "_WatchKit_Extension".. 이렇게하면 새 지침이 추가되어야하는 근처의 영역이 식별되어야합니다.

Apple 포럼의 토론 스레드 :

https://devforums.apple.com/thread/266033?tstart=0

새로운 프로젝트에서 발췌 :

4F9F32751AC2024F00673D86 /* Debug */ = {
            isa = XCBuildConfiguration;
            buildSettings = {
                ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
                GCC_PREPROCESSOR_DEFINITIONS = (
                    "DEBUG=1",
                    "$(inherited)",
                );
                IBSC_MODULE = Bogus_WatchKit_Extension;
                INFOPLIST_FILE = "Bogus WatchKit App/Info.plist";
                IPHONEOS_DEPLOYMENT_TARGET = 8.2;
                PRODUCT_NAME = "$(TARGET_NAME)";
                SKIP_INSTALL = YES;
                TARGETED_DEVICE_FAMILY = 4;
                "TARGETED_DEVICE_FAMILY[sdk=iphonesimulator*]" = "1,4";
            };
            name = Debug;
        };
        4F9F32761AC2024F00673D86 /* Release */ = {
            isa = XCBuildConfiguration;
            buildSettings = {
                ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
                IBSC_MODULE = Bogus_WatchKit_Extension;
                INFOPLIST_FILE = "Bogus WatchKit App/Info.plist";
                IPHONEOS_DEPLOYMENT_TARGET = 8.2;
                PRODUCT_NAME = "$(TARGET_NAME)";
                SKIP_INSTALL = YES;
                TARGETED_DEVICE_FAMILY = 4;
                "TARGETED_DEVICE_FAMILY[sdk=iphonesimulator*]" = "1,4";
            };
            name = Release;
        };

놀랍게도 6.4에서 여전히 사실입니다 ;-)

모든 목표는 8.2로 설정되어야합니다.


나는 같은 문제에 직면했다 " iOS Deployment Target '8.3' is newer thatn SDK 'iOS 8.2' in target YUOR_PROJECT WatchKit Extension"

다음은이 문제에 대한 간단한 해결책입니다. .xcodeproj에서 대상을 변경할 수 있습니다. 아래 단계를 따르십시오.

  1. 프로젝트 또는 plist 파일을 변경하십시오 (빌드 / 버전 변경).
  2. 수정 된 프로젝트 파일 선택
  3. '8.3'(Command + F)을 찾아 8.2로 바꿉니다.
  4. 참고로 파일을 첨부했습니다.

그게 다야.

나와 같은 문제가 있으면 도움이 될 것입니다.

여기에 이미지 설명 입력


Target-> Select Watch Kit App, Under deployment change value from 8.3 to

// : configuration = 디버그 IPHONEOS_DEPLOYMENT_TARGET = 8.2

// : configuration = 릴리스 IPHONEOS_DEPLOYMENT_TARGET = 8.2

청소하고 구축하십시오. 문제 해결됨!


Xcode 7.3.1의 시뮬레이터에서 동일한 문제를 경험했으며 App으로 이동 한 다음 Watch OS 배포 대상으로 이동하여 시계를 기반으로 더 낮은 버전을 선택할 수 있습니다.

참고 URL : https://stackoverflow.com/questions/29242067/watchkit-apps-must-have-a-deployment-target-equal-to-ios-8-2-was-8-3

반응형