출처 : http://dev.tapjoy.com/ko/faq/unexpected-cfbundleexecutable-key-ios-submission-error/



"Unexpected CFBundleExecutable Key" iOS submission error

"Unexpected CFBundleExecutable Key" 혹은 "Unexpected CFBundleSupportedPlatforms value"

저희는 최근 애플 앱스토어에 앱을 제출함에 있어서 다음과 같은(혹은 유사한) 에러 메시지와 함께 앱이 리젝트 되는 경우가 있다는 리포트를 받았습니다.:

Screen Shot 2015-09-15 at 5.09.44 PM

이것을 대응하기 위해서는 다음을 따라 수정해주세요.:

다음과 같이 수동으로 Info.plist가 여러분의 TapjoyResources.bundle을 포함하게 해주세요.:


Set the following key:

CFBundleSupportedPlatforms = iPhoneOS

And REMOVE the following key entirely:

Executable file

만일 여러분이 Adobe AIR를 사용하고 계신다면, ANE 파일을 언팩하셔서, 위의 나온대로 수정하시고, 다시 ANE 파일을 패킹해 주세요. 이 작업을 위해서는 다음의 안내를 따라주세요.:

  1. unzip TapjoyExtension.ane -d temp
  2. Modify TapjoyResources.bundle found at temp/META-INF/ANE/iPhone-ARM/Tapjoy.embeddedframework/Resources/ as explained above.
  3. cd temp/META-INF/ANE/
  4. mv iPhone-ARM/platform.xml ios_platform.xml
  5. mv Android-ARM/platform.xml android_platform.xml
  6. <air_sdk_home>/bin/adt -package -target ane ../../../TapjoyExtension.ane extension.xml -swc ../../../TapjoyExtension.swc -platform iPhone-ARM -C iPhone-ARM -platformoptions ios_platform.xml . -platform Android-ARM -C Android-ARM -platformoptions android_platform.xml . -platform default -C default library.swf



이 내용은 XCode로 iOS App을 앱 스토어에 업로드 시 발생하는 

아래 error에 대한 해결 방법이기도 합니다.


(ERROR ITMS-90086)




-------------------------------------------------------------------------------------------------------------



출처 : http://www.econovation.co.kr/ecnvb/ios-%EA%B0%9C%EB%B0%9C%ED%8C%81-32bit%EB%A1%9C-%EA%B0%9C%EB%B0%9C%EB%90%9C-%EC%95%B1%EC%9D%84-64bit%EB%A1%9C-%EB%B3%80%ED%99%98-%EB%B0%A9%EB%B2%95/



애플이 아이폰5S 부터 A7 64비트 CPU를 탑재하면서 소프트웨어 개발자도 대응에 고심해야 하는 상황이 되었습니다. 또한 2015년부터는 32비트와 64비트 모두 지원하도록 앱을 개발해야 앱 심사를 받겠다고 합니다.

애플은 64비트 프로세서를 지원함에 따라 더 고성능의 앱을 더 빠르게 구동할 수 있다고 강조합니다. 애플은 개발도구인 X코드를 통해 32비트 앱을 64비트 앱으로 쉽게 변환할 수 있다고 주장합니다. 과거처럼 유니버셜 바이너리를 지원한다고 한 것입니다.

하지만, 앱을 아이폰5와 아이폰5S 모두에서 구동하게 하려면, 동일한 앱이 두 개의 코드를 갖는 걸 감수해야 합니다. 하드웨어야 OS 차원에서 알아서 판단해 32비트냐 64비트냐를 결정해 주겠지만 기본적으로 앱의 전반적인 용량은 커지게 되는 것입니다.

문제는 여기서 그치지 않습니다. 그 동안 애플의 가이드라인에서 벗어나 개발해왔던 앱 개발자라면 기존 앱을 64비트로 변환하는데 상당한 모험심을 가져야 할 것으로 보입니다. 64비트 앱을 원활히 개발하려면 애플에서 제시한 가이드라인을 엄격히 지켜야 하기 때문입니다.

여하튼 2015년부터 앱 개발 및 수정을 하여 앱 심사를 요청하려면 반드시 32비트와 64비트를 지원 하도록 개발이 되어야 하는 필수 요건이 되었습니다.


