iOS
-
iOS 기업 내부 전용 앱(ipa) 배포하기iOS 2024. 4. 2. 22:37
★ Enterprise 계정 필요 순서 개요 1. 앱 Identifier 생성 2. iOS Distribution Certificate 생성 3. Universal Distribution Profile 생성 4. Xcode에서 프로젝트 아카이브, ipa 파일 생성 5. ipa 파일 다운로드 경로가 포함된 manifest.plist 파일과 ipa 파일 서버에 업로드 6. manifest.plist 파일을 불러오면, 파일의 정보를 사용해서 itms-services 프로토콜을 통해 기기에 ipa 다운로드, 애플리케이션 설치 1, 2, 3 내용 생략 ipa 파일 생성 1. Archive 2. Distribute App 클릭 3. Custom(또는 Enterprise) 선택 4. Enterprise 선택 5. D..
-
iOS WKWebView 파일 다운로드iOS 2024. 3. 15. 21:30
웹뷰에서 파일을 다운로드하기위해서 다음과 같은 딜리게이트를 조합해서 사용. ▶︎ WKNavigationDelegate: 웹뷰의 내비게이션 요청을 추적하며, 내비게이션 변화에 대한 허용 또는 거절을 수행하는 기능 제공▶︎ WKDownloadDelegate: 웹뷰 다운로드 및 진행 상황 추적 기능 제공▶︎ UIDocumentInteractionControllerDelegate: 문서 미리보기, 공유 및 '파일'에 저장 기능 제공 WKNavigationDelegateWKNavigationDelegate의 webView:decidePolicyForNavigationAction:preferences:decisionHandler: 메서드를 사용해서 웹뷰에서 내비게이션 시 낚아챌 수 있습니다. 아래와 같이 내비게이션..
-
Apple CertificatesiOS 2024. 2. 14. 15:06
★ 인증서를 사용하려면, Apple Development Program Membership에 가입되어 있어야 합니다.★ Apple Pay, Apple Push Notification, Apple Wallet, Mobile Device Management와 같은 서비스를 사용하려면 Apple Developer 웹의 Account 탭에서 인증서를 만들고, 다운로드 해야합니다. 앱을 빌드하는 과정에서 위의 서비스를 사용하는 등, 필요하다면 Xcode는 서명 인증서를 요구하며, 인증서와 함께 그에 대한 공개-비공개 키쌍을 키체인에 추가합니다. 또한 인증서와 공개키는 developer account에 추가됩니다. 개발-배포 과정에서, 다른 유형의 인증서를 사용하게 됩니다. ▶︎ 앱을 디바이스에서 실행하기 위해서..
-
CLI 없이 Xcode Workspace에 Cordova Custom Plugin 추가하기iOS 2023. 6. 23. 10:16
보통은 아래와 같은 방법으로 커스텀 플러그인을 추가합니다. 하지만 여의치 않은 경우(Cordova-based project가 없거나 플러그인을 배포하지 않은 상황) Command Line Interface 없이 Xcode Workspace에 파일 복사 및 추가 코드를 작성함으로써 플러그인을 포함해야 할 때도 있습니다. $ cordova plugin add 커스텀 플러그인 이름 $ cordova plugin add URL $ cordova plugin add ../path/to/my/plugin/relative/to/project --link config.xml cordova_plugins.js ... // plugin.xml 내용 적용 { "id": "cordova-plugin-custom.CustomP..
-
Swift를 사용해서 Cordova Custom Plugin 만들기 (2)iOS 2023. 5. 25. 17:39
Swift를 사용해서 Cordova Custom Plugin 만들기 (1)에 이어서 clobbers 요소에 대해서 알아보고, iOS 플랫폼의 native view를 띄워보겠습니다. 플러그인 프로젝트의 Swift 코드 @objc(presentModalView:) func presentModalView(_ command: CDVInvokedUrlCommand) { print("presentModalView: called.") let viewController = UIViewController() let label = UILabel() label.translatesAutoresizingMaskIntoConstraints = false label.text = "Hello world!" label.font = ...
-
Swift를 사용해서 Cordova Custom Plugin 만들기 (1)iOS 2023. 5. 25. 03:13
Cordova 프로젝트에서 iOS 플랫폼의 메서드를 호출하고, 문자열을 수신하여 출력하기 위해서 간단한 Cordova Custom Plugin을 만들어보겠습니다. 플러그인 컴포넌트를 만들어내기 위해서, plugman을 설치해야 합니다. plugman은 플러그인 생성과 구성 및 관리를 도와주는 command line tool입니다. $ npm install -g plugman Create plugin using plugman $ plugman create --name CordovaSamplePluginSwift --plugin_id com.yeolmok.samplepluginswift --plugin_version 0.0.1 create 메서드는 플러그인의 뼈대를 만들어주는 메서드입니다. plugin.xm..
-
Swift Package에 GitHub Actions 사용하기iOS 2023. 5. 5. 16:08
GitHub Actions는 빌드, 테스트, 배포 파이프라인을 자동화할 수 있는 CI/CD(continuous integration & continuous delivery) 플랫폼입니다. 이 글의 아래에서는 GitHub Actions를 사용해서 간단한 Swift Package에 CI를 적용해보려고 합니다. 쉽게 말해서, 깃허브 저장소에 새로운 내용을 push 할 때, 트리거 되어 실행되는 스크립트를 작성해보겠습니다. GitHub Actions의 컴포넌트로는 다음과 같은 것들이 있습니다. Workflow Event Job Action Runner Workflows Workflow는 하나 이상의 job으로 구성되어 그것들을 수행하는 자동화 프로세스입니다. YAML 파일(형식: *.yml)에 정의되어 이벤트가..
-
Class와 Performance in SwiftiOS 2023. 2. 2. 14:16
Reducing Dynamic Dispatch Swift는 기본적으로 Objective-C처럼 동적인(dynamic) 언어입니다. 하지만 Objective-C와 달리 Swift에서는 프로그래머가 필요에 따라 dynamism을 제거하거나 줄여서 런타임 성능을 향상시킬 수 있습니다. Dynamic Dispatch 클래스는 프로퍼티와 메서드에 접근하기 위해 기본적으로 동적 디스패치를 사용합니다. 따라서 아래와 같은 코드에서 동적 디스패치를 통해 a.aProperty, a.doSomething(), 그리고 a.doSomethingElse()에 접근합니다. class A { var aProperty: [Int] func doSomething() { ... } dynamic doSomethingEles() { ....