ギットハブ公開に向けて行ったこと。XCodeでのプロジェクト設定とこれからの管理について。
- 問題点:ギットハブに公開するプロジェクトには、バンドルアイデンティファイヤ、AppleIDを入れたくない。そして、アプストアーに公開するにはコードサインをしなくてはいけない。(アイデンティファイヤ、AppleIDが必要)
- 解決案:二つのプロジェクトと共有コードの形での運用
一つ目のプロジェクトは、作業用。ギットハブと連動して作業をします。個人情報入れないでも、シミュレーターでアプリを動かすことができます。
もう一つは、アプストアービルド、デプロイ用。プロジェクトファイル以外は、上のプロジェクトからファイルをリンクします。(コピーではなく、シンボリックリンクにみたいなもの?)このプロジェクトには、アプストアーに登録するための情報を入れておきます。ギットは使いません。
作業
サティを公開するための行った作業をちょっと詳しく。まずは今まで作業していたフォルダーを一気にコピー。
一つを、open.sati (公開用) もう一つを sati (デプロイ用)にします。
ともにフレッシュスタートということで、ディレクトリー内にある .git ディレクトリーを削除します。隠れファイルなので、ターミナルから rm -rf .git/
。
sati:アプストアー、実機検証用
satiの中のファイルはフロジェクトファイル、info.plist以外、全て捨ててしまいます。
プロジェクト内は真っ赤になります。一気に消してしまいます。
そして、open.sati のフォルダーからファイルをまとめてドラッグ&ドロップ。ダイアリグが出ます。コピーのチェックは外します。
残念ながら、Localizable.strings
がうまく引き継がれません。(多分ローカライズされたnibファイルなども引き継がれないと思います。)コマンドオプション+ドラッグのエイリアスでファイルを持ってくるもNG。しかし、XCode上でファイルを一旦 open.sati よりコピーして消し、ターミナルで リンクを ln -s
でリンクしてあげれば読み込みます。なんか中途半端ですが動きます。ディレクトリーはこんな感じになります。
そして、README や LICENCE 等、ターゲットに入れないファイルをメンバーから外します。
で、ビルドの設定などは引き継がれたままなので実機でもアプストア用のビルドなども今まで通り動きました。(アップロードはしていませんが、多分大丈夫だと思います。)
こちらのプロジェクトでは、ファイルをいじらないようにします。あくまでも、ビルドと実機テストようにします。
open.sati:ギットハブ、作業用
まずプロジェクトファイルを開けて、公開したくないものを抜きます。そして、リンクしているファイルがないかチェック。(私は、ビルド時にローカルからのファイルを参照しているところがあるので、その設定も抜きます。デプロイ用についていれば問題はない。) 幾つかのファイルは他のアプリと共有しているので、こっちのプロジェクトにコピーをします。
一通りチェックを終えたら、シミュレーターで動くかチェックします。
これで、作業はギットハブのプロジェクトで行う。ギットハブと共有しているプロジェクトでもシミュレーターで動かせることができ、検証機で動かしたい時とアプストアーにアップする時は別のプロジェクトですれば良い。デプロイ用はほとんど手を入れる必要はない、はず。
そして、公開します。
追記: READMEとライセンスはプロジェクトと同じ階層に置いておきましょう。ギットハブではそのREADが読み込まれ表示されます。
ギットハブに公開
公開をするには、ギットハブに載っている方法で行います。
まずはギットの初期化、その後、ファイルを追加して、コミットします。(ちょっとREADMEに何を書けばいいか悩みましたが、)9月6日のくろ~の日に公開。
duvel:open.sati jin$ git init
duvel:open.sati jin$ git add .
duvel:open.sati jin$ git commit -m "Initial Commit"
duvel:open.sati jin$ git remote add origin git@github.com:goozenlab/sati.git
duvel:open.sati jin$ git push -u origin master
Warning: Permanently added the RSA host key for IP address '[192.30.253.122]:443' to the list of known hosts.
Permission denied (publickey).
fatal: Could not read from remote repository.
Please make sure you have the correct access rights
and the repository exists.
鍵の設定でエラーが出ますが、作ってある公開鍵をコピーしギットハブの設定より新しい鍵の追加設定をします。参照
で再度挑戦、こんどはうまくいきます。
duvel:open.sati jin$ git push -u origin master
Warning: Permanently added the RSA host key for IP address '[192.30.253.123]:443' to the list of known hosts.
Counting objects: 155, done.
Delta compression using up to 8 threads.
Compressing objects: 100% (149/149), done.
Writing objects: 100% (155/155), 10.10 MiB | 39.00 KiB/s, done.
Total 155 (delta 37), reused 0 (delta 0)
remote: Resolving deltas: 100% (37/37), done.
To git@github.com:goozenlab/sati.git
* [new branch] master -> master
Branch master set up to track remote branch master from origin.
duvel:open.sati jin$
伴う追加作業
sati.xcodeprojで引き継げないところは、個別に変更する必要があります。(ビルド番号など) このプロジェクトの場合、ビルド終了時走らせているスクリプトも少し変更します。 少しだけ、リリース時に手を入れないといけないことがあります。
これから、
これで終了です。
で、、、READMEを入れる場所を間違えた。。がまあいいでしょう。次回コミット時に変更します。
ただし、作業用のプロジェクトで新しいファイルが追加された時は別途そのファイルをデプロイ用でも追加する作業が必要になります。まぁ、ビルドが通らなくなるのでわかると思いますが、、、
とりあえず。こんな感じで当分は行ってみます。
もし他に良い方法があったら、教えてください。(なーーんかありそうな感じ。)
See Also
🌷 tipping
🌻 sat ⚡️ goozenlab@getalby.com