본문 바로가기

iOS

(5)
[iOS] Xcode 14.3 아카이브 시 이슈 발생 (PhaseScriptExecution failed with a nonzero exit code) 빌드 하고 런하고 동작하는데 아무런 이상이 없었는데 배포를 하기위해 아카이브를 하는데 떡하니 에러가 발생했다 PhaseScriptExecution failed with a nonzero exit code 또 Xcode가 업데이트되면 붙였던 pods 라이브러리 버전이나 경로를 못찾나하고 다시 업데이트도 해보고 했지만 역시나 에러가 발생했다 구글링하면서 찾아본 결과 pod 쪽 스크립트가 버전이 바뀌면서 살짝 안맞았나보다 Pods-ProjectName-frameworks.sh 파일을 찾아서 하나만 추가해주니 잘되었다 해당 파일의 경로는 projectFolder/Pods/Target Support Files/Pods-ProjectName/Pods-ProjectName-frameworks.sh 편집기를 통해 파일..
[iOS,Swift] App과 Web 통신하기 (Webkit MessageHandlers) 하이브리드 앱을 만들면서 앱과 웹 사이에 정보교류가 필요하게된다 웹에서 앱을 호출하여 네이티브적인 요소를 동작시키거나 반대로 앱에서 웹을 호출하여 웹에서의 동작 또는 데이터를 넘겨주거나 할때 말이다 우선 웹에서 앱을 호출하게 될때를 알아보자 let configuration = WKWebViewConfiguration() class ViewController: UIViewController,WKScriptMessageHandler { ... let contentController = WKUserContentController() contentController.add(self,name:"setId") configuration.userContentController = contentController web..
[iOS,Swift] 스트리밍 URL로 비디오영상 재생하기 iOS에 기본제공되는 AVKit 을 이용하여 간단하게 영상을 재생해보자 우선 AVKit 을 import 해주고 URL을 설정하여 새로운 AVPlayerViewController로 띄워주는 방식이다 전체화면으로 바로 플레이어가 나오게되고 따로 스토리보드에 뷰를 만들필요가 없다 import AVKit import Foundation . . . DispatchQueue.main.async { let urlData = URL(string: "불러올 영상의 주소(URL)") let avPlayer = AVPlayer(url: urlData!) let avController = AVPlayerViewController() avController.player = avPlayer avController.view.fra..
[iOS,Swift] URL 인코딩 하기 (PercentEncoding) String 에서 기본적으로 제공하는 메소드를 사용하여 손쉽게 인코딩을 할수가 있다. let str = "인코딩할 내용"; let encodedStr = str.addingPercentEncoding(withAllowedCharacters: .urlHostAllowed) withAllowedCharacters 값으로 보통은 urlQueryAllowed 값을 사용하게된다. https://developer.apple.com/documentation/foundation/characterset#2902136 CharacterSet | Apple Developer Documentation A set of Unicode character values for use in search operations. develo..
[iOS,Swift] WebView 파일 다운로드 구현하기 iOS 에서 파일다운로드를 해서 다른 앱이나 Airdrop 등으로 공유하는 방향으로 구현해 보려고 한다 WebKit 의 WKNavigationDelegate를 상속받아 navigationResponse 에서 mimeType이 있을때 파일 다운로드를 구현하는 방식으로 하면 되겠다 우선 mimeType 구조체를 만들고 다운로드로 인식할 값을 init 해준다 struct MimeType { var type:String var fileExtension:String } ... var mimeTypes:[MimeType] = [] ... mimeTypes = [MimeType(type: "ms-excel", fileExtension: "xls") ,MimeType(type: "pdf", fileExtension: ..