（Xcode12）Carthage導入手順 /ライブラリを入れたいけどcarthage updateが使えない!?

Carthage(カーセッジ)にライブラリ(今回はNuke)を入れたかったのですが、
Nukeの公式サイト含めいろんな記事を参考にしても全て失敗しました:sob:
どうやら2020年11月現在,Xcode12はCarthageにちゃんと対応してくれていないようです。
苦しみながらもようやく入れることができたのでXcode12での使い方を紹介します。

##Carthageインストール
ターミナルにて

```
brew install carthage
```
##Carthageファイル作成
以降、自分のプロジェクト内にて実行。

```
touch Cartfile
```
##Carthageファイル編集
```
vim Cartfile
```
この中に使用したいライブラリを記述します。
今回はNukeを入れます。
公式サイト： https://github.com/kean/Nuke/blob/9.1.0/Documentation/Guides/installation-guide.md#carthage

```
github "kean/Nuke" ~> 9.0↲
```
（:wq もしくは :wq!で上書き保存）
##ここからXcode12 独自の対応！！
参考URL: https://github.com/Carthage/Carthage/issues/3019#issuecomment-665136323
###carthage.shファイル作成
```
touch carthage.sh
```
###carthage.shファイル編集
```
vim carthage.sh
```
その中に下記をコピペ。 （:wq もしくは :wq!で上書き保存）

```
#!/usr/bin/env bash

# carthage.sh
# Usage example: ./carthage.sh build --platform iOS

set -euo pipefail

xcconfig=$(mktemp /tmp/static.xcconfig.XXXXXX)
trap 'rm -f "$xcconfig"' INT TERM HUP EXIT

# For Xcode 12 make sure EXCLUDED_ARCHS is set to arm architectures otherwise
# the build will fail on lipo due to duplicate architectures.
echo 'EXCLUDED_ARCHS__EFFECTIVE_PLATFORM_SUFFIX_simulator__NATIVE_ARCH_64_BIT_x86_64__XCODE_1200 = arm64 arm64e armv7 armv7s armv6 armv8' >> $xcconfig
echo 'EXCLUDED_ARCHS = $(inherited) $(EXCLUDED_ARCHS__EFFECTIVE_PLATFORM_SUFFIX_$(EFFECTIVE_PLATFORM_SUFFIX)__NATIVE_ARCH_64_BIT_$(NATIVE_ARCH_64_BIT)__XCODE_$(XCODE_VERSION_MAJOR))' >> $xcconfig

export XCODE_XCCONFIG_FILE="$xcconfig"
carthage "$@"
```

そして下記を入力してCarthage内のライブラリを更新します。

```
./carthage.sh update --use-submodules
```
※尚、Nuke公式サイトには
>Run carthage update to build the framework and drag the built Nuke.framework into your Xcode project.

と指示が出ておりますが、Xcode12でcarthage updateやっても失敗します。


しばらく待つと、こんな返答がきました。エラーと出ておりますがこれでビルドできています！

```
*** Fetching Nuke
*** Checking out Nuke at "9.1.2"
*** xcodebuild output can be found in /var/folders/02/f5qmc3jn2_n9c962rsw716fm0000gn/T/carthage-xcodebuild.VZl87L.log
*** Skipped downloading Nuke.framework binary due to the error:
	"Bad credentials. The API can't be accessed using username/password authentication. Please create a personal access token to access this endpoint: http://github.com/settings/tokens"
*** Building scheme "Nuke" in Nuke.xcodeproj
```
## Xcode内での設定(以降、Xcode11と同じ操作）
### Xcodeのプロジェクトにビルドしたライブラリを入れる
![スクリーンショット 2020-11-21 23.49.06.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/670405/bd4a3264-2b59-10db-1b14-96f5e215fec0.png)

![スクリーンショット 2020-11-21 23.45.18.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/670405/aa661e0e-0e68-6a9b-0b4d-6680e5fdac0e.png)

以下のディレクトリを選択して「Open」を押す

```
プロジェクト名/Carthage/Build/iOS/Nuke.framework
```
### Run Scriptを設定
![スクリーンショット 2020-11-21 23.33.28.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/670405/2cbf0083-6156-9daf-368e-e6de50af7e0e.png)
③のコード

```
/usr/local/bin/carthage copy-frameworks
```
④のコード　
※尚、他にもframework入れるときは2段目以降に書けばOK!

```
$(SRCROOT)/Carthage/Build/iOS/[ライブラリ名].framework
```
### importする
準備が整ったのでコード上に下記を書いてビルド！ 「Build Succeed」が表示されれば取込完了です！

```
import Nuke
```
##おわりに
僕はこれを取り込むのに２日かかりました。。。 環境構築はしんどいですね。
皆さんの時間がショートカットされれば幸いです。


## 参考にさせていただいたサイト
https://qiita.com/tsuzuki817/items/8f6e2e0c2b3f9d197097
非常に参考になりました。ありがとうございました！