적당한 고통은 희열이다

- 댄 브라운 '다빈치 코드' 중에서

초보 iOS 개발자의 일상/이슈모음집

[Swift iOS] Xcode 에러모음집

hongssup_ 2021. 4. 20. 11:11
반응형

Archive AppStore upload 할 때

ERROR ITMS-90717: "Invalid App Store Icon."

The App Store Icon in the asset catalog can't be transparent nor contain an alpha channel.

애플 너네 증말 섬세하구나. 포토샵 등으로 작업 시에 설령 투명한 부분이 없다고 하더라도 transparency 체크를 무조건 해제하고 export 해야 한다고 한다. 이미지 파일에서 이 설정을 확인하는 방법은 [이미지 오른쪽 클릭 - 정보 가져오기 - 추가정보]에 보면 '알파 채널: 아니요'로 설정이 되어있어야 한다.  

근데 보통 앱 아이콘 만드는 사이트에서 이미지 크기 변환해서 받아오면 자동으로 알파 채널 아니요로 설정을 변경해서 뽑아주더라. 

 

21-06-09 Nefu

App Store Connect Operation Error

ERROR ITMS-90208: "Invalid Bundle."

The bundle Nefu.app/Frameworks/libavcodec.framework does not support the minimum OS Version specified in the Info.plist.

Rest API 호출 Alamofire

error: responseSerializationFailed(reason: Alamofire.AFError.ResponseSerializationFailureReason.jsonSerializationFailed(error: Error Domain=NSCocoaErrorDomain Code=3840 "Invalid value around character 0." UserInfo={NSDebugDescription=Invalid value around character 0.}))

SolutionresponseJSON() {...} 대신에 responseString() {...} 을 쓰니깐 해결이 되었다. 

(guess this is a bug in Alamofire with using it with django 라고 하셨는데 나는 잘 모르겠다.. )

참고 : StackOverflow

 

이렇게 하니까 호출은 되는데 responseData를 print 해봤더니 에러가 떠있었다. 

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8" />
    <meta name="robots" content="noindex,nofollow,noarchive" />
    <title>An Error Occurred: Method Not Allowed</title>
    <style>body { background-color: #fff; color: #222; font: 16px/1.5 -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif; margin: 0; }
.container { margin: 30px; max-width: 600px; }
h1 { color: #dc3545; font-size: 24px; }
h2 { font-size: 18px; }</style>
</head>
<body>
<div class="container">
    <h1>Oops! An Error Occurred</h1>
    <h2>The server returned a "405 Method Not Allowed".</h2>

    <p>
        Something is broken. Please let us know what you were doing when this error occurred.
        We will fix it as soon as possible. Sorry for any inconvenience caused.
    </p>
</div>
</body>
</html>

Error : 405 Method Not Allowed

코드 405 클라이언트가 요청한 리소스에서는 사용 불가능한 Method 이용했을 경우 사용하는 응답 코드라고 한다. 

Solution : HTTPMethod를 .post 에서 .get으로 바꿔주니 잘 되었다. (서버랑 맞춰서 보내줘야하는듯)

 

Adding custom framework

framework를 다운받아서 추가했는데

Thread 1: signal SIGABRT

dyld: Library not loaded: @rpath/BRLMPrinterKit.framework/BRLMPrinterKit

Reason: image not found

라는 에러가 떴다.

Solution : [TARGETS - Build Phases] 들어가 + 버튼 누르고 "New Copy Files Build Phase" 선택하여 추가

항목이름을 "Embedded Framework"로 수정하고, 항목 열어서 Destination을 Frameworks로 변경해준다. 

그리고 첨부할 Framework 파일을 추가해주면 된다.  

참고 : dptablo.tistory

 

custom framework를 추가할 때 생기는 에러

Error : Building for iOS, but the embedded framework 'BRLMPrinterKit.framework' was built for iOS + iOS Simulator.

Solution : [Build Settings - Build Options] 에서 Validate Workspace를 No 에서 Yes로 변경했다가 다시 No 로 해주니깐 빌드가 되었다. ㅋㅋㅋㅋ 뭐 되니깐 다행이고 감사하지만 대체 왜..? 

참고 : StackOverflow

 

Adding object-c framework into swift project

제공하는 framework Object-C 작성되어 있을 경우 Swift에서 엑세스 하려면 프로젝트에 Object-C Bridging-Header 추가해주어야 한다. 

1. Header File 생성

New File로 Header File을 선택하여 생성하고 

샘플 SDK를 참고하여 import 문을 작성한다. (복붙해도 됨)

2. 파일 경로 추가

그런 다음 [Build Settings - Swift Compiler - Objective-C Bridging Header] 에다가 

헤더 파일의 경로를 넣어준다. 

(파일 경로는 finder에서 파일 선택  편집에 들어가 옵션 키를 누르면 경로 복사하기가 뜬다. )

참고 : star프린터 SDK 매뉴얼

 

UIButton 함수 연결

Error : unrecognized selector sent to instance ~

연결된 변수명이 잘못되어있거나, 변경 전 후 변수와 2중연결이 될 경우 발생하는 오류. 

나는 처음에 UIButton에 @IBAction으로 끌어다 연결을 했다가, 코드를 지우고 버튼에 .addTarget에 @objc로 함수를 다시 연결해주었는데 xib 파일에 그 전 연결이 남아있어서 뜬 오류였다. 연결 해지해주니 오류 없이 잘되더라.

 

force unwrapping deprecated property

Thread 1: Fatal error: Unexpectedly found nil while unwrapping an Optional value

'menuLeftNavigationController' is deprecated: renamed to 'leftMenuNavigationController'

Use 'leftMenuNavigationController' instead

SideMenu 라이브러리의 menuLeftNavigationController가 deprecated 되어 leftMenuNavigationController 로 바꿔서 쓰라는 경고창이 떠있더라. 그래서 fix 해주고 다시 실행했더니 크래시가 안나고 잘 실행이 된다.

 

Could not build Objective-C module 'Firebase'

pod deintegrate

pod install

 

Could not build Objective-C module 'RealmSwift'

RealmSwift가 정상적으로 import 되지 않을 때 해결 방법. 

Product > Scheme > New Scheme...

Target에 RealmSwift 선택후 확인

ㅋㅋㅋㅋ 이게 뭐하는 건진 모르겠지만 된다. 신기하다. 

 

728x90
반응형