본문 바로가기
연구하기/iOS App Dev

iOS 7.1 + iOS7.1 SDK + Xcode 5.1 달라진 점

by 썰렁황제 2014. 3. 13.

iOS 7.1SDK + Xcode 5.1 달라진 점


상당히 중대한 변경점들이 좀 있는데요. Beta 받아 쓰면서 좀 체크했어야 했는데, 빈둥대다가 이제사 정리중이네요.

잘못되거나 수정해야 할 내용 있으면 말씀 주시고, 새로 발견한 내용 있으면 계속 추가해 보도록 하겠습니다.


1. 프로젝트 마이그레이션 후 Embedded Project 내의 Treat Warnings as Errors 기본값이 YES 로 변경되어 있음.

1. 이전에 문제 없었는데 이번에 Warning 이 발목 잡는다면 NO 로 끄셔도 됩니다. 다만 코드 레벨에서 무슨 문제가 있을지에 대해서는 상황에 따라 다르니 직접 판단하셔야 할 듯.

2. 프로젝트 마이그레이션 후 시뮬레이터는 상관없으나 기기에서 빌드 시 아래와 같은 문제 발생

1. id 에 대해 명시적인 선언 후 메소드 및 프로퍼티 호출 가능. 그 전에는 오류 발생.

1. 대표적으로 IBAction 으로 전달받은 (id)sender 는, 그대로 메소드를 호출할 경우 에러 발생. 반드시 명시적 개체로의 할당이 필요 (예를 들면 UIView *target = sender; 등으로)

2. 이 문제도 아마 프로젝트 내의 특정 속성 바꾸는 것으로 해결이 될 거라 보이지만 일단 기록해 둡니다. 일단 저렇게 바뀌었다면 앞으로는 명시적으로 쓰는 방향으로 코딩하는 게 좋겠죠.

2. isa 속성에 직접 할당 불가. object_setClass 함수 활용하여 할당해야 함

1. 이 부분은 Xcode 에서 다행히도 친절히 알려주고 예시코드를 제공해 준다. 다만 어느 정도까지 적합하게 변형해주는지는 역시 상황마다 다르니 코드 보고 직접 판단해야... 일단 단순할당은 잘 되는 듯. 

3. 이제 빌드 아키텍처에 arm64 가 기본값으로 설정된다.

1. 자신이 소스를 모두 가진 경우에는 별 문제 없지만, 외부 라이브러리를 쓴다면 치명적인 문제. 왜냐하면, 라이브러리로 쓰고 있는 .a 파일들 안에 기존 라이브러리들은 arm64 코드가 존재하지 않기 때문. 따라서 컴파일이 불가능하게 된다.

2. http://stackoverflow.com/questions/22323039/arm64-architecture-in-xcode-5-1 링크의 두 번째 답변 참조. Architecture 및 Valid Architecture 에서 모두 arm64 항목을 제거한다. (또는 역시 링크에 언급된 대로 $(ARCHS_STANDARD_32_BIT) 를 사용)

3. 당연하지만, 애플이 이렇게 설정했다는 소리는 앞으로 무조건 arm64 를 지원하라는 일종의 압박이므로, arm64 대응이 가능하다면 가급적 빨리 대응하는 것이 좋을 듯.

3. iOS 7.1 에서, adhoc 웹 배포시 https:// 링크로 배포되지 않은 배포 링크는 모두 접근하지 못한다. 반드시 https:// 링크로 배포 및 이에 따른 정상적인 인증서가 존재해야 한다.

1. iOS 7.1 에서 발생하는 문제이므로, iOS 7.1 SDK 로 빌드한 패키지와는 아무 관련 없고, 그냥 해당 기기가 iOS 7.1 로 업드레이되어 있다면 다 문제가 발생한다. 패키지 레벨의 문제가 아니라 URL 과 설정값들을 http:// 에서 접근할 수 없는 문제이기 때문에...

2. 관련 항목은 http://stackoverflow.com/questions/20276907/enterprise-app-deployment-doesnt-work-on-ios-7-1 참고. 이 문제를 비교적 간단히 해결하기 위해 드랍박스를 사용한 https:// 사용 방법이 존재.

3. 설정 > 사파리 또는 설정 > 개발자 에서 어떻게 할 수 있는 방법이 있지 않을까 찾아보고 있는 중이지만, 아직까지는 발견하지 못함.



반응형