본문 바로가기

IT/iOs

App Store Connect Operation Warning

외부 SDK를 프로젝트에 임포트하고 개발 중이었습니다.

빌드도 잘되고 실기기에서 디버깅도 잘되고 문제가 없어 보였습니다.

혹여나 배포하는 과정에서 에러가 발생하지 않을까 테스트플라이트에 한번 업로드해보았습니다.

아니나 다를까 아래와 같은 무지막지한 에러가 압박을 주며 테스트플라이트 업로드에 실패했습니다.

실기기에 빌드까지 잘되었던 상황이라 이 부분 테스트 안 하고 배포 단계까지 갔으면 다하고 나서 스트레스 테러 생길뻔했습니다.

 

 

자 이렇게 조기 발견된 에러를 한번 살펴보겠습니다.

대충 위쪽 에러들은 ~.apple.com 이 호스트에 접근 불가다 이런 내용이고 

아래쪽에는 해당 아키텍처를 지원하지 않는다 머 이런 게 있습니다.

 

이런 경우는 대부분 하나 수정하면 여러 에러가 연달아 잡히는 경우가 많지요 

그래서 apple.com에 접근이 안된다고 하는 것은 제가 어떻게 해볼 수 없을 것 같아서 아키텍처 부분을 수정을 먼저 해보기로 했습니다.

 

 


 

 

 

App Store Connect Operation Error
The session's status is FAILED and the error description is 'Target address not available (14)' sessionId: '57846a47-1c81-4b35-bf11-506913f9abb5', host: 'vgr501.apple.com'

App Store Connect Operation Error
The session's status is FAILED and the error description is 'ascp closed management connection unexpectedly (11)' sessionId: '64f94976-0606-4597-b732-3aab7f987f85', host: 'vgr502.apple.com'

App Store Connect Operation Error
The session's status is FAILED and the error description is 'ascp closed management connection unexpectedly (11)' sessionId: '95944f4c-dda9-441d-9ab0-43d43e5a6ff0', host: 'vgr502.apple.com'

App Store Connect Operation Error
The session's status is FAILED and the error description is 'Target address not available (14)' sessionId: '8b70d441-ada6-472d-8a59-845b79cf82df', host: 'vgr501.apple.com'

App Store Connect Operation Error
The session's status is FAILED and the error description is 'Target address not available (14)' sessionId: '9f91c62d-a977-4376-8322-bd198a682627', host: 'vgr702.apple.com'

App Store Connect Operation Error
The session's status is FAILED and the error description is 'Target address not available (14)' sessionId: '867c5276-c901-4198-a3fb-f439100481d6', host: 'vgr701.apple.com'

App Store Connect Operation Error
The session's status is FAILED and the error description is 'Target address not available (14)' sessionId: 'fd00a1c4-2b3b-4cd2-8479-8995437ef58b', host: 'vgr704.apple.com'

App Store Connect Operation Error
The session's status is FAILED and the error description is 'Target address not available (14)' sessionId: 'e63658a5-ebc2-4713-96e1-26f2061be313', host: 'vgr703.apple.com'

App Store Connect Operation Error
The session's status is FAILED and the error description is 'Target address not available (14)' sessionId: '4320fbb3-f8c8-4f46-a531-00508f7a6152', host: 'vgr702.apple.com'

App Store Connect Operation Error
The session's status is FAILED and the error description is 'Target address not available (14)' sessionId: '2261dfaa-fd84-49dd-b5b3-3c3c6a60ba87', host: 'vgr703.apple.com'

App Store Connect Operation Error
The session's status is FAILED and the error description is 'Target address not available (14)' sessionId: 'e7b6bcf6-42dc-45b3-8fc2-d1cf4ed6853c', host: 'vgr701.apple.com'

App Store Connect Operation Error
The session's status is FAILED and the error description is 'Target address not available (14)' sessionId: 'e9f8c565-d977-4518-8bc4-feaf44dd59ad', host: 'vgr704.apple.com'

App Store Connect Operation Error
ERROR ITMS-90087: "Unsupported Architectures. The executable for 프로젝트이름.app/Frameworks/SDK이름.framework contains unsupported architectures '[x86_64, i386]'."

App Store Connect Operation Error
ERROR ITMS-90209: "Invalid Segment Alignment. The app binary at '프로젝트이름.app/Frameworks/SDK이름.framework/SDK이름' does not have proper segment alignment. Try rebuilding the app with the latest Xcode version."

App Store Connect Operation Error
ERROR ITMS-90125: "The binary is invalid. The encryption info in the LC_ENCRYPTION_INFO load command is either missing or invalid, or the binary is already encrypted. This binary does not seem to have been built with Apple's linker."

App Store Connect Operation Warning
WARNING ITMS-90080: "The executable 'Payload/프로젝트이름.app/Frameworks/SDK이름.framework' is not a Position Independent Executable. Please ensure that your build settings are configured to create PIE executables. For more information refer to Technical Q&A QA1788 - Building a Position Independent Executable in the iOS Developer Library."

 

 

 

 

조사를 해보니 애플에서는 이제 시뮬레이터 아키텍처가 배포 빌드에 포함되어있으면 앱스토어에 업로드 못 시키게 하고 있습니다.

그래서 i386과 x86_64는 삭제를 해줘야 합니다.

 

삭제를 해주는 방법은 프로젝트에 스크립트를 포함시켜서 빌드시 자동으로 삭제되게 하는 방법과

일회성으로 터미널을 이용하여 삭제해주는 방법이 있습니다.

 

 

 

 

스크립트를 이용하는 방법

 

Shell :

/bin/sh

 

Code :

APP_PATH="${TARGET_BUILD_DIR}/${WRAPPER_NAME}" # This script loops through the frameworks embedded in the application and # removes unused architectures. find "$APP_PATH" -name '*.framework' -type d | while read -r FRAMEWORK do FRAMEWORK_EXECUTABLE_NAME=$(defaults read "$FRAMEWORK/Info.plist" CFBundleExecutable) FRAMEWORK_EXECUTABLE_PATH="$FRAMEWORK/$FRAMEWORK_EXECUTABLE_NAME" echo "Executable is $FRAMEWORK_EXECUTABLE_PATH" EXTRACTED_ARCHS=() for ARCH in $ARCHS do echo "Extracting $ARCH from $FRAMEWORK_EXECUTABLE_NAME" lipo -extract "$ARCH" "$FRAMEWORK_EXECUTABLE_PATH" -o "$FRAMEWORK_EXECUTABLE_PATH-$ARCH" EXTRACTED_ARCHS+=("$FRAMEWORK_EXECUTABLE_PATH-$ARCH") done echo "Merging extracted architectures: ${ARCHS}" lipo -o "$FRAMEWORK_EXECUTABLE_PATH-merged" -create "${EXTRACTED_ARCHS[@]}" rm "${EXTRACTED_ARCHS[@]}" echo "Replacing original executable with thinned version" rm "$FRAMEWORK_EXECUTABLE_PATH" mv "$FRAMEWORK_EXECUTABLE_PATH-merged" "$FRAMEWORK_EXECUTABLE_PATH" done

 

 

 

 

 

 

터미널 이용 방법

 

cd /Users/mahipal/Desktop/masterTest/SDK이름.framework

lipo -remove i386 Alamofire -o SDK이름 && lipo -remove x86_64 SDK이름 -o SDK이름

 

 

 

 

https://stackoverflow.com/questions/42641806/check-and-remove-unsupported-architecture-x86-64-i386-in-ipa-archive