XcodeGen Preview iOS 14의 작은 위젯을 사용할 때까지 설정
안녕하세요, 저는 마을 송룡지개입니다!
iOS 14에 추가된 Widget(Widget Kit)을 구현해 보세요!
그래서 프로젝트를 시작하기로 결심했지만 결국 XcodeGen과 함께 사용할 수 없었다.
몇 시간 동안 개작
project.yml
하고 위젯의 프리뷰를 그어 메모로 남겼다.위젯을 설치할 때 앞으로 추가 설정이 필요하다면 덧붙이고 싶어요.
먼저 Xcode로 Widget Extension 추가
Target에서
애플 Extension의 Widget Extension 제작을 선택합니다.
여기에는 위젯 엑스텐션이
SampleWidget
이라는 이름으로 제작됐다고 가정한다.다음 파일을 새로 만듭니다.
그나저나 추가 후 표시된 힌트 중
Activate
를 선택하면 자동으로 추가Scheme
된다.SampleWidget/
Assets.xcassets
SampleWidget.intentdefinition
SampleWidget.swift
info.plit
project.yml
XcodeGen이 이 Widget Extension의 상태를 새로 재현하기 위해 설정 정보를 비교한 후
project.yml
파일에 추가했습니다.프로젝트에 따라 추가가 됐을 수도 있고 추가가 필요하지 않은 것도 있지만 위젯 추가 시 구성에 최대한 맞춰보겠습니다.
마지막
project.yml
파일의 전체 이미지를 올렸기 때문에 그걸 보면 이해하기 쉬울 거예요.여기에 프로젝트 이름을
SampleApp
로 설명한다.settings 추가
VALIDATE_PRODUCT
진짜입니다. 여기에 보충합니다.project.yml
name: SampleApp # プロジェクト名
options:
deploymentTarget:
iOS: 14.0 # 対象下限iOSバージョン
settings: # Project の Build Setting
configs:
Release:
VALIDATE_PRODUCT: true # 生成されたProductに対して検証テストを行うかどうか
SampleApp의 Target에 추가 기록
project.yml
targets:
SampleApp: # iOSアプリ本体のターゲット
type: application
platform: iOS
sources:
- SampleApp
# Widgetのintentdefinitionファイルパスを追加
- path: SampleApp/SampleWidget.intentdefinition
settings:
base:
PRODUCT_BUNDLE_IDENTIFIER: com.example.SampleApp
PRODUCT_NAME: $(TARGET_NAME)
# Preview Contentのパスを追加
DEVELOPMENT_ASSET_PATHS: "\"SampleApp/Preview Content\""
# 追加
ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES: true
# プレビューを有効化
ENABLE_PREVIEWS: true
# アクセントカラー名を追加
ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME: AccentColor
dependencies:
# Widget Extensionのターゲットを追加
- target: SampleWidget
Widget Extension 대상 추가Bundle ID 또는
dependencies
에 SwiftUI
, WidgetKit
SDK를 추가합니다.project.yml
SampleWidget: # Widget Extension
type: app-extension
platform: iOS
settings:
base:
## Bundle IDを忘れず追加
PRODUCT_BUNDLE_IDENTIFIER: com.example.SampleApp.SampleWidget
INFOPLIST_FILE: SampleWidget/Info.plist
DEVELOPMENT_TEAM: XXXXXXXXXX
SKIP_INSTALL: true
PRODUCT_NAME: $(TARGET_NAME)
ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME: AccentColor
ASSETCATALOG_COMPILER_WIDGET_BACKGROUND_COLOR_NAME: WidgetBackground
sources:
- SampleWidget
dependencies:
- sdk: SwiftUI.framework
- sdk: WidgetKit.framework
Widget Extension용 Scheme 추가environmentVariables
등을 추가하는 것을 잊지 마세요.project.yml
schemes:
SampleWidgetExtension: # Scheme名は任意のものを
build:
targets:
SampleWidget: all
SampleApp: all
run:
config: Debug
askForAppToLaunch: true
debugEnabled: false
environmentVariables:
- variable: _XCWidgetKind
value:
isEnabled: false
- variable: _XCWidgetDefaultView
value: timeline
isEnabled: false
- variable: _XCWidgetFamily
value: medium
isEnabled: false
test:
config: Debug
profile:
config: Release
askForAppToLaunch: true
analyze:
config: Debug
archive:
config: Release
Intents Extension을 추가할 때
Widget을 길게 누르면 "Widget 편집"메뉴가 표시되며 동적 목록으로 사용자에게 선택하려면 Intents Extension이 필요합니다.
먼저 Xcode에서 Intents Extension 추가
Target에서
애플 Extension의 Intents Extension 제작을 선택합니다.
여기에는 위젯 엑스텐션이
SampleIntent
이라는 이름으로 제작됐다고 가정한다.다음 파일을 새로 만듭니다.
그나저나 추가 후 표시된 힌트 중
Activate
를 선택하면 자동으로 추가Scheme
된다.다음 파일이 생성되었습니다.
SampleIntent/
IntentHandler.swift
info.plit
project.yml
Type을 추가하거나
.intentdefinition
에 parameter를 설정해야 합니다.이 글은 XcodeGen에 초점을 맞추기 때문에 부분적인 실현을 생략하였다🙏
project.yml
SampleIntent: # Intents Extension
type: app-extension
platform: iOS
settings:
base:
## Bundle IDを忘れず追加
PRODUCT_BUNDLE_IDENTIFIER: com.example.SampleApp.SampleIntent
INFOPLIST_FILE: SampleIntent/Info.plist
SKIP_INSTALL: true
PRODUCT_NAME: $(TARGET_NAME)
sources:
- SampleIntent
- SampleWidget/SampleWidget.intentdefinition
Intents Extension용 Scheme 추가project.yml
schemes:
SampleIntent: # Scheme名は任意のものを
build:
targets:
SampleIntent: all
SampleApp: all
run:
config: Debug
askForAppToLaunch: true
debugEnabled: false
test:
config: Debug
profile:
config: Release
askForAppToLaunch: true
analyze:
config: Debug
archive:
config: Release
project.yml의 전체상
마지막으로, 나는 나의 응용 프로그램 프로젝트에서 실제 Widget의 Preview를 성공적으로
project.yml
파일을 모두 업로드했다.이것은 응용 프로그램에서 실제로 사용하는 파일 링크
project.yml
입니다.Scheme 아이콘이 달라서 아쉽습니다.
방금 Xcode로 Widget Extension과 Scheme의 Scheme 아이콘을 추가했습니다.
XcodeGen에서 프로젝트를 생성할 때 Scheme 아이콘
(E) 제가 원했는데 Applian이 됐어요.
왜 이렇게 됐을까...
비교해 보면
Build
Targets의 배열 순서가 매우 이상하다.XocdeGen이 지정한 순서가 아니라 이름 순서?이렇게 프리뷰도 되고 별 문제 없을 것 같은데 신경 쓰이네요👀
끝까지 읽어주셔서 감사합니다.🙏
더 좋은 글씨가 있어요!여기를 써보는 게 좋을 것 같아!만약 이런 구성이 나에게 알려줄 수 있다면 나는 매우 기쁠 것이다.
트위터에서도 Swift와 Fluter/Firebase!
팔로우 해주시면 감사하겠습니다.☺️ → 🐦촌송룡
Reference
이 문제에 관하여(XcodeGen Preview iOS 14의 작은 위젯을 사용할 때까지 설정), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://zenn.dev/riscait/articles/widgetkit-with-xcodegen텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)