Skip to main content

ローカルのパッケージ作成

これは何か

プロジェクトをまたいで使う共通クラスのようなものを管理するための仕組み

→ 自前 Framework などと比べると拍子抜けするぐらい簡単なので、使わない手はない

パッケージの作成

File > New > Package > Library

  • 自動生成されたコメント行、消すと動作しなくなる
  • いまは1クラス1フォルダ構成で運用しているけど、正解は分からない
swift
// swift-tools-version: 6.1
// The swift-tools-version declares the minimum version of Swift required to build this package.

import PackageDescription

let package = Package(
name: "CommonPackage",
products: [
.library(name: "ColorUtil" , targets: ["ColorUtil"]),
.library(name: "DateUtil" , targets: ["DateUtil"]),
.library(name: "StringUtil" , targets: ["StringUtil"]),
.library(name: "NumberUtil" , targets: ["NumberUtil"]),
],
targets: [
.target(name: "ColorUtil" , dependencies: ["NumberUtil", "StringUtil"]),
.target(name: "DateUtil" , dependencies: []),
.target(name: "StringUtil" , dependencies: []),
.target(name: "NumberUtil" , dependencies: []),

// .testTarget(name: "EventKitUtilTests", dependencies: ["EventKitUtil"]),
]
)

クラス等の作成時の注意点

  • 使用したいクラス、メソッドなどを public にする必要あり

既存プロジェクトからの参照

  • プロジェクト設定の [Package Dependency] または、File > Add Package Dependency から
  • 左下の [Local] ボタンを押してフォルダを選択
  • どのライブラリを参照するか選択する画面が出るので1個ずつ選択

クラス追加した場合も、この操作をやり直す

→ あとは、Package のところにフォルダが展開されて、import XxxUtil のように指定すれば使用できるようになる

トラブル: Local Package を追加したのにフォルダが展開されない

問題

  • 上の操作で Local Package を追加したのに、Package のフォルダが展開されず、ショートカットのような見た目になる
  • import もできない

原因

複数プロジェクトから開いてたらそのような動作となるので、
いったん Xcode 閉じてから、使用するプロジェクトだけを開き直す。