64비트 아키텍쳐 지원

iOS 개발팁-32bit로 개발된 앱을 64bit로 변환 방법_01

 

애플이 공식적으로 개발자를 위한 새 문서를 올렸는데, 아이폰5s의 64-bit 앱으로 변환하는 과정을 기술한 것입니다.

- https://developer.apple.com/library/ios/documentation/General/Conceptual/CocoaTouch64BitGuide/ConvertingYourAppto64-Bit/ConvertingYourAppto64-Bit.html#//apple_ref/doc/uid/TP40013501-CH3-SW1

자 그럼 64비트 변환방법에 대하여 알아보도록 하겠습니다.


64 비트 바이너리 변환 방법

1. Xcode 5.0.1 이상 설치합니다. (최신버젼 Xcode 6.1 설치 권장)
2. 개발 프로젝트를 오픈 합니다.

iOS 개발팁-32bit로 개발된 앱을 64bit로 변환 방법_02

3. 프로젝트 Build Settings -> Architectures 설정
- Architectures Standard architectures (armv7, arm64)
- Vaild Architectures arm64 armv7 armv7s

iOS 개발팁-32bit로 개발된 앱을 64bit로 변환 방법_03

4. 프로젝트 설정에서 iOS Deployment Target 을 iOS 5.1 이상으로 설정합니다.
- iOS 5.1 이하로 설정할 경우 64비트 빌드가 되지 않습니다.

iOS 개발팁-32bit로 개발된 앱을 64bit로 변환 방법_04
5. 프로젝트를 빌드를 합니다.
- 빌드시 컴파일러는 에러와 경고를 발생할 것입니다. 소스코드의 에러와 경고 항목을 Xcode 도움말 가이드를 참조하여 직접 수정해야 합니다.
- 애플이 제공하는 가이드 라인을 참조해서 소스 코드를 수정합니다.
https://developer.apple.com/library/ios/documentation/General/Conceptual/CocoaTouch64BitGuide/ConvertingYourAppto64-Bit/ConvertingYourAppto64-Bit.html#//apple_ref/doc/uid/TP40013501-CH3-SW1

iOS 개발팁-32bit로 개발된 앱을 64bit로 변환 방법_05

6. 소스코드 수정이 완료되면 64비트 하드웨어(아이폰5S 이상) 단말에서 테스트를 합니다.
7. 앱 Archive 를 생성하여 앱 심사을 위헤 애플에 제출합니다.



출처 : http://cyberx.tistory.com/36


내가 만든 iOS앱을 앱스토어에 배포해보자 - 개발할 앱 연결과 권한


기기를 등록했나요? 
기기를 등록했다면 내가 만들 앱의 최소의 정보와 그에 따른 권한을 연결시켜 주어야 합니다.
먼저,


애플 개발자 사이트에 접속하여 [Identifiers - App IDs] 메뉴로 진입합니다.
위와 같은 목록이 나오는 화면에서 오른쪽 상단 [ + 버튼 ]을 클릭합니다.



앱의 아이디를 기술합니다.
앱의 이름이라고 생각하시면 될것 같습니다.


앱의 번들 아이디를 입력합니다.
단독적인 앱을 만들때 사용합니다. 
하단에 Wildcard App ID 는 여러개의 앱을 하나의 번들 아이디 그리고 * (wildcard) 로 구분지어 사용하고자 할때 선택합니다.
여기서는 blog.test 라는 번들 아이디를 입력하겠습니다.
입력 후, 하단의 [continue 버튼] 을 눌러주세요.



다음 화면에서 최종 확인을 합니다.
[ Submit 버튼 ]을 눌러주세요.



그럼 다시 목록화면으로 넘어가는데 위의 이미지와 같이 등록한 내용이 보이게 됩니다.



자. 다음으로 하게 될것은 방금 만든 앱 정보와 디바이스간의 연결입니다.

[ + 버튼 ] 을 눌러주세요.



저는 테스트 진행할 디바이스와 연결할 것이므로 [ Ad Hoc ]을 선택후 하단 [ Continue 버튼 ]을 클릭합니다.



