1. reference counter 메모리 누수를 막고 free를 안 해도 자동으로 메모리를 삭제 하도록 고안해 낸 방법이 reference counter인데 인스턴스 객체를 생성할 때, 내부에 레퍼런스 카운터를 두어서 자기 자신을 참조할 때마다 카운터를 증가시켜서 해당 카운터가 0 이 될 때, 스스로 삭제를 하는 방식이다. 2. 문제 발생 이러한 방식은 따로 리소스를 free 해 줄 필요가 없어서 아주 편리한데, 한가지 문제가 있다. 만약 객체 내부의 변수가 다른 객체 내부의 변수를 서로 참조하고 있다면, 해당 리소스는 free가 되지 않는다. 아래와 같은 코드에서 A와 B를 nil로 바꾸어 준다고 해도 내부 변수가 서로를 참조하고 있어서 객체가 사라지지 않는다. -> memory leak class..

1. 설치 혹시 firebase 계정 설치가 안되어 있는 분은 1편을 꼭 보고 오시고 (GoogleService-Info.plist 추가를 꼭 해주어야 한다), 그다음에는 Podfile에 Firebase/Analytics를 추가한다. 그리고 pod install 2. 코드 작성 Xcode 상에서 Firebase를 초기화해주는 코드를 작성한다. 3. Firebase에서 확인 Firebase의 대시보드에 보면 Analytics라는 곳이 있고, 들어가 보면 사용자가 1로 표시되는 것을 볼 수 있다. 4. 로그 추적 이런식으로 코드상에 API를 넣으면 Analytics에 Count 도 되고 순차적으로 볼 수도 있다. import FirebaseAnalytics Analytics.logEvent("VierCont..

1. firebase 등록 절차 firebase 콘솔에 가서 로그인 후에 프로젝트를 생성한다. https://console.firebase.google.com/ 프로젝트 안에 ios+ 모양의 앱을 등록하고 아래의 절차대로 진행한다. 1) 앱 번들 id 입력하고 이름 생성 2) GoogleService-Info.plist를 다운로드하여 프로젝트에 추가한다. 3) 중간에 SPM을 사용하여 SDK를 추가해 달라고 하는데 보통은 cocoapods를 많이 쓰기 때문에 pods로 추가한다. Podfile에 FirebaseSDK를 추가하고 pod install pod 'Firebase/Core' 2022.04.21 - [분류 전체보기] - firebase Analytics -2 firebase Analytics -2..

1. 설정 내비게이션 바에서 6번 째로 이동해서 UI Test target 추가해 준다. 2. 튜토리얼 확인 UIView 상의 Object에 접근하는 방법이 Xcode 와는 다르기 때문에 그 부분을 먼저 확인해야 한다. 그리고 사용자의 액션이 추가가 되면 그부분에 대한 명령 도 일아 야 한다. app.buttons["Button"].tap() 위와 같은 문구에 대해 설명하자면, app //app = XCUIApplication() 로 코드에서 할당하였다 app 앱의 buttons["Button"] //Button이라는 버튼을 tap() //탭 하라는 동작이다. 다 외울 수 없기 때문에 쉽게 확인 하는 방법이 있다. 소스코드 왼쪽 하단의 빨간색 녹화 버튼을 누르고 나서 시뮬레이터 안의 버튼을 선택하는 동작..

1. 설정 가지고 있는 프로젝트의 좌측 상단 내비게이션 바에서 체크된 다이아몬드 모양을 클릭하고 좌측 하단의+ 를 누르면 unit test를 추가할 수 있다. New unit test target 선택하고 현재 프로젝트 선택 2. 기본 코드 생성 아래와 같이 기본 소스 코드가 생성된다. import XCTest class ActiveLabelTestTests: XCTestCase { override func setUpWithError() throws { // Put setup code here. This method is called before the invocation of each test method in the class. } override func tearDownWithError() thro..

1. 회원 가입 네이버 클라우드로 접속해서 회원 가입을 한다. 그런데 결제 수단을 등록해야 여러 기능을 쓸 수 있다. 결제수단 등록하고 지금 100,000 크레디트 (3개월)을 주는 행사를 하고 있으니 일단 크레디트 받자. 그리고 나면 대쉬보드 에서 프로덕트 앤 서비스에 젠킨스 가 있다. 선택은 서버를 누르자 2. 서버 생성 서버 생성을 선택 하고, 애플리케이션 젠킨스 선택 후 다음을 누른다. 서버를 설정 하는데 나는 일단 최소한으로 설정했다. 중간에 키를 다운로드하는데 잃어버리면 안 되니 잘 보관하고 다음다음 누르면 서버가 생성되었다. 3. 서버 생성 완료 서버 생성 완료 화면 상태가 생성중 -> 운영 중으로 바뀌면 서버가 생성되었다. 4. 포트포워딩 설정 홈 -> 서버 -> 포트 포워딩 설정 선택 외..

자동화가 다 되었으니 마지막으로 github에 Pull Request 가 일어났을 때, Webhook으로 Event를 받아서 bitrise에서 자동으로 빌드가 시작되도록 해보자. 1. WorkFlow 수정 우선 github의 webhook Event를 받는 것은 처음에 세팅을 해 두었는데, 어떤 이벤트에서 trriger가 될 것 인지를 추가 설정해 주어야 한다. Edit Workflows -> Triggers로 진입해서 어떤 이벤트에 빌드할지 추가한다. PUSH/PullRequest/Tag 중에서 선택할 수 있는데 나는 PULL REQUEST를 선택하고, 어떤 브랜치 든 지 main으로 PULL REQUEST가 오면 빌드되도록 아래와 같이 설정했다. 2. Github 확인 github에 webhook E..

3. 에러 케이스 아래의 3가지를 해결하면 된다. 사이트를 왔다 갔다 하면서 다운로드하고 업로드하고 할게 많다. ㅠㅠ 1. bitrise 서버에 나의 애플 아이디에 대한 정보가 없다. 2. bitrise 서버에 빌드에 필요한 Profile 이 없다. 3. bitrise 서버에 개발자 인증서 (signing cert) 이 없다. 3-1. Apple ID 입력 Bitrise에서 오른쪽 상단을 누르고 프로필 세팅 누르고 애플 서비스 커넥션 클릭해서 appleid/pw/appid 작성한다. appid가 없는 경우에는 https://appleid.apple.com/으로 가서 발급받는다. 3-2. Provisioning Profile 입력 https://developer.apple.com/으로 이동해서 Profil..
- Total
- Today
- Yesterday
- ChatGPT
- MQTT
- chatgpt 4o
- 무료는 아니지만
- RxSwift
- Default Rules
- ios
- 프로그래머스
- 코테
- GCD
- Fastlane
- AWS IoT
- GPT4
- CI/CD
- 같이쓰기
- geohash
- 모듏화
- XCTestExpectation
- xcode whitespace trim option
- IF (KAKAO) DEV 2022
- 빌드자동화
- Moya
- bitrise
- AppThinning
- swiftLint
- firebase
- jenkins
- ATS failed system trust
- async
- swift
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
31 |