【脱獄アプリ開発】第3回 Google App Engineを使ったCydiaリポジトリの作成方法

2013/01/09 16:30

さて!連載3回目です。今回は、自分で作ったdebパッケージをCydia Repositoryに上げることを目標に、ポイントや手順などを説明します!

【脱獄アプリ開発】第1回 VirtualBoxにLinux Ubuntuをインストール!
【脱獄アプリ開発】第2回 Cydia Debパッケージを作成しよう!
はい。間が開いてしまったので、復習しておきましょうね♪

自分で作ったdebパッケージを、そのまま「BigBoss」や「ModMyi」に提出してもおkですが、betaテストや個人用のリポジトリとして利用するために、作成しておきましょう!

長くなるので、じっくりコトコト何かを煮込みながら読んでください。

Cydiaリポジトリに必要なファイル

  1. debファイル:これがないと始まりません
  2. Packagesファイル:debパッケージをリストにしてRepositoryに読み込ませるものです
  3. Releaseファイル:Repositoryの説明を記載したファイルです
  4. Release.gpg:Repositoryの証明書みたいなものです
  5. CydiaIcon.png:Repositoryを登録した時に表示されるアイコンです
ざっと5つ必要になってきますね。
Release.gpgとCydiaIcon.pngは、無くても機能しますが、せっかくなので作っておきましょう!

目次

  1. Packagesファイルを作成する
  2. Release/Release.gpg/CydiaIcon.pngの作成
  3. 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 Packages
gzの方が軽いので、そちらをおすすめします。

出来ました!!

このまま同一ディレクトリにどんどん追加していってもお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が表示されるのでクリック
このような感じで、サブアカウントに管理者権限を与えておきましょう!

突然死もありますので・・・


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パッケージを作成する手順などを紹介する予定です。お楽しみに〜・・・あ、共有され具合で、モチベーションが変わるのでよろしくです♪~ <(゚ε゚)>

でわでわ〜

【脱獄アプリ開発】第4回 XcodeとiOSOpenDevをインストールしよう!