만약 이전 App Id를 여러개 만들어 놓았다면 어떤 앱을 연결할 것인지 선택하게 됩니다.



그리고 어떤 개발자 계정으로 할 것인지 선택을 하게 되죠.

여러개가 등록이 되나 봅니다. 아마 Enterprize 계정 때문에 선택하는 화면이 존재 하는 듯 합니다.



어떤 기기에서 테스트를 할 것인지 선택하는 화면입니다.
2부에서 등록한 기기의 목록이 보여집니다.
선택이 완료되면 [ Continue 버튼 ] 을 클릭합니다.


완료되었습니다.
위의 이미지에 [ Download 버튼 ]을 클릭하여 1부에서 개발자 인증서를 내려받듯이 맥에 다운로드를 받습니다.
다운로드 받은 profile을 맥에서 더블클릭 하게 되면 맥에서 자동으로 profile을 등록하여 줍니다.

맥북에 개발자 인증을 하고
어떤 기기에서 테스트 할 것인지 기기 등록을 하고
내가 만들 앱을 등록하여 어떤 기기와 연동을 할 것인지에 대하여 알아보았습니다.


이제 방금 등록한 앱의 Bundle ID를 사용하여 앱을 디자인 하면 됩니다.

출처 : http://cyberx.tistory.com/29


내가 만든 iOS앱을 앱스토어에 배포해보자 - 기기 등록


나의 맥북에 내가 너의 개발자다!! 라고 인식시켰다면

다음으로 해야 할 것은 개발할 기기를 등록해야 합니다.


안드로이드와는 다르게 iOS는

기기의 일련정보를 개발자 사이트에 입력해야

내가 작성한 코드를 USB 연결을 통하여 실제 디바이스 테스트가 가능하기 때문입니다.


실제 디바이스 테스트는 개발자 유료 등록을 마쳐야지만 가능합니다.

만약 나의 앱에 인앱결제가 들어간다면 시뮬레이터로는 테스트가 불가능하기 때문에

필히 개발자 유료 등록하여야 합니다.


USB연결말고도 Ad-Hoc으로 여러사람이 웹에서 다운로드 받아 테스트가 가능하지만

이때도 Enterprize 계정이 아닌 이상 테스트할 사람의 모든 기기정보를 입력해야 합니다.

이 부분은 추후 Ad-Hoc 계정 웹으로 다운받아 테스트하기 포스팅에서 자세히 다루겠습니다.




먼저, 애플의 개발자 사이트에 접속합니다. http://developer.apple.com/ 






왼쪽메뉴에서 [Devices - All 혹은 해당하는 기기]를 클릭합니다.




상단 오른쪽 + 버튼을 클릭합니다. 



 

이곳에서 디바이스의 이름과 UDID를 입력합니다.
디바이스의 이름은 다른 기기와 중복되지 않게끔 내가 알아볼수 있는 편한 이름으로 입력합니다.
추후에 다시 변경할 수 있습니다.

등록 해야 할 기기가 여러대인경우
하단의 Register Multiple Devices 항목을 이용하십시오.
애플이 의외로 친절히 샘플파일까지 제공하고 있습니다.


여기서 중요한 것은 UDID 입니다.
이 정보는 피씨의 iTunes 프로그램에서 기기 연동 후에 확인 하실 수 있습니다.

앱스토어에서 UDID를 읽어준다는 앱을 받아서 등록해 봤는데,
결론은 기기 등록은 되나 연결이 되지 않았습니다.
내가 제작한 앱이 기기에 설치가 되지 않아 한참을 원인을 찾느라 은근 시간을 사용했습니다.
원인은 다운받은 UDID 번호 알려주는 앱이 틀린 정보를 알려주고 있었습니다.

혹시나, 앱스토어에서 UDID 앱 검색해서 설치하신 분들은 되도록이면 iTunes를 이용하시길 바랍니다.
그저 정공법이 최고입니다.



iTunes를 연결하고 ①번을 클릭합니다.
클릭하고 나면 ②번을 확일 할 수 있는데, 우리가 필요한것은 UDID 이므로 일련번호를 클릭합니다.
그럼 이 번호가 토글되어 UDID가 나오는데 안나올경우 나올때까지 클릭하시면 됩니다.
번호 위에서 오른클릭을 하면 복사가 가능합니다.

