Xcode 스토리 보드 경고 : 현재 구성에서 구속 조건 참조 항목이 해제되었습니다. 현재 구성에서이 제한 조건을 끄십시오.


146

이 경고는 Xcode 6.1에서 발생합니다. 누구든지이 경고의 의미와 그 결과는 어떻습니까? 많은 감사합니다!

아래는 소스 코드에서 경고가 열린 스크린 샷입니다. "

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

경고를 유발하는 제약 조건을 찾는 방법은 무엇입니까? Xcode는 어떤 제약이 문제인지 알려주지 않습니다.

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


@ wumm 예, 응용 프로그램을 성공적으로 빌드하고 실행할 수 있습니다. 아직 잠재적 인 문제가 어떻게 든 발생할 수 있습니다. 아직 만나지 못했습니다.
Zhihao Yang

7
일반적으로이 문제는 다음으로 인해 발생합니다. 설치되지 않은 항목이 있지만 여전히 설치되어있는 제약 조건이 있습니다. 일반적으로 설치되지 않은 항목을 찾고 모든 제한 조건에 대해 설치되지 않은 항목으로 표시하십시오.
Fattie

@Fattie이 주된 이유로 허용 된 답변을 편집하십시오. 감사합니다
Milan Kamilya 2016 년

답변:


431

이 경고는 성가 시며 Xcode 6.1.1부터 발생합니다. 주요 문제는 경고를 클릭하여 참조 구속 조건을 쉽게 찾을 수 없다는 것입니다. 나는 이것이 버그라고 생각하고 조만간 수정 될 것입니다.

그러나 그 동안이 작은 해결 방법을 사용할 수 있습니다.

1 단계 : 성가신 경고 감지 😱

성가신 경고

2 단계 : 경고를 마우스 오른쪽 / Ctrl- 클릭하고 Reveal in Log😨

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

3 단계 : 다음 로그 스 니펫의 아름다움에 감탄하십시오.

... snip ...
/Devel/MyCrippledAppNG/MyCrippledApp/Main_iPad.storyboard:Dlb-cb-nWC: warning: Constraint referencing items turned off in current configuration. Turn off this constraint in the current configuration.
/Devel/MyCrippledAppNG/MyCrippledApp/Main_iPad.storyboard:6Ze-mO-v5N: warning: Constraint referencing items turned off in current configuration. Turn off this constraint in the current configuration.
/Devel/MyCrippledAppNG/MyCrippledApp/Main_iPad.storyboard:9av-xw-u1o: warning: Constraint referencing items turned off in current configuration. Turn off this constraint in the current configuration.
/Devel/MyCrippledAppNG/MyCrippledApp/Main_iPad.storyboard:RPt-Uf-vaZ: warning: Constraint referencing items turned off in current configuration. Turn off this constraint in the current configuration.
/Devel/MyCrippledAppNG/MyCrippledApp/Main_iPad.storyboard:Rnc-4M-7jV: warning: Constraint referencing items turned off in current configuration. Turn off this constraint in the current configuration.
/Devel/MyCrippledAppNG/MyCrippledApp/Main_iPad.storyboard:epJ-D9-KEF: warning: Constraint referencing items turned off in current configuration. Turn off this constraint in the current configuration.
/Devel/MyCrippledAppNG/MyCrippledApp/Main_iPad.storyboard:4HC-Gu-01w: warning: Constraint referencing items turned off in current configuration. Turn off this constraint in the current configuration.
... snip ...

흠 ...이게 뭐야 ...?

재미있는

4 단계 : 프로젝트 검색 창에이를 던져 보자 ... 😐

검색

😮 그렇습니다. 클릭하세요.

5 단계 : 😁 세상에! Apple이이 성가신 버그를 해결할 때까지 몇 분의 생산성을 더 즐기십시오. 😎

wheeee


2016 년 ...

  • 'Reveal in Log'로 얻을 수없는 경우 Report Navigator를 표시하십시오. (가장 왼쪽 열의 가장 오른쪽에있는 탭입니다.) 빌드 결과를 자세히 살펴보십시오. 제약 조건 ID를 포함한 빌드 로그가 표시됩니다. 예의 빌드

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

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

  • 2016 년 5 월 Xcode의 경우 Xcode를 종료했다가 다시 시작 하여이 경고를 지우는 경우가 있습니다.

  • 혼란스럽게도 관련이없는 문제 (Apple 버그이거나 오류 언어가 잘못 사용 된 것으로 나타남)로 인해 동일한 오류가 발생할 수 있습니다. IBInspectable항목 이 있고 Swift 파일에서 이름이 바뀌면 Xcode는 이전 이름의 UserDefinedRuntimeAttributes를 삭제 하지 않습니다 . "Identity Inspector"(오른쪽 패널의 항목 3)를 클릭하고 더 이상 항목을 삭제하십시오.

