21
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

はじめに

こんにちは。
最近、プロジェクトで新しいSwiftパッケージを試したいと思うことが増えてきました。
しかし、Xcodeを普段お使いの方には伝わるかと思うのですが、新しいパッケージを試すためだけの環境をすぐに用意するのは思ったよりも手間がかかりますよね。
とくにXcodeに慣れていない方(私もその一人です)にとっては、とりあえず試したい環境を作りたいだけなのに…と大変に感じると思います。

そこで、色々調べてみたのですが、ArenaというCLIツールを使うと簡単に作成できることがわかりました。
あまり知られていないかもしれないので、今回はこのArenaを使ってPlaygroundにSwiftパッケージを追加したプロジェクトを爆速で作る方法を紹介します!

本記事では以下の環境を想定しています

  • macOS Sonoma 14.3
  • Xcode 15.2

Arenaとは

公式サイトにおいて、Arenaは以下のように説明されています。

Arenaとは、SPM(Swift Package Manger)を用いて簡単にセットアップされたSwift Playground入りのXcodeプロジェクトを作成するためのmacOSのコマンドラインツールです。
また、Arenaは(パッケージとして)GitHubだけでなく、ローカルリポジトリも参照できます。特に後者においては、ライブラリ(パッケージ)を開発中にPlaygroundを作成するのに便利です。

手順

1. Arenaのインストール

インストール方法は以下の通りで、HomebrewやMintなどを用いてインストールできます。

# Homebrewの場合
brew install finestructure/tap/arena

# Mintの場合
mint install finestructure/arena

2. Arenaを用いてプロジェクトを作成する

今回は、APIクライアントライブラリのAlamofireを使用するプロジェクトを作成してみます。
arenaコマンドのパラメーターに、使用したいパッケージのURL全体あるいは省略形(組織名とリポジトリ名のみ)を入れて実行します。

# URL全体の場合
arena https://github.com/Alamofire/Alamofire

# 省略形の場合
arena Alamofire/Alamofire

実行に成功すると、Xcodeが起動し作成したプロジェクトが開かれます。
Arenaで作成したプロジェクトには、以下の2つが含まれています

  • Content(Playground)
  • PlaygroundDependencies(Playground用パッケージ)
initial_file_navigator

3. Swift tools versionを修正する

後述するエラーが表示されない場合はこちらのプロセスはスキップして大丈夫です。

XcodeのIssue Navigatorに以下のエラーが表示される場合があります。
package 'playgrounddependencies' is using Swift tools version 5.10.0 but the installed version is 5.9.0
swift tool version error

この場合、PlaygroundDependencies内のPackage.swiftファイルを開き、swift-tools-version5.9に変更することでエラーを解消できます。
swift_tool_version_fix

エラーが解消されると以下のように自動でパッケージがダウンロードされます。
alamfire_installed

4. Swift Playgroundを移動させる

これでやっとPlaygroundでAlamofireが使える!と思いきや、実はまだ使えません。
これは、ContentがAlamofireが使用可能なPlaygroundDependenciesの外側にいるためです。そのためContentPlaygroundDependencies内に移動させる必要があります。

移動後のXcode File Navigatorは以下の通りになります。
after_moving_content

これでPlayground内でAlamofireを使用できるようになりました!
alamofire_example

21
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
21
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?