Swiftプロジェクトでトークン情報をどう扱うか考えた

こちらのやり方も考えましたが、CI使ってないしどうしようかなーと思って考えました。

https://qiita.com/uhooi/items/c3fd487f2ba6cd1990af

プロジェクトのCopy Bundle Resourcesにトークン情報を入れたらいける?
と思ってたんですが、生成したipaから復元できる?ようなのでこの方法は諦めた。
pinfoも復元できるし、リソースファイルもipaから抽出できる。だからここにトークン情報おいたらだめだよね。たぶん。

っで上記参考にAccessTokens.swiftを作ってアクセストークンを空文字にして保存してリモートにpushすればいいかとなった。その上でgitの追跡を除外したらいいんじゃないかな。

https://qiita.com/sqrtxx/items/38a506e59df67cd5d3a1

ということでやってみる。
AccessTokens.swiftを用意する。

let accessTokenKey = ""
let accessTokenSecret = ""

こんな感じに使ってます。

ENSession.setSharedSessionConsumerKey(accessTokenKey, consumerSecret: accessTokenSecret, optionalHost: nil)

っで、このプロジェクトはすでにgitで管理しているとする。
AccessTokens.swiftも既に上記の通り追加して追跡されているとする。
(AccessTokens.swiftを空文字で登録するので、.gitignoreの対象にはしない。)

次に、対象の階層でターミナルを開く

以下実行する。

$ git update-index --assume-unchanged AccessTokens.swift

fatal: Unable to mark file AccessTokens.swift

この状態でAccessTokens.swiftを変更してみた。
すると、期待した通りにgit statusで変更対象としてあがってこなくなった。