Open4

UnityのiOS Native PluginをSwiftだけで作りたい

TakayaTakaya

XCode おさらい

StaticLibrary と DynamicLibrary

https://qiita.com/rockname/items/bdf932bc6758d8820141

https://qiita.com/gdate/items/b49ef26824504bb61856

frameworkのInspectorの Add To Embedded Binaries にチェックを入れるわけは、作られるのが DynamicFrameWork だから

Swift Package Manager

https://tech.amefure.com/swift-package-manager

略称が SPM というので Unity Package Manager を立ち位置は同じ
なので配布元には通常は .dylib や .framework にはなってない

TakayaTakaya

どうやって作るか?

swift package init --type=library --name=SwiftPmPlugin

このコマンドでSwift Packageを作って、コードをゴリゴリ書くのはいいけど、問題はその先

どうやって .framework にするか?

問題1. generate-xcodeproj は使えない

swift の generate-xcodeproj は廃止された

https://github.com/apple/swift-package-manager/issues/6640#issuecomment-1582414768

問題2. 代わりの最新の最適解の手段がわからない

swift-create-xcframework を使う

https://qiita.com/Teach/items/a547e1383680c8372339

https://qiita.com/fuziki/items/955c2b35514bcfc37969

https://zenn.dev/katopan/articles/31d9aac63da8b2

Mint とは?

https://qiita.com/uhooi/items/6a41a623b13f6ef4ddf0

xcodebuild だけでいく

https://github.com/keijiro/Memo/blob/main/Pages/UnityNativePlugin.md

keijiroさんだ

ココに書いてある iOS用ビルドコマンドをアレンジしてこうしみた

xcodebuild clean build -scheme SwiftHogePlugin -configuration Release -sdk iphoneos -destination generic/platform=iOS -derivedDataPath .xcodebuild

うまくFrameWorkは作れたがStatic LibraryにしたかったのでPakage.swiftの中を type: .static , にした
そうすると .o ファイルまでしか作られなかった...

上述の「frameworkのInspectorの Add To Embedded Binaries にチェックを入れるわけ...」とも関連するが...

Xcode と真面目に向き合う

https://www.hanachiru-blog.com/entry/2022/06/09/120000

https://qiita.com/kumatta_ss/items/15152207cb05e54ad793

まだ試していないが、このやり方が最もいいのだろうか...
SwiftだけでなくなるがFrameWorkは作れるわけで