Xcode 10 과 아이 폰 XS Max,아이 폰 XR 에 어 울 리 는 방법 지원
4604 단어 Xcode10어울리다iPhoneXSMaxiPhoneXR
현재 저희 프로젝트 는 Xcode 10(swift 4.0)과 새로운 기종 의 적합 을 만 들 었 습 니 다.문제 와 수정 내용 을 정리 하고 다른 사람 에 게 도움 을 주 십시오.만약 에 다른 견해 나 누락 이 있다 면 지적 해 주 십시오!
1.제3자 라 이브 러 리 컴 파일 오류
프로젝트 에 Mixpanel-swift 와 Swift Lint 가 사용 되 었 다 면 이 두 가 지 는 Xcode 10 에서 오 류 를 보고 할 수 있 습 니 다.현재 저 자 는 새로운 버 전 을 각각 2.4.5 와 0.27.0 으로 제출 했 습 니 다.업데이트 후 오 류 를 해결 할 수 있 습 니 다.
2.library not found for - lstdc++.6.0.9
pod 프로젝트 컴 파일 이 통 과 된 후 메 인 프로젝트 의 컴 파일 을 진행 합 니 다.libstdc+tbd 와 libstdc++.6.0.9.tbd 에 의존 하면 이 error 를 보고 합 니 다.이 이 유 는 애플 이 XCode 10 과 iOS 12 에서 libstdc++라 이브 러 리 를 제외 하고 libc+라 이브 러 리 에서 대 체 했 기 때 문 입 니 다.애플 의 설명 은 libstdc++가 폐 기 된 지 5 년 이 되 었 기 때 문 입 니 다.llvm 최 적 화 를 거 쳐 C++11 을 전면적으로 지원 하 는 libc++라 이브 러 리 를 사용 하 는 것 을 권장 합 니 다.
임시 적 인 해결 방법 은 libstdc++6.0.9.tbd 라 는 파일 을 Xcode 10 에 가 져 와 다음 디 렉 터 리/applications/Xcode.app/contents/developer/platforms/iPhone OS.platform/developer/SDKs/iPhone OS.sdk/usr/lib/ 그리고/Applications/Xcode.app/Contents/developer/Platforms/iPhone Simulator.platform/developer/SDKs/iPhone Simulator.sdk/usr/lib/ 이때 컴 파일 은 통과 할 수 있다.
그러나 이것 은 임시 적 인 해결 방안 일 뿐 입 니 다.만약 에 자신의 업무 모듈 이 libstdc++를 사용 했다 면 모듈 코드 를 libc+에 의존 하 는 것 으로 재 조정 한 다음 에 문제 가 있 는 지 다시 확인 하고 다시 컴 파일 합 니 다.만약 당신 이 인용 한 제3자 업 체 가 제공 하 는 sdk 에서 libstdc++에 의존 했다 면 업 체 에 연락 하여 버 전 업 그 레이 드 를 요구 합 니 다.
3.Enum case '...' not found in type '...'
위의 두 개의 오 류 를 해결 하고 컴 파일 러 에 이 error 가 표 시 됩 니 다.구체 적 인 장면 은 다음 과 같 습 니 다.
PosVisitQuestionType: String {
case text
case textArea = "text_area"
case dropDownList = "drop_down_list"
case radioButton = "radio_button"
}
let type: PosVisitQuestionType!
...
switch type {
case .text, .textArea:
errorText = NSLocalizedString("Please enter the following options", comment: "")
case .dropDownList, .radioButton:
errorText = NSLocalizedString("Click the right button to get current location", comment: "")
default:
break
}
Xcode 10 은 케이스 마다"?"를 추가 하 는 것 을 권장 합 니 다.이 유 는 type 이 선택 할 수 있 기 때문에 모든 case 상황 은 type 유형 과 일치 해 야 하기 때문에 힌트 는"?"를 추가 합 니 다.Xcode 10 컴 파일 러 가 업 데 이 트 된 이유 일 수도 있 습 니 다.
수정 하 는 방법 은 type 이 할당 되 는 것 을 확인 하면 정의 할 때"!"제거,type 에 값 이 있 는 지 확인 되 지 않 으 면 Xcode 알림 에 따라 수정 합 니 다.
4.아이 폰 XS Max,아이 폰 XR 에 적합
저희 프로젝트 는 기종 등 정 보 를 얻 기 위해 DeviceKit 라 는 제3자 라 이브 러 리 를 사용 하기 때문에 업 데 이 트 를 해 야 새로운 기종 의 정 보 를 얻 을 수 있 습 니 다.최신 판 은 1.8.1 입 니 다.최신 판 에 이런 변수 가 있 습 니 다.
/// All Face ID Capable Devices
static public var allFaceIDCapableDevices: [Device] {
return [.iPhoneX, .iPhoneXs, .iPhoneXsMax, .iPhoneXr]
}
아이 폰 X,아이 폰 XS,아이 폰 XS 맥 스,아이 폰 XR 등 모델 의 네 비게 이 션 바 높이 와 tabBar 높이 가 일치 하기 때문에 현재 기기 에'앞머리 맞 추기'가 있 는 지 를 allFaceidCapableDevices 로 판단 할 수 있다.예시:
static let faceIDDeviceArray = Device.allFaceIDCapableDevices
static let navigationHeight: CGFloat = {
if faceIDDeviceArray.contains(currentDevice) {
return faceIDDeviceNavHeight
} else {
return ordinaryDeviceNavHeight
}
}()
또한 DeviceKit 에서 도 이러한 방법 을 제공 합 니 다.시 뮬 레이 터 를 실행 할 때 호출 되 고 실제 장치 이름 으로 돌아 갑 니 다.
/// Get the real device from a device. If the device is a an iPhone8Plus simulator this function returns .iPhone8Plus (the real device).
/// If the parameter is a real device, this function returns just that passed parameter.
///
/// - parameter device: A device.
///
/// - returns: the underlying device If the `device` is a `simulator`,
/// otherwise return the `device`.
public static func realDevice(from device: DeviceKit.Device) -> DeviceKit.Device
예시:
static let currentDevice = Device.realDevice(from: Device())
if currentDevice == .iPhoneX {}
//
if Device() == .iPhoneX || Device() == .simulator(.iPhoneX) {}
마지막 으로 시동 그림 두 장 을 더 자 르 는 것 을 잊 지 마 세 요.아이 폰 XS 와 사 이 즈 는 아이 폰 X 와 같 기 때문에 아이 폰 XS 는 무시 할 수 있 습 니 다.iPhone XR:828px x 1792px
iPhone XS Max: 1242px x 2688px
이상 은 이 글 의 전체 내용 입 니 다.본 논문 의 내용 이 여러분 의 학습 이나 업무 에 어느 정도 참고 학습 가치 가 있 기 를 바 랍 니 다.궁금 한 점 이 있 으 시 면 댓 글 을 남 겨 주 셔 서 저희 에 대한 지지 에 감 사 드 립 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Firebase 설정 파일을 환경별 (DEV/STG/PRO)로 나누고 싶은 사람타이틀에 모두 써 버렸지만, Firebase나 API의 접속처등을 DEV/STG/PRO 환경에서 따로따로 하고 싶었으므로 조사한 메모 이번에 이런 형태로 나눌 수 있도록 설정 이 손의 설정은 빙글빙글 오래된 기사가 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.