【脱獄アプリ開発】第3回 Google App Engineを使ったCydiaリポジトリの作成方法
さて!連載3回目です。今回は、自分で作ったdebパッケージをCydia Repositoryに上げることを目標に、ポイントや手順などを説明します!
【脱獄アプリ開発】第1回 VirtualBoxにLinux Ubuntuをインストール!【脱獄アプリ開発】第2回 Cydia Debパッケージを作成しよう!
はい。間が開いてしまったので、復習しておきましょうね♪
自分で作ったdebパッケージを、そのまま「BigBoss」や「ModMyi」に提出してもおkですが、betaテストや個人用のリポジトリとして利用するために、作成しておきましょう!
長くなるので、じっくりコトコト何かを煮込みながら読んでください。
Contents
Cydiaリポジトリに必要なファイル
- debファイル:これがないと始まりません
- Packagesファイル:debパッケージをリストにしてRepositoryに読み込ませるものです
- Releaseファイル:Repositoryの説明を記載したファイルです
- Release.gpg:Repositoryの証明書みたいなものです
- CydiaIcon.png:Repositoryを登録した時に表示されるアイコンです
Release.gpgとCydiaIcon.pngは、無くても機能しますが、せっかくなので作っておきましょう!
目次
- Packagesファイルを作成する
- Release/Release.gpg/CydiaIcon.pngの作成
- Google App EngineでのCydiaリポジトリ作成
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:同一ディレクトリで利用する場合
端末が立ち上がるので、以下のように処理します。
- 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(説明欄)
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が表示されるのでクリック
このような感じで、サブアカウントに管理者権限を与えておきましょう!
突然死もありますので・・・
5.Python 2.6.6をInstall
http://www.python.org/download/releases/2.6.6/
こちらから、自分のOSに合った「Python(2.6.6のバージョン)」をダウンロード、インストール
新しいGoogle App Engineは「Python 2.7」以降が必須となったので、Python 2.7.5をInstallしてください。
Link:Python 2.7.5 Release | Python.org
※Python 2.7.6以降だと「UnicodeDecodeError」「Process exited with code 1」となってしまいます。
レジストリのHKEY_CLASSES_ROOT\MIME\Database\Content Typeに
ASCII以外の文字を含むタイプ名が登録されていると例外が発生する。
QuickTimeがロシア語の名前を登録するのが原因らしい。
とのこと。
6.Google App Engine SDK for PythonをInstall
Downloads – Google App Engine — Google Developers
こちらから、自分のOSに合ったGoogle App Engine SDK for Python をダウンロード、インストール
7.Google App Engine Launcherを起動
メニューの「File」から「Create New Application..」をクリック
「Application Name」に、最初にブラウザ側で作成したアプリケーション名を入れます。(Application Identiferの部分。サブドメインにあたるところです)
「Parent Directory」に、先ほど作成したファイルなどを入れるフォルダを指定します。
(指定したフォルダに、アプリケーション名のサブフォルダが作成されます)
作成したアプリケーションを選択し、「Run」ボタンをクリック
8.アップロードするファイルを指定する
先ほど指定したディレクトリ内に「app.yaml」というファイルが出来ているので、テキストエディタで開きます。
こんな感じで編集します。
application: willfeeltips
version: 1
runtime: python27
api_version: 1
threadsafe: true
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パッケージを作成する手順などを紹介する予定です。お楽しみに〜・・・あ、共有され具合で、モチベーションが変わるのでよろしくです♪~ <(゚ε゚)>「Application Identifier」がアプリケーション一つ一つに割り当てられるサブドメイン名になります。
この部分は後から変更したり、削除することができないので注意!
ドメインを取得するつもりで設定しましょう。
タイトルは後からでも変更できます。
http://www.python.org/download/releases/2.6.6/
こちらから、自分のOSに合った「Python(2.6.6のバージョン)」をダウンロード、インストール
ASCII以外の文字を含むタイプ名が登録されていると例外が発生する。
QuickTimeがロシア語の名前を登録するのが原因らしい。
version: 1
runtime: python27
api_version: 1
threadsafe: true
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/.*
<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>
controlファイルの「Depiction: 」にhttp://[アプリケーション名].appspot.com/depiction/*.html このようにして、debパッケージを開いた時に説明が表示されるようにしています。
(記述方法は、BigBossなどのソースを参考にしてください)
でわでわ〜
【脱獄アプリ開発】第4回 XcodeとiOSOpenDevをインストールしよう!