LoginSignup
23
14

More than 1 year has passed since last update.

SwiftPMプロジェクトのExampleとしてPlaygroundを利用する

Last updated at Posted at 2021-11-23

Xcode13.2から、拡張子.swiftpmを持つSwift Packageファイルが使えるようになりました。
実態は、Package.swiftをラップしたパッケージファイルなのですが、これを開くとPackage.swiftに指定されたアプリケーションを実行できるXcodeの特別なワークスペースを開くことができます。

このSwift Packageファイルは次のようにSwiftPMプロジェクトのExampleとして扱うことができます。

CleanShot 2021-11-23 at 13.21.35@2x.png

Example.swiftpmから、同階層のSwiftPMプロジェクトを呼び出すには、Example.swiftpm/Package.swiftに、相対パス指定でdependenciesを登録する必要があります。

Example.swiftpm/Package.swift
// swift-tools-version: 5.5

import PackageDescription
import AppleProductTypes

let package = Package(
    name: "Example",
    platforms: [
        .iOS("15.2")
    ],
    products: [
        .iOSApplication(
            name: "Example",
            targets: ["AppModule"],
            bundleIdentifier: "dev.noppe.DebugMenu.Example",
            teamIdentifier: "XXXXXXXXX",
            displayVersion: "1.0",
            bundleVersion: "1",
            iconAssetName: "AppIcon",
            accentColorAssetName: "AccentColor",
            supportedDeviceFamilies: [.phone],
            supportedInterfaceOrientations: [.portrait]
        )
    ],
    dependencies: [
        .package(name: "DebugMenu", path: "../") //ここ
    ],
    targets: [
        .executableTarget(
            name: "AppModule",
            dependencies: [
                .productItem(name: "DebugMenu", package: "DebugMenu", condition: nil)
            ]
        )
    ]
)

これで、Xcodeからはlocalとラベルのついたswiftpmとしてプロジェクトに取り込むことができました。

CleanShot 2021-11-23 at 13.29.15@2x.png

localパッケージはXcodeから編集することができるため、このような構成にしてExampleを元に開発することもできます。

謎のxmlなどが消えて、ピュアswiftな非常にシンプルなファイル構成になるのでぜひ試してみてください。

この構成はDebugMenuでも採用しています。
https://github.com/noppefoxwolf/DebugMenu


多分この構成にするとiPadのPlaygroundでも開けるようになるんじゃないかなぁ。

23
14
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
23
14