2017 년 ...

  • 또 다른 일반적이고 더 간단한 문제의 원인입니다. 아이템 을 언인스톨 한 경우 : 작성 당시 Xcode 는 그 아이템으로 이어지는 제한을 자동으로 제거한다는 것을 알지 못합니다 . 간단히 말해서, 설치되지 않은 항목을보고 모든 제한 사항에 대해서는 설치되지 않은 것으로 표시하십시오. 또는 단순히 설치되지 않은 항목을 일시적으로 삭제하여 문제가 있는지 확인할 수도 있습니다.

28
그 설명은 훌륭했습니다. 감사합니다!
thomasmalt

7
주의 가장 좋아하는 답변 :) 그리고 매우 유용합니다. 감사!
시간

5
나는 지금부터 답변에 이모티콘이 필요하다고 생각합니다.
James Webster

3
내 경우와 같이 로그에 표시가 회색으로 표시되면 어떻게합니까?
bakalolo

6
- 마우스 오른쪽 클릭> 로그 공개 : 나는 심판으로 이것을 사용하여 로그를 열 수 있도록 아무것도 없었다 stackoverflow.com/questions/19014359/...
terrigenus

39

스토리 보드에서보기를 비활성화했지만 해당보기를 기반으로 구속 조건을 비활성화하지 않은 경우이 메시지가 트리거됩니다.

예를 들어, 버튼을 비활성화했지만 여전히 해당 버튼에 연결된 구속 조건이 있습니다. 높이나 너비와 같은 고유 구속 조건이거나 다른 뷰로부터의 거리와 같은 상대 구속 조건 일 수 있습니다.

뷰를 참조하는 각 구속 조건을 해제해야하며 수동으로 수행해야합니다. Xcode는 여기에서 지나치게 보수적이며 당신을 위해하지 않을 것입니다.


4
당신의 답변에 감사드립니다! "비활성보기"란 무엇입니까? 버튼과 같은 뷰를 삭제해야합니까? 그러나 이미 삭제했기 때문에 제약 조건도 삭제되어 찾을 수 없습니까? 그리고 더 자세하게 "제약을 끄는"방법을 선택하고 삭제하는 방법은 무엇입니까? 대단히 감사합니다!
Zhihao Yang

2
현재 크기 클래스에 대해 Interface Builder에서보기가 "설치됨"으로 표시되지 않으면 비활성화됩니다.
DivideByZer0

스토리 보드에 많은 ViewController가 있습니다. ¿ 서브 뷰가 설치되지 않은 것을 어떻게 알 수 있습니까?
jobima

경고를 마우스 오른쪽 버튼으로 클릭하고 "소스 코드"옵션을 선택할 수 있습니다. 존경하는 뷰 컨트롤러에서 해당 뷰의 계층 구조를 명확하게 볼 수 있습니다.
ZaEeM ZaFaR

15

이 솔루션은 저에게 효과적입니다.

Xcode 5에서 개발 한 프로젝트에서 Xcode 6으로 여러 항목을 복사하고 Xcode 6의 스토리 보드는 여러 레이아웃을 지원하므로 모든 제약 조건에 따라 현재 구성에 설치해야합니다.

예를 들어, 다음과 같이 설정해야하는 구속 조건에 대해 "Compact Width | Regular Height"를 사용하고 있습니다.

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

프로젝트에서 수백 가지 제약 조건을 모두 확인하고 설정하고 정리하고 빌드하면 경고가 사라집니다.


1
Installed뷰 객체 속성에 성가신 확인란 도 있습니다 . 따라서 표시되고 있다고 생각되는보기 객체 에 올바른 확인란이 선택되어 있는지 확인하십시오. 에 일부 개체가 표시되지 않는다는 경고가 표시됩니다 current configuration.
Matt

이것은 나를 위해 일했다. XCode는 12 또는 13 개의 경고가 있다고 말했지만 그 중 하나에 대한 로그를 살펴보면 적어도 100 개가 있음을 알았습니다. 따라서 각 제한에 대해 wChR을 추가 한 다음 일반 'Installed'를 선택 취소했습니다. 경고가 사라졌습니다!
Andreas

아, 언급하는 것을 잊었다. 나는 당신이 실제로 동시에 여러 개의 구속 조건을 선택함으로써이 과정을 한 번에 수행 할 수 있다는 것을 반쯤 알았습니다.
Andreas

