SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

Apache Cordovaで本格スマホアプリに挑戦しよう

Cordovaでアプリを公開するためのビルド方法をカスタマイズしよう

Apache Cordovaで本格スマホアプリに挑戦しよう 第14回

  • X ポスト
  • このエントリーをはてなブックマークに追加

アプリ名を変更したい

 スマホのホーム画面からアプリを起動した際のアプリ名を変更したいというケースは度々発生します。特に開発時に決めた仮の名前からリリース時に変わることはよくあると思います。その場合はリスト4のように設定可能です。

リスト4 config.xmlの設定例
<widget id="com.coltware.cdv.SampleApp14" version="1.0.0"
    : 省略
    >
    <!-- (1) 標準的な方法 -->
    <name>サンプルアプリ</name>
    :
    <platform name="android">
        <!-- (2) プラグインを使ったときのAndroidのアプリ名の設定 -->
        <preference name="android-manifest/application/activity/@android:label" value="サンプルアプリ" />
    </platform>
    <platform name="ios">
        <!-- (3) プラグインを使ったときのiOSのアプリ名の設定 -->
        <config-file platform="ios" target="*-Info.plist" parent="CFBundleDisplayName">
            <string>サンプルアプリ</string>
        </config-file>
    </platform>
    :

 (1)は、標準的な方法です。ただし、アプリ名として日本語を使いたい場合には少々困ったことが起きます。

 例を挙げると、iOSの場合<name>要素の値を使って実際のプロジェクトフォルダが作成されるため、日本語のフォルダができてしまいます。

 このケース以外にも、バージョン管理をしている場合や、プロジェクト内部に直接手を加えてしまった場合など、フォルダ名が変わってしまうと不便が生じるケースがあります。そのため(2)や(3)のように、先ほどインストールしたcordova-custom-configプラグインの機能を使って変更する方法をおすすめします。

 Androidだと、<preference />を使った指定をしている場合、Androidの設定ファイルであるAndroidManifest.xmlの設定を変更することができます。(2)の指定は、実際に変更する項目をXPath形式でname属性に、対応する値をvalue属性に、それぞれ渡しています。

 (3)の<config-file>は、target属性で指定したXMLファイルを書き換えるための指定です。iOSの場合、[プロジェクト名]-Info.plistというファイルがiOSの設定ファイルになり、このファイルを編集するにはtarget属性に"ios"という値を設定する必要があります。通常、これらのファイルはIDEであるXCodeを通じて編集します。また、(3)では、どのようなプロジェクト名であってもiOSの設定ファイルが該当するように、"*-Info.plist"というファイルを指定します。iOSの設定ファイル内では、アプリ名はCFBundleDisplayNameという項目で管理されているので、その値を<string>要素内で指定します。

パッケージ名を変更したい

 Androidの場合、アプリのパッケージ名はプログラムのパッケージ名と同じものになります。iOSの場合はパッケージ名をコード署名時のパッケージ名としても使います。これらのパッケージ名にはドメイン名を使うことが一般的ですが、ドメインにハイフンが含まれているとiOSで利用することができません。そのため、iOSとAndroidで別々のパッケージ名を使いたいケースが発生します。その場合、リスト5のようにして変更が可能です。

リスト5 config.xmlの設定例
<widget
    id="com.coltware.cdv.SampleApp14"        // (1) 基本のパッケージ名
    android-packageName="com.coltware.cdv.android.SampleApp14" // (2) Androidの場合
    ios-CFBundleIdentifier="com.coltware.cdv.ios.SampleApp14"  // (3) iOSの場合
    :
>

 (1)がiOSとAndroidのパッケージ名を共通にした場合の変更方法です。同じものに変更する場合、この方法をとります。(2)がAndroidのみ変更する場合の指定方法です。そして、(3)がiOSのみ変更する場合の指定方法です。

 iosでは*-Info.plist内でCFBundleIdentifierという項目で管理されているので、アプリ名を変更する際と同様に<config-file />要素を使った方法でも変更できます。

SDKやiOSの対象バージョンを指定する

 利用するAndroid SDKのバージョン(利用できるAndroidのバージョン)や、iOSのバージョンを指定したい場合には、リスト6のように指定可能です。

リスト6 config.xmlの設定例
<platform name="android">
    <--   (1) Androidのバージョンを指定する -->
    <preference name="android-minSdkVersion" value="18" />
    <preference name="android-targetSdkVersion" value="21" />
    <preference name="android-maxSdkVersion" value="24" />
</platform>
<platform name="ios">
    <!-- (2) iOSのターゲットバージョンを指定 -->
    <preference name="ios-XCBuildConfiguration-IPHONEOS_DEPLOYMENT_TARGET" value="8.3" quote="none" />
</platform>

 Androidの場合、(1)のようにminSdkVersion(利用できる最低のバージョン)、targetSdkVersion(主にターゲットとしているバージョン)、maxSdkVersion(最大バージョン)が指定できます。

 また、Androidは新しいバージョンに更新すると古いバージョンにのみ対応しているアプリケーションが使えなくなるということがあるため、これらの指定が必要になるケースがあります。バージョンの意味は、こちらで確認できます。その他、指定したname属性以外にもリファレンス(英語)に記載されている通り、数多くの指定が可能です。

 iOSには標準の設定方法がないため、(2)のようにcordova-custom-configプラグインの拡張指定を使用します。この例ではiOSの8.3のバージョンを指定しており、<preference />要素のname属性に"ios-XCBuildConfiguration-"で始まる指定をすることで、XCodeプロジェクト内の[プロジェクト名].xcodeproj/project.pbxprojファイルの内容を変更することが可能です。このファイルは、iOSアプリをビルドする際、コンパイルやリンクなどのオプションを指定するファイルです。value属性にはnameで指定した項目に対する値を指定します。また、quote属性には"none"を指定します。こちらの意味としては指定する項目と値を設定する際にダブルクォートの扱いなのですが、そのルールはXCodeをハックしないとわからないのであまり深く理解する必要はありません。

次のページ
ビルドバージョンを指定する

この記事は参考になりましたか?

  • X ポスト
  • このエントリーをはてなブックマークに追加
Apache Cordovaで本格スマホアプリに挑戦しよう連載記事一覧

もっと読む

この記事の著者

WINGSプロジェクト 小林 昌弘(コバヤシ マサヒロ)

WINGSプロジェクトについて>有限会社 WINGSプロジェクトが運営する、テクニカル執筆コミュニティ(代表 山田祥寛...

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

山田 祥寛(ヤマダ ヨシヒロ)

静岡県榛原町生まれ。一橋大学経済学部卒業後、NECにてシステム企画業務に携わるが、2003年4月に念願かなってフリーライターに転身。Microsoft MVP for Visual Studio and Development Technologies。執筆コミュニティ「WINGSプロジェクト」代表。主な著書に「独習シリーズ(Java・C#・Python・PHP・Ruby・JSP&サーブレットなど)」「速習シリーズ(ASP.NET Core・Vue.js・React・TypeScript・ECMAScript、Laravelなど)」「改訂3版JavaScript本格入門」「これからはじめるReact実践入門」「はじめてのAndroidアプリ開発 Kotlin編 」他、著書多数

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

  • X ポスト
  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/9970 2017/02/22 14:00

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング