2011年6月25日土曜日

iPhoneアプリ 開発から販売まで

iPhoneアプリ 開発から販売まで

ワイヤレスでAdHocアプリ配布&インストール [iOS]

Wireless(Over The Air) で配布

AdHocビルドしたiOSアプリを、Wireless(Over The Air) で配布してインストールしてもらう方法をまとめたよ。


クライアントとかお友達にAdHocアプリを送って、iTunesでインストールしてもらうのは結構手間がかかります。
説明とかするのが結構たいへん。。
AdHocアプリをブラウザ経由でiPhoneから直接インストールしてもらうようにするとかなり楽になります。
説明とかの手間が省けて色んなことに悩まされたりしないのでみんなハッピーになれるよ!
てことで、下記が手順です。

AdHocアプリのOTA配布手順

1. がんばってアプリケーションをつくる。
2. 配布するアプリができたら、Xcode: Build > Build and Archive を選択、ビルドします。

3. ビルドが終わったら、Xcode: Window > Organizer を選択、オーガナイザを開きます。

4. “ARCHIVED APPLICATIONS” という項目があるので、今ビルドしたものを選択します。


5. 右上の”Share” ボタンをクリックします。

6. identityを選択して!といわれるので、AdHoc送付先の端末が登録してあるProvisioningを選択します。


7. “Distribute for Enterprise…” ボタンをクリックします。
いろいろ入力欄が出てくるので、下記のように編集します。
“URL” には、AdHocアプリを設置する先のURL + AdHocアプリのファイル名を入力します。
ここでは、
- AdHocアプリ設置先URL: “http://example.com/”
- AdHocアプリファイル名: “JikkenOTA.ipa”
とします。
“Title” は適当に入力しておきます。
OKボタンを押下でSaveします。
Saveする際に、ファイル名の記入を求められるので、
上記のAdHocアプリファイル名と同じ名前にして保存します。
ここでは、 “JikkenOTA.ipa” とします。



8. 上記手順により下記ファイルが生成されます。
- JikkenOTA.ipa: AdHocアプリ
- JikkenOTA.plist: AdHocアプリインストールに必要な定義ファイル

9. インストール時にアクセスするhtmlファイルを作ります。
次の箇所は、各々のURL、ファイル名に応じて書き換えてください。
- “http://example.com”
- “JikkenOTA”
1
2
3
4
5
6
7
8
9
10
11
12
13
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
  <meta name="viewport" content="width=device-width" />
  <title>JikkenOTA</title>
</head>
<body>
<center>
<h1>JikkenOTA</h1>
<a href="itms-services://?action=download-manifest&url=http://example.com/JikkenOTA.plist">Install JikkenOTA</a>
</center>
</body>
</html>
htmlファイルができたら、”index.html” という名前で保存します。

10. 作成したファイルをサーバにアップロードする。
作成した3つのファイルを、AdHocアプリ設置先URLとして指定したサーバにアップロードします。
今回の例では、下記3つのファイルを “http://example.com/” にアップロードすることになります。
- JikkenOTA.ipa
- JikkenOTA.plist
- index.html

11. iPhoneからAdHocファイルをアップロードしたURLにアクセスします。
URLはメールで送ってあげると便利かも。

リンクをクリックでインストールが始まります!ちょうかんたん!

iPhone/iPadアプリのadhoc 配布(配信)まとめ


http://www.sukechan.net/archives/185/

配布手順

1. キーチェーンアクセス → 証明書アシスタント → 認証局に証明書を要求 → ディスクに保存を選択、鍵ペア情報を指定にチェック、RSA 2048 ビットで暗号化して保存
2. Program Portal → Certificates → Distribution → Request Cerfificates → 1 で保存した証明書を選択して Submit
3. 2 を Approve
4. ちょっと待つと証明書がダウンロード可能になるのでダウンロード
5. 4 でダウンロードした証明書をキーチェーンアクセスにドラッグして登録
6. 教えてもらった UDID を Devices で登録
7. App IDs で App ID を登録(自分の場合、* で登録したためここは省略)
8. Privisioning → Distribution でプロビジョニングプロファイルを作成、ダウンロード。作成時、6 で登録したデバイスを指定
9. 8 でダウンロードしたしたプロフィールを XCode にドラッグして登録(オーガナイザに表示される)
10. XCode でプロジェクトを開き、新規ファイルを作成(dist.plist とする)し、get-task-allow のチェックを外して保存
11. アクティブなターゲットを編集し、Code Signing Entitlements に dist.plist と入れる
12. コード署名 ID > Any iPhone OS Device でそのプロビジョニングプロファイルを選択
13. info.plist の Bundle Identifier を 7 の App ID に合わせる(自動的に付加される 10 文字の識別子は不要)
14. 必要ならば iPhone OS Deployment Target で OS のバージョンを変更
15. クリーニング後、ビルド
16. プロビジョニングプロファイルと build ディレクトリの中の〜.app をテスタに送付
17. テスタはプロビジョニングプロファイルと〜.app を iTunes にドラッグする → インストール完了!

