2017-02-09 3 views
0

내가 현재 일하는 회사는 Swift 2.3으로 작성된 레거시 제품을 지원합니다 (동의하지 않습니다). 현재 그들은 레거시 버전을 지원하는 기능을 지속적으로 출시하고자하므로 현재 Swift 3.0으로 작성된 포드와 관련하여 구속력이 있습니다.Swift 3.0으로 작성된 모듈을 Swift 2.3으로 마이그레이션 하시겠습니까?

Xcode 7.3.1을 설치하여이 코드를 마이그레이션하면 Swift 2.3으로 다시 변환하려고 시도했습니다. 불운하게도 Swift 3.0으로 작성된 모듈이기 때문에 내 노력은 쓸데 없었습니다.

Swift 2.3의 모듈에 코드를 작성하는 것에 반대하지 않지만 필자는 제안이 없습니다.하지만 장기적으로 지루한 프로세스를 살펴볼 예정입니다. 가장 최근에 Swift 버전으로 작성된 모듈을 버전 2.3으로 이전하기 위해 수행해야 할 단계는 무엇입니까?

+0

액세스하려는 창에 Swift 2 용 이전 버전이 있습니까? 예를 들어 실수로 종속성을 설정하고 있던 프로젝트에서 Swift 2.3 용으로 설계된 Alamofire의 이전 버전을 실수로 사용했습니다. Podfile에 버전에 대한 일부 기존 코드를 복사했기 때문에 이전 버전의 AF가 있습니다. 이전 모듈이 존재한다면 여전히 액세스 할 수 있다고 생각합니다. – Pierce

+0

@ 피어스 아니, 그렇지 않아. 그것은 Swift 3.0으로 작성되었습니다. 나는 구 버전을 사용할 수있는 꼬투리를 찾으려고하지만이 포드는 전혀 사용하지 않는 것 같습니다. 나는 저장소의 제공자에게 연락을 취하고 Swift 2.3에 글을 써 주겠다고 제안했으나, 그 사람들에게는 실현 될 수 없을지도 모른다고 두렵습니다. + 나는 정말로 누구에게도 기대하지 않습니다. 나는 내가 할 수있는 프로젝트에서 중요한 요구 사항을 충족시킬 수있는 유일한 포드를 사용할 수 있기 때문에 가능한 한 최선의 방법으로 이러한 장애물을 극복하려고 노력하고 싶다. – Alex7

답변

2

먼저 Xcode 8을 사용하여이 작업을 수행 할 수 있습니다. 각 스키마를 선택한 다음 빌드 설정에서 '레거시 신속 버전 사용'을 예로 설정하십시오. 컴파일하고 실행하십시오. 스위프트는 많은 오류를 제시하기 시작할 것입니다. 예를 들어, (SWIFT 3)이 코드 :

SKAction.rotate(byAngle: CGFloat(M_PI_2), duration: 10) 

당신은 수동으로 신속 말한다 모든 오류를 수정해야 빠른 2의

SKAction.rotateByAngle: CGFloat(M_PI_2), duration: 10) 

, 그래서 당신은 명확한 이해가 필요합니다 오래된 신속한 구문.

+0

그래서 Swift 3.0 구문을 가진 pod에 앞서 언급 한 바와 같이 Swift 2.3에서 빌드 설정의 기존 버전에 대한 부울을 변경하고 각 개별 오류를 수정하려고 시도 할 수 있다고 말하고 있습니까? 그것은 확실하지만 가치가있는 지루한 과정이 될 것입니다. 감사! – Alex7

+1

그렇습니다. 기존의 신속한 지원을 원할 경우 – paper1111

+0

@ Alex7이 정답입니까? 그것이 맞다면 당신은 그것을 똑딱 거리게해야합니다 ... – paper1111

관련 문제