복사된 번호를 좀전의 개발자 페이지의 UDID 란에 입력하고 하단의 Continue 버튼을 클릭합니다.


 


등록하려는 기기의 정보를 확인하고 Register 버튼을 누르면 디바이스 목록 첫화면으로 돌아가며 등록이 완료됩니다.


기기 삭제에 관하여..

 
기기를 삭제하는 것은 개발자 유료 멤버십이 종료되는 시점(1년)에 초기화가 진행된다고 합니다.
그 이전에는 활성화 / 비활성화만 가능하다 합니다.
실제로 목록에서 사라지지 않습니다.


출처 : http://cyberx.tistory.com/8


내가 만든 iOS앱을 앱스토어에 배포해보자 - 개발자 등록


iOS 앱을 제작하고 앱스토어에 배포하기 위한 단계를 여러차례 나누어 포스팅 하려 합니다.



즐겨찾게 될 사이트 


* 애플의 개발자 사이트 https://developer.apple.com/

그리고 어마무시하게 클릭하게 될 메뉴 - 

이곳은 개발자를 등록하고 테스트 기기를 추가하며 개발에 필요한 인증서 등 필요한 정보를 입력하고 제공받는 곳입니다.



* iOS 앱 등록 사이트 https://itunesconnect.apple.com
내가 개발한 앱을 스토어에 올리기 위해 준비하는 사이트.
앱 내의 결재항목을 추가/삭제하거나 앱스토어에서 보여줄 앱의 미리보기 스크린샷 등 앱의 전반적인 정보를 등록하거나 추세를 파악하는 등 어플에 대한 정보를 얻거나 입력 할 수 있습니다.

이 사이트는 애플의 개발자 사이트에서 개발자로 등록한 계정으로 로그인이 가능합니다.

애플 개발자 등록 비용은 1년에 $99 입니다.



1. 맥 개발 인증서 받기

iOS 앱을 개발하기 위해서는 맥이 필요합니다. 제작도구 툴인 xcode가 맥에서만 동작하기 때문입니다.

맥의 [LaunchPad - 키체인 접근]을 실행합니다.

[키체인 접근 - 인증서 지원 - 인증 기관에서 인증서 요청]


사용자 이메일 주소, 일반 이름을 입력하고,

나는 맥에 저장할 것이므로 [디스크에 저장됨]과 [본인이 키 쌍 정보 지정]을 선택 후 [계속]버튼을 클릭합니다.

어디로 다운로드 받을 것인지 위치를 지정해주는 창이 나오는데 위치 지정 후 [저장] 버튼 클릭을 하게 되면 그 위치에 방금 요청한 인증서(CertificateSinging...)가 다운로드가 되어 저장이 됩니다. 



2. 맥 개발 인증서 등록하고 iOS개발 인증서 받기

애플의 개발자 사이트 https://developer.apple.com/ - Member Center - Certificates, Identifiers & Profiles 클릭



Certificates 선택



새로 등록할 것이므로 [ + ] 버튼 클릭



종류가 많습니다..  

iOS 앱 개발을 위한 인증서며 푸쉬용 인증서며 Passbook, 웹사이트 등 여러가지가 있지만

내가 할 것은 App Store and Ad Hoc 입니다. 앱을 등록하거나 테스트용으로 배포할 수 있는 자격을 주는 인증서입니다.

[Continue - 다음페이지도 Continue] 클릭


Choose File... 에서 아까 맥에서 다운로드 받은 인증서를 등록하고 하단 [Generate] 클릭


이 작업이 완료가 되면 인증서를 다운로드를 할수 있는 페이지로 이동합니다.
이것을 맥에 다운로드받습니다. 

다운로드 받은 인증서를 실행하게 되면 키체인 화면이 활성화되고 목록에 방금 실행한 인증서가 목록에 나타납니다.


개발자 등록은 이렇게 하면 끝입니다.


상당히 쉬운작업인데 단어가 어려워 고생 좀 했습니다...

다음 포스팅에는 내 아이폰을 테스트 기기로 등록해보도록 하겠습니다.


+ Recent posts