Diese Präsentation wurde erfolgreich gemeldet.
Die SlideShare-Präsentation wird heruntergeladen. ×

20221131_레츠스위프트_2022_iOS개발에서_알아두면_좋은것들.pdf

Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige

Hier ansehen

1 von 69 Anzeige

Weitere Verwandte Inhalte

Ähnlich wie 20221131_레츠스위프트_2022_iOS개발에서_알아두면_좋은것들.pdf (20)

Weitere von 정민 안 (11)

Anzeige

Aktuellste (20)

20221131_레츠스위프트_2022_iOS개발에서_알아두면_좋은것들.pdf

  1. 1. 안정민 Supporter iOS 개발에서 알아두면 좋은것들 강민규 Speaker
  2. 2. • IPA 분석과 다른 앱의 IPA 분석 • 개발 환경의 최적화 발표를 통해 기대하는 것
  3. 3. • iOS 개발 전체 과정 • 아카이브 • IPA 설명 및 타 IPA 분석 • 타겟을 줄이는 방법 • 환경 변수로 프로젝트 관리 목차
  4. 4. 안정민 (minsone) 카카오뱅크 iOS 애플리케이션 개발자
  5. 5. iOS 개발 전체 과정
  6. 6. iOS 개발 전체 과정 - 신규 서비스, 상품 개발 요청 프로젝트 생성
  7. 7. iOS 개발 전체 과정 - 화면 작성 - 아키텍처 설계 - 네트워크 연동 - 라이브러리 추가 - 환경 설정 … 코드 작성
  8. 8. iOS 개발 전체 과정 - 작성한 코드 검증 - 로직 확인 빌드 & 실행
  9. 9. iOS 개발 전체 과정 - 아카이브로 애플리케이션 결과물 생성 - 앱스토어, 사내 등에 배포할 수 있는 결과물 아카이브
  10. 10. iOS 개발 전체 과정 - 아카이브로 애플리케이션 결과물 생성 - 앱스토어, 사내 등에 배포할 수 있는 결과물 아카이브
  11. 11. iOS 개발 전체 과정 - 아카이브로 애플리케이션 결과물 생성 - 앱스토어, 사내 등에 배포할 수 있는 결과물 - xcarchive 패키지 - BCSymbolMaps - dSYMs - IPA - Info.plist … 아카이브
  12. 12. iOS 개발 전체 과정 - ITunesConnect 제출 - 앱 심사 - 앱스토어 노출 - 유저의 앱 설치 - 이슈 트래킹 배포
  13. 13. iOS 개발 전체 과정 프로젝트 생성, 설정 코드 작성 빌드 실행 아카이브 앱 제출 심사 앱스토어 배포 앱 설치 실행 이슈 트래킹
  14. 14. iOS 개발 전체 과정 프로젝트 생성, 설정 코드 작성 빌드 실행 아카이브 앱 제출 심사 앱스토어 배포 앱 설치 실행 이슈 트래킹
  15. 15. 아카이브
  16. 16. 아카이브 xcarchive - Xcode Archive - 앱스토어에 제출하기 위해 서명된 빌드 결과물
  17. 17. 아카이브 xcarchive - IPA - execute binary - IDA, machoViewer 등으로 분석 가능 - Framework - 라이브러리 종류, 사용방법 확인 가능 - CocoaPods 사용 여부 - Dynamic, Static Library 등 - 리소스 - storyboardc, nib, car, webp, lottie, js, html, mom 등 - Bundle
  18. 18. 아카이브 xcarchive - execute binary - Framework
  19. 19. 아카이브 xcarchive - execute binary - Framework
  20. 20. 아카이브 xcarchive - execute binary - Framework
  21. 21. 아카이브 xcarchive - storyboardc - nib
  22. 22. 아카이브 xcarchive - storyboardc - nib
  23. 23. 아카이브 xcarchive - storyboardc - nib
  24. 24. 아카이브 xcarchive - webp - lottie
  25. 25. 아카이브 xcarchive - webp - lottie
  26. 26. 아카이브 xcarchive - webp - lottie
  27. 27. AppStore에 있는 App 내려받기
  28. 28. AppStore에 있는 App 내려받기 - iMazing
  29. 29. AppStore에 있는 App 내려받기 - Github - majd/ipatool
  30. 30. IPA 살펴보기
  31. 31. 강민규 (KoreaMango) iOS 시작한지 1년이 되어가는 👶 iOS 개발자입니다.
  32. 32. iOS 개발 전체 과정 프로젝트 생성, 설정 코드 작성 빌드 실행 아카이브 앱 제출 심사 앱스토어 배포 앱 설치 실행 이슈 트래킹
  33. 33. 타겟을 줄이는 방법
  34. 34. 타겟이 늘어나는 이유 Target
  35. 35. 타겟이 늘어나는 이유 다양한 개발 환경 - 구분하지 않는다면? App - 환경이 바뀔 때 마다 개발자가 직접 서버 URL을 수정해줘야 한다. - Dev인지 Prod인지 헷갈리고 실수를 할 수 있다.
  36. 36. 타겟이 늘어나는 이유 다양한 개발 환경 - 구분한다면? Dev QA PROD - 개발 환경에 맞게 타겟을 선택만 해주면 서버 URL을 분기처리 해줄 수 있다. - 휴면 에러를 줄여준다.
  37. 37. 타겟이 늘어나는 이유 발생하는 문제점 - 동일한 코드가 프로젝트 파일에 중복되어 저장 - 프로젝트 인덱싱 속도 저하 - 새로운 파일을 추가할 때 타겟을 수동으로 체크하다 보니 실수할 여지가 생긴다 <중복되어 저장되는 xcodeproj 파일 내부>
  38. 38. 타겟을 줄여보자! Target
  39. 39. 타겟을 줄이는 방법 기존의 개발 환경 방식 - 타겟에 Dev, QA, PROD로 분리되어 있음
  40. 40. 타겟을 줄이는 방법 기존의 개발 환경 방식 - 타겟에 Dev, QA, PROD로 분리되어 있음
  41. 41. 타겟을 줄이는 방법 Configuration 추가하기 - 프로젝트 Info의 Configuration - 원하는 환경을 추가
  42. 42. 타겟을 줄이는 방법 Configuration 추가하기 - 프로젝트 Info의 Configuration - 원하는 환경을 추가
  43. 43. 타겟을 줄이는 방법 Schemes 추가하기 - 상단 Schemes 클릭 - Manage Schemes
  44. 44. 타겟을 줄이는 방법 Schemes 추가하기 - 상단 Schemes 클릭 - Manage Schemes - Dev, QA, PROD Scheme 추가
  45. 45. 타겟을 줄이는 방법 Schemes과 Configuration 연결 - 원하는 스킴을 체크한 다음 - Edit Schemes 클릭
  46. 46. 타겟을 줄이는 방법 Schemes과 Configuration 연결 - 각각의 개발환경에서 Run, Test, Profile, Analyze, Archive 설정 - 알맞은 Configuration이랑 연결
  47. 47. 타겟을 줄이는 방법 XCConfig란? XCConfig Build Setting Text 파일 =
  48. 48. 타겟을 줄이는 방법 XCConfig 생성 48
  49. 49. 타겟을 줄이는 방법 XCConfig 생성 - 우측 상단에 “Configuration” 검색 - Other에 Configuration Settings File 추가
  50. 50. 타겟을 줄이는 방법 XCConfig 생성 - shared.xcconfig에는 config에 맞는 플래그를 추가
  51. 51. 타겟을 줄이는 방법 XCConfig 생성 - 각각의 xcconfig 파일은 shared의 설정을 포함한다.
  52. 52. 타겟을 줄이는 방법 Configuration 과 XCConfig 연결 - Project 파일의 Info에서 - Configuration에 이름에 맞는 XCConfig 연결
  53. 53. 타겟을 줄이는 방법 Configuration 과 XCConfig 연결 - XCConfig가 적용된 모습
  54. 54. 타겟을 줄이는 방법 Configuration 과 XCConfig 연결 - XCConfig에서 작성한 플래그가 Build Setting에 연결된 것을 확인할 수 있음
  55. 55. 타겟을 줄이는 방법 Configuration 과 XCConfig 연결 - XCConfig에서 작성한 플래그가 Build Setting에 연결된 것을 확인할 수 있음
  56. 56. 타겟을 줄이는 방법 DEV - DEV Scheme 에서 실행 - 전처리문으로 분기 처리한 코드
  57. 57. 타겟을 줄이는 방법 QA - QA Scheme 에서 실행 - 전처리문으로 분기 처리한 코드
  58. 58. 타겟을 줄이는 방법 PROD - PROD Scheme 에서 실행 - 전처리문으로 분기 처리한 코드
  59. 59. 환경 변수로 프로젝트 관리 With Tuist
  60. 60. 환경 변수로 프로젝트 관리 Dev 타겟에만 필요한 프레임워크 - App Target은 개발용 프레임워크인 FLEX 제거 - Dev Target은 개발용 프레임워크인 FLEX 포함
  61. 61. 환경 변수로 프로젝트 관리 필요한 타겟만 프로젝트에! - 개발할 때에는 Dev App 타겟만 있으면 됨 - 배포 할때는 App 타겟만 있으면 됨 - 한 프로젝트에 두 개의 타겟이 있을 필요가 없음! Dev App App
  62. 62. 환경 변수로 프로젝트 관리 필요한 타겟만 프로젝트에! Dev App App 제어! - 개발할 때에는 Dev App 타겟만 있으면 됨 - 배포 할때는 App 타겟만 있으면 됨 - 한 프로젝트에 두 개의 타겟이 있을 필요가 없음!
  63. 63. 1 프로젝트 관리 툴 XcodeGen Tuist
  64. 64. 1 프로젝트 관리 툴 XcodeGen Tuist
  65. 65. 환경 변수로 프로젝트 관리 with ProcessInfo Environment - Project.swift에 Key값을 가진 환경 변수 생성 - 환경 변수의 Value가 “App”인지 확인하는 Bool 타입 변수 생성
  66. 66. 환경 변수로 프로젝트 관리 with ProcessInfo Environment - Project를 생성할 때 삼항 연산자로 Target 배열에 들어가는 값을 제어한다. - App일 때는 DevSource, FLEX 제거 - DevApp일 때는 DevSource, FLEX 포함
  67. 67. 환경 변수로 프로젝트 관리 with ProcessInfo Environment
  68. 68. 환경 변수로 프로젝트 관리 with ProcessInfo Environment
  69. 69. 정리 - XCConfig와 Configuration으로 개발 환경을 만들어 타겟을 줄인다. - Tuist로 환경 변수를 사용해 모듈, 타겟을 제어할 수 있다.

×