🌟
Swift PackageでARCをオフにする
モチベーション的にはObjective-Cを競プロでやるときにARCが効かないということで、開発環境もそれに合わせたいということです。swift build
で動かすためには、次のオプションを追加することです。
Package.swift
...
cxxSettings: [
.unsafeFlags(["-fno-objc-arc"])
]
...
ですが、XCode(13.2.1)上ではautorelease
などを書くとエラーになります。プロジェクトトップに、次のファイルを置きます(CLANG_ENABLE_OBJC_ARC = NO
だけでもとりあえず動く)。
Package.xcconfig
SUPPORTED_PLATFORMS = macosx;
MACOSX_DEPLOYMENT_TARGET = 12.1;
VALID_ARCHS[sdk=macosx*] = arm64;
CLANG_ENABLE_OBJC_ARC = NO
次のコマンドを実行します。
$ swift package --xcconfig-overrides Package.xcconfig
次のような警告文が出ますが、<package_name>.xcodeproj
が生成されます。
warning: Xcode can open and build Swift Packages directly. 'generate-xcodeproj' is no longer needed and will be deprecated soon.
open <package_name>.xcodeproj
するとARC無効化がXcode上でも反映されます。
Discussion