複数のMacで開発する際の証明書


複数のMacで開発するにあたり、証明書の扱いに注意が必要です。
Provisioning PortalのCertificateからは、1台分の証明書リクエストのみしか登録できません。
複数のMacを使用したい場合は、まず1台目のMacで証明書の登録を行ないます。
2台目以降のMacには、Provisioning Portalからダウンロードしたファイルではなく、1台目に登録したMacから証明書を書き出して使用します。
1台目のMacのキーチェーンアクセスを起動し、分類の証明書からiPhone DeveloperやiPhone Distributionなどの必要となるキーを探します。
書き出したい証明書を見つけたら右クリックし、「(書き出したい証明書の名称)を書き出す…」を選択します。
キーチェーンアクセスからの証明書の書き出し
書き出す時のフォーマットは「個人情報交換(.p12)」を選択します。
証明書の書き出し
続いて、パスワードを設定します。
証明書の書き出し(パスワード設定)
ここで設定したパスワードは、2台目以降のMacにインポートする際に必要となりますので忘れないもので、盗用されないために複雑なものにしてください。
書き出した証明書ファイルは、2台目以降のMacでダブルクリックし、パスワードを入力する事でキーチェーンに取り込まれて使用できるようになります。

Linux下的GCC (GNU C Compiler)


Gcc编译器能将C、C++语言源程序、汇程式化序和目标程序编译、连接成可执行文件,如果没有给出可执行文件的名字,gcc将生成一个名为a.out的文件在Linux系统中,可执行文件没有统一的后缀,系统从文件的属性来区分可执行文件和不可执行文件而gcc则通过后缀来区别输入文件的类别,下面我们来介绍gcc所遵循的部分约定规则。

.c为后缀的文件,C语言源代码文件;
.a为后缀的文件,是由目标文件构成的档案库文件;
.C,.cc或.cxx 为后缀的文件,是C++源代码文件;
.h为后缀的文件,是程序所包含的头文件;
.i 为后缀的文件,是已经预处理过的C源代码文件;
.ii为后缀的文件,是已经预处理过的C++源代码文件;
.m为后缀的文件,是Objective-C源代码文件;
.o为后缀的文件,是编译后的目标文件;
.s为后缀的文件,是汇编语言源代码文件;
.S为后缀的文件,是经过预编译的汇编语言源代码文件。
2、GCC的执行过程
     执行要进行四步:预处理,编译,汇编(Assembly)和连接(Link);
   命令gcc首先调用cpp进行预处理,在预处理过程中,对源代码文件中的文件包含(include)、预编译语句(如宏定义define等)进行分析。接着调用cc1进行编译,这个阶段根据输入文件生成以.o为后缀的目标文件。汇编过程是针对汇编语言的步骤,调用as进行工作,一般来讲,.S为后缀的汇编语言源代码文件和汇编、.s为后缀的汇编语言文件经过预编译和汇编之后都生成以.o为后缀的目标文件。当所有的目标文件都生成之后,gcc就调用ld来完成最后的关键性工作,这个阶段就是连接。在连接阶段,所有的目标文件被安排在可执行程序中的恰当的位置,同时,该程序所调用到的库函数也从各自所在的档案库中连到合适的地方。
   在预处理阶段,输入的是C语言的源文件,通常为*.c。它们通常带有.h之类头文件的包含文件。这个阶段主要处理源文件中的#ifdef、 #include和#define命令。该阶段会生成一个中间文件*.i,但实际工作中通常不用专门生成这种文件,因为基本上用不到;若非要生成这种文件不可,可以利用下面的示例命令:
     gcc -E test.c -o test.i ;
    在编译阶段,输入的是中间文件*.i,编译后生成汇编语言文件*.s 。这个阶段对应的GCC命令如下所示:
     gcc -S test.i  -o test.S
    在汇编阶段,将输入的汇编文件*.s转换成机器语言*.o。这个阶段对应的GCC命令如下所示:
    gcc -C test.s -o test.o  ;
    最后,在连接阶段将输入的机器代码文件*.s(与其它的机器代码文件和库文件)汇集成一个可执行的二进制代码文件。这一步骤,可以利用下面的示例命令完成:
    gcc test.o  -o test .
3、Gcc的常用模式
   编译模式和编译连接模式。下面以一个例子来说明各种模式的使用方法。为简单起见,假设我们全部的源代码都在一个文件test.c中,要想把这个源文件直接编译成可执行程序,可以使用以下命令:
    $ GCC -o test