IOS 65

[Git / iOS / Xcode] API Key 숨기기

오늘 포스팅할 내용은 API를 연동해서 데이터를 가져올 때 .gitignore 파일을 이용해서 API Key를 숨기는 방법에 대해서 알아보겠습니다. [Step 1] Storage.swift 안에 API Key 저장하기 [Step 2] API Key를 넣어야 하는 자리에 Storage().apiKey 넣기 [Step 3] terminal을 열고 프로젝트 가장 상위 폴더로 이동 후, 다음의 명령어 입력 // .gitignore 파일 생성 touch .gitignore // .gitignore 파일 열기 open .gitignore .gitignore 파일에 Storage.swift 추가 후 저장 [Step 3] 다음의 명령어 입력 git status를 입력해서 .gitignore이 생성되었는지 확인 git ..

Git 2021.11.05

[iOS / Error] Expected to decode Double but found a string/data instead 에러 해결

서버와의 통신을 통해서 데이터를 디코딩할 때 해당 에러가 발생했습니다. 찾아보니 Date 타입을 디코딩할 때 생기는 에러였습니다. 해당 에러를 해결해보겠습니다. 간단한 예시로 설명하겠습니다. struct MovieData: Codable { var movie: [Movie] } struct Movie: Codable { var typeNumber: Int var startTime: Date var type: String var name: String } var json = """ { "movie": [ { "typeNumber": 1, "startTime": "2021-11-01T14:00:00Z", "type": "해외", "name": "듄" }, { "typeNumber" : 2, "startTim..

Error 2021.11.01

[iOS / Error] Expected to decode Array<Any> but found a dictionary instead 에러 해결

API를 연동해서 데이터를 가져올 때, 데이터를 디코딩할 때 해당 에러가 발생했습니다. 찾아보니 데이터가 Dictionary 타입인데 Array 타입으로 디코딩할 때 생기는 문제였습니다. 해당 에러를 해결해보겠습니다. 간단한 예시로 설명하겠습니다. struct MovieData: Codable { var movie: [Movie] } struct Movie: Codable { var typeNumber: Int var type: String var name: String } var json = """ { "movie": [ { "typeNumber": 1, "type": "해외", "name": "듄" }, { "typeNumber" : 2, "type" : "국내", "name" : "보이스" } ] ..

Error 2021.11.01

[iOS / Error] Unable to load contents of file list... 에러 해결

이전 포스터에서 문제를 해결하다가 새로운 에러에 봉착했습니다. 해당 문제는 Xcode 10.2에서 디폴트로 사용되는 새로운 빌드 프로세스와 관련된 에러입니다. 해당 에러를 해결해보겠습니다. [Step 1] terminal에서 pod 파일을 포함하고 있는 경로로 이동해서 다음의 코드를 입력합니다. sudo gem update cocoapods --pre pod update [Step 2] Product -> Clean Build Folder 후 빌드 ※ 참고 출처 stackoverflow Xcode 10.2 Update issue Build system error -1: Unable to load contents of file list: input/output xcfilelist After upgradin..

Error 2021.08.19

[iOS / Error] Failed to render and update auto layout... 에러 해결

FSPagerView 오픈 소스 라이브러리를 사용하다가 다음과 같은 에러가 발생했습니다. 찾아보니 다음의 에러는 Cocopads의 버전 문제였습니다. 해당 에러를 해결해보겠습니다. 두 가지 방법이 있습니다. 첫 번째 방법으로 해결이 되면 넘어가고 첫 번째 방법이 안 된다면 두 번째 방법을 시도합니다. [Solution 1] podfile에 다음의 코드를 추가하기 # Workaround for Cocoapods issue #7606 post_install do |installer| installer.pods_project.build_configurations.each do |config| config.build_settings.delete('CODE_SIGNING_ALLOWED') config.build_..

Error 2021.08.19

[iOS / CocoaPods / Error] Oh no, an error occurred 에러 해결

CocoaPods를 이용해서 오픈 소스 라이브러리를 설치하는 과정에서 terminal에서 pod init -> Podfile 수정 -> pod install 을 했을 때 위와 같은 에러가 발생했습니다. 찾아보니 해당 에러는 맥북 에어(M1칩)에서 발생하는 에러라고 합니다. 에러를 해결해보겠습니다. [Step 1] pod init -> sudo vi podfile 터미널에서 먼저 Podfile생성 후, sudo vi podfile을 통해서 해당 부분에 라이브러리를 포함시켜줍니다. 수정할 때는 'i' 클릭 완료 후에는 esc -> wq! [Step 2] 터미널에 다음 명령문을 순서대로 입력 sudo arch -x86_64 gem install ffi arch -x86_64 pod install 영어로 된 문..

Error 2021.08.09

[iOS / Error] whose view is not in the window hierarchy 경고 해결

Storyboard Segue를 이용해서 화면 전환을 구현하다가 다음과 같은 에러가 발생했습니다. 해석을 해보면 '윈도우 계층에 해당 뷰가 존재하지 않는다.'입니다. 해당 경고를 찾아보니 Storyboard Segue로 화면이 전환되고 있는 동안, 소스 코드에서 동시에 화면 전환이 실행되고 있어 화면 전환 간 충돌(?)로 인해 해당 뷰가 계층에 포함되지 않은 것으로 확인됐습니다. 해당 경고를 해결해보겠습니다. [Step 1] 먼저 Storyboard Segue와 화면 전환 소스코드가 둘 다 생성되어 있는지 확인 [Step 2] 소스 코드에서 구현한 버튼의 perfromSegue 함수를 없애줍니다. (아니면 버튼의 이벤트 함수 자체를 없애줍니다.) 화면 전환을 Storyboard Segue를 이용해서 쉽게..

Error 2021.08.05

[iOS / Error] Could not insert new outlet connection 에러 해결

새로운 VIewController를 생성하고 메인 스토리보드와 연결 후, 스토리보드의 버튼을 참조하는 프로퍼티를 생성할 때 다음과 같은 에러가 발생했습니다. 해당 문제를 찾아보니 메인 스토리보드와 뷰 컨트롤러 간의 서로 연결이 제대로 되지 않아 생기는 오류라는 것을 알았습니다. 다음과 같이 정상적으로 연결이 되었다면 화살표를 눌렀을 때 뷰 컨트롤러가 나와야 합니다. 하지만 클릭만 되고 뷰 컨트롤러가 나오지 않을 경우, Xcode의 일시적 오류입니다. Xcode를 껐다가 다시 키면 잘 됩니다..!

Error 2021.08.01

[iOS / Error] no segue with identifier 에러 해결

화면 전환을 구현하다가 다음과 같은 에러가 발생했습니다. perFormSeque의 withIdentifier 매개변수 이름이 일치하지 않아 생기는 문제입니다. 문제를 해결해보겠습니다. [Step 1] 생성한 Segue객체의 Storyboard Segue 섹션에서 Identifier를 확인하기 [Step 2] 위에서의 Identifier명과 perfomsegue의 변수명을 일치하게 적었는지 확인 스토리보드와 소스 코드를 연결할 때는 항상 변수명을 잘 일치시켰는지 확인해야 합니다.

Error 2021.08.01

[iOS / Error] Edit placeholder in source file 에러 해결

TableView를 구현하다가 다음과 같은 에러가 발생했습니다. 처음에는 Table View Cell 섹션의 Reuse Identifier 이름이 잘못 매칭된 줄 알고 계속 비교해봤지만 아니었습니다. 해당 문제를 찾아보니 Custom Class 섹션의 Module명 문제이었다는 것을 알았습니다. 그렇다면 해당 에러를 해결해보겠습니다. [Step 1] 오른쪽 Indicator -> Custom Class 섹션 -> 모듈명을 확인 [Step 2] 모듈명이 None이라면 오른쪽 화살표를 클릭해서 자신의 프로젝트명을 클릭 'Edit placeholder in source file'의 에러가 발생하면 해당 Cell의 Custom Class 섹션에서 모듈명을 확인해야 합니다. + 추가적으로 이름을 모두 일치시켰음에..

Error 2021.07.28