본문 바로가기

Mobile/IOS

iOS 커스텀 프레임워크 만들기

이 글은 공부한 내용을 기반으로 정리하는 글 이오니 언제든 건전한 비판은 환영합니다.

 

1. FrameWork 만들기

 

먼저 FrameWork를 만들고자 한다면 Xcode를 키고 

Framework & Library 로 클릭한다.

 

 

그리고 nest를 누른다음에 ProductName을 적어준다 
여기서는 Secrets라고 product name을 적었다.

그러면

이렇게 파일형태가 나올 것이다.

유튜브에 찾아보니 product가 따로 생기면서 framework쪽이 생기던데 이번에 하면서는 보이지는 않았다.

 

그리고 해당 프로젝트로 들어가서 ios 타켓을 잡아준다.

 

그 이후에 swift파일을 만들어 준다.

여기서 위와같은 .swift 파일을 만들어 주었다.

 

해당 파일에 적은 코드를 보면 

 

//
//  SecretsDemo.swift
//  Secrets
//
//  Created by lukaOS on 2023/09/18.
//

import Foundation

public class SecretsDemo{
    private var isAuthorized: Bool
    
    public init(key: String){
        isAuthorized = Approved.keys.contains(key) ? true : false
    }
    
    public func readSecret() -> String?{
        isAuthorized ? "I love custom frameworks" : nil
    }
}

private struct Approved{
    
    static let keys = ["12345", "asdfg"]
    
}

위와 같이 적어주었다. 대략 설명을 하면 SecretsDemo를 init하면서 해당 key값과 동일하다면 readSecret()하면 문구가 나오는 로직을 작성하였다.

 

그리고 프로젝트로 다시 들어가서 '+'버튼을 클릭하여 준다

그리고 other -> Aggregate를 클릭하여 준다.

prduct Name은 XCFramework로 만들어 주었다.

 

 

XCFramework가 만들어 졌으면 만들어진 target을 클릭하여 Build Phases를 누르고 '+'를 클릭한다.

 

그러면 New Run Script Phase를 클릭하여 준다.

그러면 Run Script가 생기는 데 스크립트를 넣어주어야 한다.

밑에와 같이 넣어준다.

 

# Build Device and Simulator versions
xcodebuild archive -scheme "${PROJECT_NAME}" -archivePath "${BUILD_DIR}/iphoneos.xcarchive" -sdk iphoneos SKIP_INSTALL=NO BUILD_LIBRARY_FOR_DISTRIBUTION=YES
xcodebuild archive -scheme "${PROJECT_NAME}" -archivePath "${BUILD_DIR}/iphonesimulator.xcarchive" -sdk iphonesimulator SKIP_INSTALL=NO BUILD_LIBRARY_FOR_DISTRIBUTION=YES

xcodebuild -create-xcframework \
    -framework "${BUILD_DIR}/iphoneos.xcarchive/Products/Library/Frameworks/"${PROJECT_NAME}".framework" \
    -framework "${BUILD_DIR}/iphonesimulator.xcarchive/Products/Library/Frameworks/"${PROJECT_NAME}".framework" \
    -output "${BUILD_DIR}/"${PROJECT_NAME}".xcframework"

    
# Copy the xcframework to the project directory
cp -R "${BUILD_DIR}/"${PROJECT_NAME}".xcframework" "${PROJECT_DIR}"

# Open the project directory in Finder
open "${PROJECT_DIR}"

그리고 Aggregate를 통해 XCFramework로 만들어준 타겟을 잡고 Run한다.

 

 

 

그러면 밑에와 같이 framework가 생성이 된다.

프레임워크 넣기

 

새로운 프로젝트를 만들어서 프레임워크를 넣어보자면 FrameWork 폴더를 copy를 한다.

그러면 밑에와 같이 폴더가 생기고

해당 Target에 FrameWorks 부분에 들어가서 Embed&Sign을 선택하여 준다

 

해당 viewController에서

이렇게 넣어주었다.

실행을 하면

위와 같이 나왔다.

'Mobile > IOS' 카테고리의 다른 글

Static Framework, Dynamic Framework  (0) 2023.11.15
ViewModel을 이용한 버튼 활성화 방법  (0) 2022.10.18
Objective-c xml 파싱, json 파싱  (0) 2022.08.21
DispatchQueue  (0) 2022.07.01
CocoaPods 에러 Cannot find 'Auth' in scope  (0) 2022.05.04