ios 7.0 , xcode 5.02 기준 작업
2014.1.22.수.16:00
LinkedIn의 경우는 자체 ios SDK 가 없으며, Web Base 의 Api만 제공해준다. (2014.1.22.수 기준)
그렇기 때문에 직접적으로 ios에 사용할 수는 없으며, 다른 OpenSource의 ios SDK 를 사용해야 할 것같다.
우선 첫 Sample Project & ios Open Source 를 찾았다.!!
Sample Project Name : OAuth1Sample
KinveyKit.framework 와 libUairShip-1.4.0.a 를 링크하여 사용하는 셈플이었다.
url : http://devcenter.kinvey.com/ios/samples
셈플자체는 동작이 잘 된다.
하지만 이 셈플 프로젝트의 SDK 들을 내 App 에 추가하려니 문제가 생긴다.
Linker command failed with exit code 1
갑갑한 Link Error 가 생긴다.
Link Error의 문제점
1. framework 가 없는 경우
셈플프로젝트와 framework 확인정도?
2. 타겟 App 문제
타겟 잡혀있나 확인
3. Library Version 문제
검색중..
4. Xcode 자체적 버그
해결 불능..ㅠㅠ
2014.1.23.목.11:46
libUairShip-1.4.0.a 의 버젼은 최신버젼이 3.0.0 까지 있다.
libUairShip 최신버젼을 셈플 코드에 이식해 보았으나, 셈플 코드의 KinveyKit.framework 에서 에러가 떨어진다.
즉, 위의 셈플 코드에서 사용하는 KinveyKit.framework에서 libUairShip-1.4.0 버젼에서만 사용하는 클래스를 사용하는 듯 하다;;
그리고 Link Error 가 나는 이유는.. libUairShip-1.4.0 버젼에서 사용하는 클래스들과, xcode 5.02 에서 사용하는 framework가 달라서 나는게 아닐까?
추측중.. 그럼 어쩌냐;;;
우선 셈플을 다른걸 찾아봐야하나??
14:04
인터넷을 뒤적뒤적이다가 kinveyKit.framework 의 최신버젼을 찾음! - (Ver. 1.25)
기존 셈플에서 사용한 KinveyKit 버젼이 몇버젼인지 모르겟으나 framework 용량이 두배차이!!
그러면, 버젼차이가 많이나서 코드도 완전 다를라나???ㅠ
암튼 우선 프레임 워크 이식... libuairship 없이 이식, & libuairship 3.0.0 과 함께 이식 시도 해볼것!! 우선 셈플에!!
url : http://www.kinvey.com/
- web service 를 위한 sdk 로 보여짐..
15:00
결국 현재상태에서의 문제는 libUairShip-1.4.0.a 를 사용해야 하는데 내 App에 이 아카이브를 추가만 하면 문제가 된다.
그럼우선 Sample Project 를 Xcode5에서 생성 및 framework도 Xcode5에서 주는 아이들과 함께 Framework 만 넣어보면?
Sample 과 같은 framework 를 Xcode5에서 주는 framework 로 사용하고 LibUairShip-1.4.0.a 를 함께 프로젝트에 포함하더라도
문제가 발생하지 않는다.! 그럼 Framework 충돌 문제인가?
그렇다면, 이식한, 즉 libUairShip-1.4.0.a 를 추가했을때 link error 가 났던 App의 framework를 모두 추가해보자!
근데 빈 프로젝트에 필요한 프레임워크만 모두 로드하고 실행하면.... 잘된다..........헐;;;
잘되는게 더 멘붕이다;;;;;;
추측 내 App의 최소 빌드 버젼 셋팅이 다른경우?
16:44
그래.. 더러워서 그냥;; linkedin API 쓰자;;;
framework 붙이다가 아카이브 붙이다가 .. 날샐라;;'
모르믄 손발이 고생해야지...
2014.1.24.금 21:21
LinkedIn API 의 직접구현은 찾아보다가 포기..
oauth 1.0, oauth 2.0 이라는 표준을 사용하며, 토큰이 여러번 왔다갔다 하는 과정을 거침으로, 직접 구현하믄 최소 한달은 걸릴 것이라 생각됨;;ㅠㅠ
고로 기존에 받아 놨던 Sample Code 들 중에서 해결할 수 있는 에러들은 해결해 보자는 생각으로 기존 Sample Code Error check
Error 중 다음과 같은 에러가 존재..
"Xcode cannot run using the selected device."
"Choose a destination with a supported architecture in order to run on this device"
해결방법으로
build options 의 Compiler for C/C++/Objective-C Default compile (Apple LLVM 5.0) Setting 을 함으로 해결
이 외에 시도해 볼 수 있는 일이
최저 Compile target Version 이 현재 Target Version 보다 높게 설정되어 있는 경우,
또한 build settings 의 Valid Architectures 가 잘못 설정되어 있는 경우 위와 같은 에러가 발생할 수 있다고 함.
아무튼, 위 문제를 해결하여 멀쩡한 Sample Code 를(제대로 동작하는) 찾음...
이제 이식만 하면되겟지!!? 라고 바라고 있음.ㅠ
작업완료
https://github.com/PrincessPolymath/LinkedIn-OAuth-Sample-Client
다음 셈플을 가지고 이식하였음.. developer.linkedin.com 에서 제공하는 기본 셈플임..
결론은 그동안 다른 셈플로 이짓저짓한건 다 삽질???..ㅠㅠ
저 셈플을 현재버젼(xcode5.02) 버젼에서 실행시키게 되면
"Xcode cannot run using the selected device."
"Choose a destination with a supported architecture in order to run on this device"
이런 오류가 발생하는데 이 오류에 대해선 이곳에 정리해 놓았음.
http://jjangdali.tistory.com/entry/ObjectCIphoneXcode-cannot-run-using-the-selected-device-Error-%ED%95%B4%EA%B2%B0%EB%B0%A9%EB%B2%95
그리고 암호화쪽 코드가 .c 코드로 되어 있는데 이부분을 다 .m 으로 바꾸어주면 됨..
이 간단한 걸 몰라서 몇일동안 삽질.... 하아;;;
그리고 코드를 그대로~ 넣으면됨...
다른 셈플들 or 다른 소셜쪽과는 달리 이 sample example 은
delegate에는 추가할 코드가 없음.
셈플의 Oauthloginview.h, m, xib 를 내 앱에 그대로 복사후 사용하고,
셈플프로젝트의 코드를 그대로 사용하면 됨;;;
'Computer Programming > Object C' 카테고리의 다른 글
[ObjectC]NSString 긴 문자열에 다른 문자열이 내부에 존재여부 확인방법 (0) | 2014.02.06 |
---|---|
[ObjectC/Iphone]"Xcode cannot run using the selected device" Error 해결방법 (0) | 2014.01.24 |
[ObjectC/Iphone]IOS 어플리케이션과 viewController의 생명 주기 (0) | 2014.01.22 |
[ObejctC/Iphone] GooglePlus SDK 라이브러리 링크 에러 "_OBJC_CLASS_$_CMMotionManager" (0) | 2014.01.21 |
[ObjectC]ios GooglePlus Login 구현하기 /GooglePlus SDK (0) | 2014.01.20 |