さて!連載3回目です。今回は、自分で作ったdebパッケージをCydia Repositoryに上げることを目標に、ポイントや手順などを説明します!
【脱獄アプリ開発】第1回 VirtualBoxにLinux Ubuntuをインストール!
【脱獄アプリ開発】第2回 Cydia Debパッケージを作成しよう!
はい。間が開いてしまったので、復讐・・・いや、復習しておきましょうね♪
自分で作ったdebパッケージを、そのまま「BigBoss」や「ModMyi」に提出してもおkですが、betaテストや個人用のリポジトリとして利用するために、作成しておきましょう!
長くなるので、じっくりコトコト何かを煮込みながら読んでください。
Cydiaリポジトリに必要なファイル
- debファイル:これがないと始まりません
- Packagesファイル:debパッケージをリストにしてRepositoryに読み込ませるものです
- Releaseファイル:Repositoryの説明を記載したファイルです
- Release.gpg:Repositoryの証明書みたいなものです
- CydiaIcon.png:Repositoryを登録した時に表示されるアイコンです
ざっと5つ必要になってきますね。
Release.gpgとCydiaIcon.pngは、無くても機能しますが、せっかくなので作っておきましょう!
目次
Packagesファイルを作成する
前回作成したdebファイルです。これがないとPackagesが作れないので、用意しておきます。
1.debファイルの元となったフォルダを削除
う〜ん、すっきり!
2.端末を開き、以下のコマンドを入力
cd ~/apt(aptディレクトリに作成したという前提) dpkg-scanpackages . /dev/null > Packages
「Packages」ファイルが出来ました!!
開くとわかりますが、debファイルのディレクトリやMD5ハッシュ値などが記載されています。
Cydiaでは、これを元にリストとして読み込んでいます。
3.Packagesを圧縮する
Packagesのままでも読み込みますが、Cydiaはgzやbz2に圧縮して軽くしても読み込んでくれます。
gzip Packagesもしくは・・・
bzip2 Packagesgzの方が軽いので、そちらをおすすめします。
出来ました!!
このまま同一ディレクトリにどんどん追加していってもおkですが、この後もdebパッケージが増えていくことを考えると、debファイルは別で管理した方がわかりやすくなります。
というわけで、「debs」フォルダを作って、debパッケージをそこに全てぶっ込みましょう!
この場合ですと、「Packages」の作成方法が変わってきます。
apt-ftparchive packages ./debs > Packages gzip Packages
このようにコマンドを入力します。
すっきり°˖✧◝(。╹◡╹。)◜✧˖°
4.debファイルの作成からPackagesの生成まで自動化する
毎回この作業を行うのは、正直だるいですね♪~ <(゚ε゚)>
debファイル、リポジトリの作成を自動化するシェルスクリプト - J-Style Blog
fukajunさんの作成した「autorepo」を改良したものを使います!
- autorepo_debs:「debs」ディレクトリを利用した場合
- autorepo_dir:同一ディレクトリで利用する場合
これを「apt」ディレクトリに入れて、「端末内で実行する」をクリックします。
端末が立ち上がるので、以下のように処理します。
- debパッケージを作る場合、「debファイルにするフォルダ名」を入力
- Packagesだけ更新する場合、「skip」と入力
例えば、debパッケージを作成するときの、preinst/postinst/prerm/postrmへのchmod 755コマンドなどを自動で行い、debファイルを作成しPackages.gzまで生成してくれます。
「skip」を入力すると、古いdebファイルの情報(Packages)を削除し、新しくPackages.gzとして生成してくれます。
それぞれ、自分に合った方を利用してください。
以上で、Pcakgesの作成は糸冬 了です。
Release/Release.gpg/CydiaIcon.pngの作成
@NEXTi4HACKさんの「Cydia リポジトリ 作成」を参考に作成します。
1.Releaseファイルの作成
「apt」ディレクトリに「Release」という名前で、新しいドキュメントを作成します。
Origin: ichitaso repository(Cydiaに登録した時に表示される名前) Label: ichitaso(リポを開いた時に表示されるラベル名) Suite: stable Version: 1.0 Codename: tangelo Architectures: iphoneos-arm Components: main Description: ichitaso's repository(説明欄)
自分のものはこんな感じで記述しています。
2.GPG鍵の作成
端末を立ちあげて、以下のように入力
sudo gpg --gen-key 1 1024 0 y
名前を入力 メールアドレスを入力 コメントを入力(例.作品&作成管理者ichitasoのリポジトリです) パスフレーズを2回入力(長い文字列)パスフレーズは、長いアルファベットの文字列を入力します(自分の好きな曲の歌詞をローマ字などにするなど)あとで使用するので、あらかじめメモっときましょう!
3.Release.gpgの作成
以下のコマンドを入力します。
cd ~/apt sudo gpg -abs -o Release.gpg Release パスフレーズを入力
GPG鍵のパスフレーズがわからなくなって、消したい場合
sudo gpg --delete-secret-keys 名前/アドレスなど(例.ichitaso)上手くいかない場合は、リセットして始めからやり直してみてください。
完成!
4.CydiaIcon.pngの作成
自分の場合、114 x 114 pxで作っています。カッコイイのを作りませう!
デキタ――(゚∀゚)――!!
これらを、サーバーにうpすれば、Cydia野良Repositoryの完成です。
自鯖を持ってる方は、そちらへ。フリーの「myrepospace.com」でもおkですが、動作が不安定なのと、自分用のリポジトリとして「Google App Engine」を利用します。無料です(重要)
Google App Engineを使ったCydiaリポジトリの作成方法
Google App Engineを使って無料でサイトを立ち上げる方法 - EC studio 技術ブログ
こちらのページを参考に作成します。
1.Google App Engineを登録する
https://appengine.google.com/
こちらから登録します。Googleアカウントを持っていない場合、作成してください。
2.「Create Application」 をクリック
3.メールか電話で確認コードを取得
入力します。
3.作成するアプリケーション(サイト)の情報を入力
作成するアプリケーション(サイト)の情報を入力しましょう。
「Application Identifier」がアプリケーション一つ一つに割り当てられるサブドメイン名になります。
この部分は後から変更したり、削除することができないので注意!
ドメインを取得するつもりで設定しましょう。
タイトルは後からでも変更できます。
4.予備の管理者を決めておく
https://appengine.google.com/ にアクセスすると、作成したApplicationが表示されるのでクリック
このような感じで、サブアカウントに管理者権限を与えておきましょう!
【参考】ichitaso Cydia Repository 変更のお知らせ
突然死もありますので・・・
5.Python 2.x.xをInstall
http://www.python.org/download/
こちらから、自分のOSに合った「Python(2.x.xのバージョン)」をダウンロード、インストール
6.Google App Engine SDKをInstall
Downloads - Google App Engine — Google Developers
こちらから、自分のOSに合ったGoogle App Engine SDK をダウンロード、インストール
7.Google App Engine Launcherを起動
メニューの「File」から「Create New Application..」をクリック
「Application Name」に、最初にブラウザ側で作成したアプリケーション名を入れます。
(Application Identiferの部分。サブドメインにあたるところです)
「Parent Directory」に、先ほど作成したファイルなどを入れるフォルダを指定します。
(指定したフォルダに、アプリケーション名のサブフォルダが作成されます)
作成したアプリケーションを選択し、「Run」ボタンをクリック
8.アップロードするファイルを指定する
先ほど指定したディレクトリ内に「app.yaml」というファイルが出来ているので、テキストエディタで開きます。
こんな感じで編集します。
application: willfeeltips version: 1 runtime: python api_version: 1 handlers: - url: / static_files: index.html upload: index.html - url: /index.html static_files: index.html upload: index.html - url: /apt static_files: index.html upload: index.html - url: /apt/ static_files: index.html upload: index.html - url: /apt/(.*) static_files: apt/\1 upload: apt/.* - url: /depiction/(.*) static_files: depiction/\1 upload: depiction/.* - url: /index_files/(.*) static_files: index_files/\1 upload: index_files/.*
自分の場合、Application名/aptディレクトリにファイルを配置しています。
また、RepositoryのURLにアクセスした場合、自分のBlogにジャンプするようにしています。
そのため、http://[アプリケーション名].appspot.com、http://[アプリケーション名].appspot.com/apt、http://[アプリケーション名].appspot.com/apt/ にアクセスした場合、index.htmlを表示させるように指定してます。
index.htmlをテキストエディタ(文字コード:UTF-8)で作成します。
<html> <head> <meta http-equiv="refresh" content="10;URL=http://ichitaso.blogspot.com/"> <title>ichitaso's repository</title> </head> <body> <h1>ichitaso's repository</h1> <p>10秒後、自動的にBlogへ移動します。</p> <p>©2013 <a href="http://ichitaso.blogspot.com/">Will feel Tips</a> by <a href="https://twitter.com/ichitaso">@ichitaso</a> All Rights Reserved.</p> </body> </html>
- 「depiction」には、debパッケージの詳細を説明したhtmlファイルを配置
controlファイルの「Depiction: 」にhttp://[アプリケーション名].appspot.com/depiction/*.html このようにして、debパッケージを開いた時に説明が表示されるようにしています。
(記述方法は、BigBossなどのソースを参考にしてください) - 「index_files」には、アイコンなどの必要なファイルを配置
それぞれ、Application名配下にフォルダを作成して、ファイルを入れてあげましょう。
9.サーバーにアップロードする
GAEのLauncherにある「Deploy」をポチッとな
GmailのアドレスとPasswordを入力し「OK」
このようになれば 完成☆(・ω<)
Cydiaを開いて、[Manage]->[Sources]->[Edit]->[Add]から、http://[アプリケーション名].appspot.com/aptを追加してみましょう!自分のリポジトリが上手く表示されれば、作業完了です!お疲れ様でした!
次回は、もう少し難しいdebパッケージを作成する手順などを紹介する予定です。
お楽しみに〜・・・あ、共有され具合で、モチベーションが変わるのでよろしくです♪~ <(゚ε゚)>
でわでわ〜
【脱獄アプリ開発】第4回 XcodeとiOSOpenDevをインストールしよう!