8

이 오류가 어떻게 발생했는지 내 사례를 추가하고 싶었습니다. 제 경우에는 "Cmd + Backspace"로 텍스트 필드를 삭제하고 싶었습니다. Scene-Builder Tree-View에서 직접 수행했습니다.

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

스누즈 필드가 회색으로 표시됩니다.

그래서 그것은 나를 위해 쉽게 발견되었습니다. 단순히 다음을 선택하여 필드를 실제로 삭제할 수 있습니다.

메뉴에서 편집-삭제

놀랍게도-실제로 필드를 삭제합니다 (제약 조건 포함). 어쩌면 이것은 누군가이 성가신 경고의 원인을 쉽게 찾는 데 도움이 될 것입니다 ...


이것은 실제로 질문에 대답하지 않습니다. 다른 질문이 있으면 질문하기를 클릭하여 질문 할 수 있습니다 . 당신은 또한 수 있습니다 현상금을 추가 충분한 일단이 문제에 더 많은 관심을 끌기 위해 명성을 . - 리뷰에서
Martin Evans

3
이것은 묻는 질문을 수정할 수있는 또 다른 방법입니다. 그래서 다른 사람들을 돕기 위해 이것을 추가하고 싶었습니다 ...
Dirk

감사합니다, 매우 도움이
아메드 Elashker

이에 따라 문제를 찾고 수정하는 방법이 좁혀졌습니다. 그것은 나를 위해 일했다!
랜스 사마리아

6

확장 설명

다른 답변에는 아무런 문제가 없습니다. 원래 경고문구 에 주의를 기울이고 워크 플로우에 나타날 수있는 몇 가지 사용 사례를 식별하고 싶었 습니다.

제약 경고

현재 구성에서 구속 조건 참조 항목이 해제되었습니다.

하나 이상의 제약 조건에서 참조되는 일부 항목 (일반적으로 일반적으로 표시되는 컨트롤 또는 사용자 지정보기)이 해제되어 있거나 비활성화되어 있거나 "설치된"확인란이 선택되어 있지 않음을 의미합니다. 예를 들어 스토리 보드에서 컨트롤 또는 뷰를 메인 뷰 외부로 이동하기로 결정한 경우 (또는 크기 클래스에서 흥미로운 작업을 수행 할 때 가끔 표시 될 수 있음) 컨트롤에 제약 조건이있는 경우이 경고가 표시 될 수 있습니다 .

제거 제어

권장 솔루션과 함께 :

현재 구성에서이 제한 조건을 끄십시오.

해결해야 할 두 가지 접근법

문서 개요

시각적으로 스토리 보드에서 문서 개요를 열고 기본보기 외부에있는 제어 /보기를 참조하는 회색으로 표시된 제약 조건을 찾을 수 있습니다 (개요를 넓히고 제약 조건을 클릭하고 속성 관리자를보고 마우스를 아래로 빠르게 검토). . 그런 다음이 컨텍스트 (크기 클래스)에서 제한 조건을 제거하십시오. 예를 들어, 필자의 경우 나중에 표시 할 위치를 결정할 때까지 컨트롤을 잡고 있으므로 나중에 문제가되는 제약 조건을 완전히 삭제하기로 결정했습니다. 그러나 크기 클래스에서는 속성 관리자의 설치된 확인란을 사용하여 현재 컨텍스트에서 제약 조건을 제거합니다.

로그 탐색기 / 찾기 도구

스토리 보드의 각 개체에 지정된 고유 식별자를 통해 문제 제어를 찾기 위해 Log Navigator를 계속 사용할 수도 있습니다. 로그에서 노란색으로 강조 표시된 텍스트 바로 앞에 있으며 위의 예에서 볼 수 있듯이 일반적으로 jvj-mY-DHf 양식을 사용합니다.

그런 다음 식별자를 사용하여 Xcode의 찾기 도구를 사용하여 문제가되는 제약 조건을 찾아 삭제 (완전히)하거나 제거 할 수 있습니다 (현재 컨텍스트의 경우).

로그 탐색기

Xml과 단순성을 좋아한다면 Storyboard를 소스 코드로 열고 문제가되는 고유 식별자를 찾아 적절한 xml 블록을 삭제하십시오.


1

이 문제가 발생할 수있는 이유 중 하나는 제약 조건과 호환되지 않는 크기 클래스를 선택했기 때문입니다 ( wAny hAny일반적인 경우). 이 경우 Interface Builder에서 다른 크기 클래스를 선택하면됩니다.


1

