AFNetworking 코드로 들어 가려고하면 다음 경고가 생성됩니다.
[Project Name] was compiled with optimization - stepping may behave oddly; variables may not be available.
물론 코드를 디버깅 할 수 없습니다. 구체적으로 말하면 UIImageView+AFNetworking
불가능한 범주 를 디버깅하려고합니다 . 코드를 변경해도 아무런 영향을 미치지 않으며 (시도 NSLog
등) 컴파일러에서 단계를 시도 할 때 어셈블리 코드로 이동 UIImageView+TVASTAFNetworking
하여 코드베이스에 존재하지 않는 카테고리 이름으로 표시 됩니다.
Xcode 7. iOS 9 & 8 사용. Cocoapods (프레임 워크 없음)
업데이트
최적화 프로그램이 none
릴리스 및 디버그 구성 모두 에 대해 설정되어 있으며 실제로 Debug
config를 사용하고 있음을 언급하지 않았습니다.
업데이트 2
Strip Debug Symbols
꺼져 있습니다.
답변
프로젝트에서 Swift를 사용하는 경우 프로젝트 / 대상 구성에 두 개의 “최적화 수준”설정이 있습니다.
둘 다 올바르게 설정했는지 확인하십시오.
- 프로젝트 네비게이터 분할 창에서 프로젝트를 선택하십시오.
- “PROJECT”트리에서 프로젝트 설정을 선택하십시오
- “빌드 설정”탭을 클릭하십시오
- “최적화 수준”을 검색하면 LLVM과 빠른 설정의 두 가지 설정이 표시됩니다.
- 해당 빌드 구성에 대한 적절한 설정 (
None [-O0]
LLVM 및None [-0none]
Swift)을 설정하십시오.
이렇게하면 경고가 해결되었습니다.
답변
프로젝트가 릴리스 모드 인 것 같습니다. 릴리스 모드는 많은 최적화로 앱을 컴파일하지만 디버거는 최적화를 싫어하므로 앱을 안정적으로 디버깅하려면 최적화를 줄이고 디버그 정보를 추가하는 디버그 모드로 전환해야합니다. 디버그 모드로 전환하려면 :
- Xcode의 왼쪽 상단에서 구성표를 클릭하십시오.
- “구성표 편집 …”을 선택하십시오.
- “빌드 구성”드롭 다운을 클릭하십시오. 디버그 모드로 변경하십시오.
답변
이 경고는 중단 점에 도달하고 소스가 최적화가 활성화 된 프로젝트에있는 경우에만 나타나 실제 변수 값을 볼 수 없습니다 (모든 오브젝트가없는 경우에도 nil로 표시됨)
필자의 경우 Cocoapod 종속성을 단계별로 디버깅 할 때만 발생했습니다.
따라서 기본 대상 및 프로젝트 설정이 올바르게 설정되어 있어도 (Strip Debug Symbol = OFF 및 최적화 수준 없음), Pod 프로젝트에서 중단 점에 도달 한 것과 동일해야합니다.
답변
이전 프로젝트 (Xcode 7.x +)를 새로운 Xcode 8.3 (8E162)으로 가져온 후 아마도 컴파일러 최적화로 인해 Swift Compiler-Optimization Level 이 기본적으로 Fast, Single-File Optimization 으로 설정되었습니다 .
없음으로 변경하면 문제가 해결되었습니다.
답변
답변
이것은 나를위한 해결책이었습니다 …
gimino의 대답을 따라 cocoapod를 사용하는 경우 Podfile에 다음과 같은 줄을 추가하십시오.
xcodeproj 'MyProject', 'Debug - local'=>:debug, 'Debug - staging'=>:debug, 'Debug - PRODUCTION'=>:debug
또는 cocoapods 버전이 1.0보다 큰 경우 (Dijmon 덕분에)
project 'MyProject', 'Debug - local'=>:debug, 'Debug - staging'=>:debug, 'Debug - PRODUCTION'=>:debug
MyProject에는 표준 ‘Debug’외에도 디버그 구성으로 ‘Debug-local’, ‘Debug-staging’, ‘Debug-PRODUCTION’이 있습니다.
기본적으로 cocoapod는 일반적으로 Pod 구성을 Release로 생성합니다.이 Podfile 행을 사용하면 디버그 구성을 알 수 있습니다.