isoのプロトタイプアプリを作成するために、macにcordova環境を作成します。
利用環境は以下の通り
– MacOS Mojave(10.14.5)
– Node.js(10.16.0)
– Xcode(10.2.1)
Node.jsのインストール
ここからNode.jsダウンロードし、インストールします。
Xcodeのインストール
AppStoreから「Xcode」を検索し、インストールします。
Cordovaのインストール
Node.jsのnpmを用いて、Cordovaをインストールします。
「ターミナル」から以下のコマンドを実行します。$ sudo npm install -g cordova
インストールが完了したら、バージョンを確認してみます。$ cordova -v
9.0.0 (cordova-lib@9.0.1)
Cordovaプロジェクトの作成
Cordovaのプロジェクトを作成します。
私は/Users/[ユーザー名]/Documents/srcフォルダ内に作成します。
srcフォルダ移動後、以下のコマンドを実行します。# cordova create ディレクトリー 識別子 アプリ名
$ cordova create SampleCordova com.example.SampleCordova SampleCordova
これでSampleCordovaのプロジェクトを作成しました。
プロジェクトフォルダに移動します。$ cd SampleCordova
プラットフォームの追加
SampleCordovaで使用するプラットフォーム(iOSやAndroid、WindowsPhoneなど)を追加します。ここではiOSのみを追加します。$ cordova platform add ios
利用するプラグイン等々を追加します。$ cordova plugin add cordova-plugin-add-swift-support --save
$ cordova plugin add cordova-plugin-qrscanner
$ cordova plugin add cordova-plugin-inappbrowser
$ cordova plugin add cordova-plugin-dialogs
iOS Simulatorのインストール
実行させるためのSimulatorをインストールします
$ sudo npm install -g ios-sim
プロジェクトのビルド
Simulatorで実行できるようにプロジェクトのビルドをします。$ cordova build
Simulatorの実行
Simulatorを実行します。$ cordova emulate ios
Simulatorが起動し、Cordovaのアプリが表示されます。
Xcodeプロジェクト
プラットフォームにiOSを追加するとXcodeのプロジェクトファイルが生成されます。/Users/[ユーザー名]/Documents/src/SampleCordova/platforms/iosのフォルダに格納されているため、Xcodeを用いてビルド、Simulatorの起動等も行えます。
ですが、Xcode10.2.1ではSwift3以前がサポートされていないようで、Cordovaで生成したソースがビルドできません。そのため、プロジェクトフォルダにあるconfig.xmlやXcodeのビルド設定を見直します。
/Users/[ユーザー名]/Documents/src/SampleCordova/config.xml
<platform name=”ios”>記載部分に以下のように追加します。
<platform name="ios">
<allow-intent href="itms:*" />
<allow-intent href="itms-apps:*" />
<preference name="UseLegacySwiftLanguageVersion" value="true" />
<preference name="UseSwiftLanguageVersion" value="5" />
</platform>
次に、Xcodeのビルド設定を見直します。/Users/[ユーザー名]/Documents/src/SampleCordova/platforms/ios/SampleCordova.xcodeprojをクリックしてXcodeを起動します。そのあと、プロジェクトを選択し、TARGETS -> Build Settings -> Swift Compiler -> Swift Language Version を 4.2に変更します。
あとは、Xcodeからビルドし、エミュレータ実行が可能になります。