GitHubのアクセストークン有効期限切れ
Xcodeでいそいそとアプリ開発をしている最中、先日まで出来ていたGitHubへのpushが出来なくなりました・・・。そして下記のようなメッセージが。

Authentication failed because the credentials were rejected.
資格情報が拒否されたため認証に失敗しました
XcodeからGutHubへの問い合わせに対して拒否された模様。
とはいえ、こちらはGitHubから届くメールに気付いていれば対応は可能です。
これについての対応策を記録残します。
GiuHubからの連絡メール
GitHubに拒否られる一週間前にGitHub Teamから下記メールが届きます。
なにやら”access token”の事が書かれているみたいです。
一週間前(in 7 days)

Your personal access token is about to expired
個人用アクセス トークンの有効期限が近づいています
とのことで、メールの詳細を読むと“in 7 days(7日以内に)”とのこと。
そして、まだアクセストークンが必要だったら、GitHubの設定画面で “generate an equivalent(同じものを作って)”とURLまで記載されています。
この時点でアクセストークンを作成し、XcodeのGitHubアカウントに新しいアクセストークンを設定すれば、Xcodeからpush出来なくなる事象は発生しません。
しかし、このメールを無視したり気付かなかったりすると期限が切れてしまいます・・・。
メールはその後、アクセストークンの期限が切れる24時間前と期限が切れてしまった時にも届きます。
アクセストークンの期限切れ
こちらのメールは “has expired(期限が切れました)”とのアナウンスです。

だからといって慌てる必要はありません。
期限が切れても、いつでもアクセストークンは作成することが出来ます。
アクセストークンが切れている間、XcodeからGitHubへのアクセスが出来なくなるだけです。
データが失われるとかそういうのもありませんし、Xcodeを使わないで直接GitHubへのログインならなんら問題ありません。
これはログイン(アクセス認証)の違いによるものですね。
XcodeからGitHub:アクセストークン認証(※今回はコチラの有効期限切れ)
GitHubサイトから:ID、パスワード認証
【対応策】アクセストークンの再設定
繰り返しになりますが、GitHubのアクセストークンの期限が切れてから、Xcode上でpushをするとGitHub側に拒否られます。
Xcode上での処理

解決策はアクセストークンを再生成すればよいので、右下の“Reauthenticate(再認証する)”を押下します。
アクセストークンは、通常のID,パスワードと異なる、認証の仕組みです
「Sign in to your GitHub account(GitHubアカウントへサインイン)画面」が表示されます。

Account:にはXcodeからGitHubへサインインするアカウント名(特に変更しない)
Token:Enter your Personal Access Token(あなたのアクセストーンを入力)
つまり、新しいアクセストークンを生成し、token:欄に入力したら無事にpush出来そうです。
その下、期限が切れているアクセストークンで使っていたスコープ(利用範囲)が表示されているので内容を確認して、左下の“Create a Token on GitHub(GitHubでトークン作成)”ボタンを押下します。
GitHub上での処理
そうすると、GiuHubのログイン画面が表示されるので、IDとパスワードを入力してログインします。
アクセストークン設定画面
直接、個人用アクセストークンを作成する画面が表示されるので、必要な項目を入力します
(下記画面写真では、日本語翻訳しています)

手記:任意のアクセストークン名
満了:アクセストークンの有効期限
スコープの選択:多くのWebサイトでは”レポ”のみでOKと書かれていますが、自分は
・repo
・admin:publick_key
・user
・write:discussion
上記4つにチェックをしています。
最後に、画面下にある“Generate token(トークン作成)”ボタンを押下します。
アクセストークン表示画面

レ “アクセストークン(長い意味不明な文字列)” をコピーします。
アクセストークンは発行すると1度しか画面上で確認できません!!
なので、コピーして控えるのをお忘れなく!!
新しく発行したアクセストークンの下には、有効期限が2024年1月13日で切れてしまったアクセストークンが表示されています。”アプリケーション開発”は、上記”手記”欄に書いたトークン名です。
Xcode上での処理(再)
先ほどのXcodeの画面でToken:欄に、新しく作成したアクセストークンをコピーします。
すると、右下“Sign In(サインイン)”ボタンが押せるようになっています。

押下すると、当初表示された”トークンが切れているよ画面”が表示されなくなり、そのままXcodeがGitHubにアクセスし”push”処理が正常に終わります。
このような感じで、今回は特に難しいことも無く、トラブル(なのか?)対応できました!
アプリ開発初心者は要注意
アプリ開発を始めたばかりでまだ知識が乏しいとき。
XcodeからGitHubを直接使えるようにするため、意味も分からず書籍やwebサイトのやり方をただ真似てアカウント・アクセストークン設定をして、動いたことに満足して終わってしまうことが多々ありますよね。
なので、実際には設定で何をしたのか、どういう意味だったのか、良く分かっていません。
このような背景だと、突然、GitHub Teamからアクセストークンが切れますよ!ってメールが届いても???、で自分には関係ない、又は良く分からないからと、スルーしてしまう可能性が無いとは言えません。
上級者や慣れてしまえば有りえない話なんですけどね。初心者には通用しません。
これからは、こういうトラブルの時にしっかりを技術背景や設定手順も抑えつつ、アプリ開発を進めていかないといけませんね。
参考Webサイト
・XcodeへのGitHubアカウントの設定 – アールケー開発 (rk-k.com)
・GithubでPersonal access tokens(アクセストークン)を設定してみた | DevelopersIO (classmethod.jp)

コメント