나를 위해, "여백에 대한 제한"옵션이 선택되지 않은 상태에서 객체를 (보기가 아닌) 객체에 대한 새로운 제약 조건을 설정하면 발생합니다. 옵션을 선택하면 문제가 해결됩니다 (기본값).


1

나를 위해 일한 것은 (그리고 이유를 모릅니다) "특성 변형 사용"을 끈 다음 깨끗하게 수행 한 다음 다시 켜는 것입니다. 다음 빌드에는 경고가 없었습니다.

"특성 변형 사용"을 끄려면 프로젝트 탐색기에서 스토리 보드를 선택한 다음 파일 검사기를 선택하면됩니다.

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

그런 다음 "특성 변형 사용"을 선택 해제하고 Shift-CMD K를 눌러 정리 한 다음 특성 변형을 다시 사용하려면 다시 켜십시오.

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


나는 이것이 "올바른"것이라고 생각하지 않지만 (제약이 사라짐),이 스위치로 바이올린을 타 자마자 변경 사항을 마지막 커밋으로 되 돌리면 Xcode가 이전 / 잘못된 내용을 멋지게 업데이트하기 때문에이 답변이 도움이되었습니다. / 이런 종류의 경고를 이미 수정했습니다. Xcode는 오래되고 이미 수정 된 경고를 실제로 많이 보여줍니다 .Xcode를 다시 시작하면 정상적으로 도움이되지 않습니다. 마지막 커밋으로 스위치 + 복원을 뒤집 으면 이런 종류의 다음 "실제"경고가 표시됩니다. 클릭하면 IB에서 문제가되는 제약 조건이 자동으로 선택됩니다.
Jonny

0

다른 답변으로 인해 지속되는 제약이라고 생각했지만 이전에 삭제 한 항목에 대해 여전히 '출구'로 인한 것입니다. 해야 할 일은 :

  1. ViewController를 선택하십시오
  2. 오른쪽 상단의 '아울렛'아이콘을 클릭하십시오
  3. 아울렛을 살펴보고 필요없는 것을 조심스럽게 삭제하십시오

최악의 시나리오는 모든 콘센트를 삭제하고 다시 연결하는 것입니다. 사건 해결!


0

@BadCat의 답변 에서 언급되고 잘 안내 된 것처럼 단계를 따라 갔고 감히 감수해야 할 단계가 하나 더 있습니다!

BadCats의 마지막 단계 이후에 수행 할 단계 :

1 단계:

Interface Builder에서 제약 조건을 선택한 다음 그 제약 조건을 염두에두고 삭제했습니다.

2 단계

XCode 프로젝트를 빌드하면 경고 수가 증가했을 수 있습니다. 잘 컴파일해야하는 제약 조건을 삭제했기 때문입니다. 3 단계로 가십시오!

3 단계

염두에 둔 구속 조건 (삭제 한 구속 조건)을 다시 추가하십시오. 그런 다음 다시 빌드하십시오!

나를 위해 경고를 수행하면 경고가 사라졌습니다! 나는 이것이 일부 사람들에게 효과적이라고 생각합니다!

원인:

이 경고의 원인이되는 문제를 이해할 수 있었기 때문에 레이블이 IBOutlet에 연결되었지만 이름이 대문자로 시작되었습니다. 그래서 ViewController에서 간단한 문자로 이름을 바꾸고 IB에서 이름을 변경했습니다. 과거 IBOutlet을 제거하고 새로 이름을 바꾼 속성 이름에 연결하여 연결했습니다. 그런 다음 새로운 경고가 나타났습니다.

먼저이 스레드에서 다음 답변을 시도했지만 도움이되지 않았습니다!

건배!


0

내 경우는 레이블을 선택한 다음 control + X를 클릭하면 비활성화되지만 아무 것도하지 않습니다. 빌드하면 경고가 표시됩니다. 해결 방법 : 레이블을 제거하거나 선택한 컨트롤 + 레이블을 제거하십시오.


0

제약 조건을 포함한 모든 UI 요소를 삭제하고 다시 추가하면 경고가 사라집니다. 어쨌든 이것은 이것을 해결하는 최악의하지만 유용한 방법입니다.


0

스택보기에서 문제가있었습니다. 제약 조건을 삭제하고 다시 추가해도 도움이되지 않았습니다. 청소와 재건은 도움이되지 않았습니다.

나에게 해결책은 완전히 새로운 스택 뷰 객체를 만드는 것이 었습니다.

그런 다음 모든 요소를 ​​이전 스택보기에서 새 스택보기로 이동하십시오.

기존 스택 뷰를 삭제하면 문제가 해결되었습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.