Xcode12の環境で、SwiftSoup のライブラリーを利用するまでに手こずったのでメモ。
CocoaPods のインストール
CocoaPods を gem install で /usr/local/bin ディレクトリィ指定でインストールします。オプション指定しない場合には、/usr/bin への書き込み権がなく失敗します。
CocoaPods のインストール方法
$ sudo gem install cocoapods -n /usr/local/bin
失敗の例
$ sudo gem install cocoapods
Fetching ffi-1.14.2.gem
Fetching cocoapods-1.10.1.gem
Fetching cocoapods-core-1.10.1.gem
Building native extensions. This could take a while…
Successfully installed ffi-1.14.2
Successfully installed ethon-0.12.0
Successfully installed typhoeus-1.4.0
Successfully installed public_suffix-4.0.6
Successfully installed addressable-2.7.0
Successfully installed cocoapods-core-1.10.1
ERROR: While executing gem … (Gem::FilePermissionError)
You don’t have write permissions for the /usr/bin directory.
Xcode でプロジェクト作成
Xcode で、SwiftSoap を利用するプロジェクトを作成します。
$ pwd
/Users/ … /SampleProject
$ ls
Build/
SampleProject/
SampleProject.xcodeproj/
SampleProjectTests/
SampleProjectUITests/
Pod の初期設定(SwiftSoup 初期設定)
pod init で初期化を実施します。
$ pod init
$ ls -F
Build/
Podfile
SampleProject/
SampleProject.xcodeproj/
SampleProjectTests/
SampleProjectUITests/
$ vi Podfile
できあがった Podfile を viコマンドで編集し、pod SwiftSoup を追加します。
# Uncomment the next line to define a global platform for your project
# platform :ios, ‘9.0’
target ‘SampleProject’ do
# Comment the next line if you don’t want to use dynamic frameworks
use_frameworks!
# Pods for SampleProject
pod ‘SwiftSoup’
target ‘SampleProjectTests’ do
inherit! :search_paths
# Pods for testing
end
target ‘SampleProjectUITests’ do # Pods for testing
end
end
Pod で SwiftSoup のインストールを実施します。この時、Xcode は完全に終了させておいてください。(2回目以降は pod update を実行します。)
$ pod install
いくつかの Warning がでますが、無視して構いません。
$ pod install
Analyzing dependencies
Downloading dependencies
Generating Pods project
Integrating client project
Pod installation complete! There is 1 dependency from the Podfile and 1 total pod installed.
[!] Automatically assigning platform `iOS` with version `14.0` on target `SampleProject` because no platform was specified. Please specify a platform for this target in your Podfile. See `https://guides.cocoapods.org/syntax/podfile.html#platform`.
[!] The `SampleProjectUITests [Debug]` target overrides the `ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES` build setting defined in `Pods/Target Support Files/Pods-SampleProject-SampleProjectUITests/Pods-SampleProject-SampleProjectUITests.debug.xcconfig’. This can lead to problems with the CocoaPods installation
– Use the `$(inherited)` flag, or
– Remove the build settings from the target.
[!] The `SampleProjectUITests [Release]` target overrides the `ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES` build setting defined in `Pods/Target Support Files/Pods-SampleProject-SampleProjectUITests/Pods-SampleProject-SampleProjectUITests.release.xcconfig’. This can lead to problems with the CocoaPods installation
– Use the `$(inherited)` flag, or
– Remove the build settings from the target.
$ ls -F
Build/
Podfile
Podfile.lock
Pods/
SampleProject/
SampleProject.xcodeproj/
SampleProjectTests/
SampleProjectUITests/Build/
SampleProject.xcodeproj/
Xcode で WorkSpace を開く
Xcode で SampleProject.xcworkspace を開きます。通常開いている SampleProject.xcodeproj を選ぶと SwiftSoup は利用できません。
Xcode で SwiftSoup を import します。import 直後には、「Could not build Objective-C module ‘SwiftSoup’」のエラーが表示されますが、一度 Build を実行すると、SwiftSoup がコンパイルされて正常化します。
これで、SwiftSoup の準備が完了です。