facebook twitter hatena line email

「Cordova/helloworld」の版間の差分

提供: 初心者エンジニアの簡易メモ
移動: 案内検索
(=cordovaプロジェクトでないエラー)
 
(同じ利用者による、間の44版が非表示)
行1: 行1:
 
==プロジェクト作成==
 
==プロジェクト作成==
  cordova create helloworld com.example.helloworld helloworld
+
  cordova create hello com.example.helloworld helloworld
  cd helloworld
+
  cd hello
  
 
==プラットフォーム追加==
 
==プラットフォーム追加==
行17: 行17:
  
 
==androidをビルドチェック&ビルド&実行==
 
==androidをビルドチェック&ビルド&実行==
  cordova requirements android
+
ビルドチェック
  cordova build android
+
  $ cordova requirements android
  cordova run android
+
  Java JDK: installed 1.8.0
 +
Android SDK: installed true
 +
Android target: installed android-29,android-28,android-27,android-26,android-24
 +
Gradle: installed /usr/local/Cellar/gradle/6.4.1/bin/gradle
 +
ビルド
 +
$ cordova build android
 +
実行
 +
  $ cordova run android
  
 
実機がつながってれば、apache cordovaと画面が出た。
 
実機がつながってれば、apache cordovaと画面が出た。
行36: 行43:
  
 
===以下のようなjavaエラーが起こったら===
 
===以下のようなjavaエラーが起こったら===
avdmanager: Command failed with exit code 1 Error output:
+
avdmanager: Command failed with exit code 1 Error output:
Exception in thread "main" java.lang.NoClassDefFoundError: javax/xml/bind/annotation/XmlSchema
+
Exception in thread "main" java.lang.NoClassDefFoundError: javax/xml/bind/annotation/XmlSchema
 
1.8かどうか確認する
 
1.8かどうか確認する
 
javaが11とかなら1.8に変更する
 
javaが11とかなら1.8に変更する
行49: 行56:
 
  Current working directory is not a Cordova-based project.
 
  Current working directory is not a Cordova-based project.
  
===cordova platform addエラーが出る==
+
===cordova platform addエラーが出る===
 
プラットフォームが追加されてないと出る場合
 
プラットフォームが追加されてないと出る場合
 
  No platforms added to this project. Please use `cordova platform add <platform>`
 
  No platforms added to this project. Please use `cordova platform add <platform>`
 
androidであれば、以下のようにプラットフォームを追加する
 
androidであれば、以下のようにプラットフォームを追加する
  cordova platform add android
+
  $ cordova platform add android
 +
 
 +
==iosをビルドチェック&ビルド&実行==
 +
ビルドチェック
 +
$ cordova requirements ios
 +
Requirements check results for ios:
 +
Apple macOS: installed darwin
 +
Xcode: installed 11.1
 +
ios-deploy: installed 1.10.0
 +
CocoaPods: installed 1.9.2
 +
ビルド
 +
$ cordova build ios
 +
** BUILD SUCCEEDED **
 +
実行
 +
$ cordova run ios
 +
Simulator successfully started via `ios-sim`.
 +
 
 +
===ビルドチェックでpodが無いエラーが出るとき===
 +
CocoaPods: not installed
 +
/bin/sh: /usr/local/bin/pod: /System/Library/Frameworks/Ruby.framework/Versions/2.3/usr/bin/ruby: bad interpreter: No such file or directory
 +
以下を実行
 +
sudo gem install -n /usr/local/bin cocoapods
 +
それでもだめなら、以下も実行してみる
 +
sudo gem update --system
 +
sudo gem uninstall cocoapods
 +
 
 +
===プラットフォームが追加されてないエラー===
 +
以下エラーが出たときは
 +
The platform "ios" does not appear to have been added to this project.
 +
iosプラットフォームを追加する
 +
cordova platform add ios
 +
 
 +
===iphoneバージョンが対応してないエラーが出るとき===
 +
run時に以下エラーが出るとき
 +
warning: The iOS deployment target 'IPHONEOS_DEPLOYMENT_TARGET' is set to 4.3, but the range of supported deployment target versions is 8.0 to 13.1.99. (in target 'nanopb' from project 'Pods')
 +
以下ファイルについて、以下のように修正する
 +
platforms/ios/Pods/Pods.xcodeproj/project.pbxproj
 +
 
 +
修正前
 +
IPHONEOS_DEPLOYMENT_TARGET = 4.3;
 +
修正後
 +
IPHONEOS_DEPLOYMENT_TARGET = 13.1.99;
 +
 
 +
もしくは、
 +
#作成されてるplatforms/ios/HelloworldExample.xcworkspaceをxcodeで開く
 +
#BuildSettings/iOSDevelopmentTargetを8.0から13.1の間で設定する
 +
 
 +
===認証失敗エラーが出るとき===
 +
run時に以下エラーが出るとき
 +
error: Signing for "HelloworldExample" requires a development team. Select a development team in the Signing & Capabilities editor. (in target 'HelloworldExample' from project 'HelloworldExample')
 +
#作成されてるplatforms/ios/HelloworldExample.xcworkspaceをxcodeで開く
 +
#Signing & capabilitiesの TeamがNoneになっているので、追加する
 +
 
 +
===conflicting provisioning settings.エラーが出るとき===
 +
HelloworldExample has conflicting provisioning settings.
 +
 
 +
===NSInternalInconsistencyExceptionが起こるとき===
 +
<pre>
 +
UNCAUGHT EXCEPTION (NSInternalInconsistencyException): Invalid parameter not satisfying: aString != nil
 +
UserInfo: (null)
 +
Hints:
 +
  0: Calling block provided to DVTSyncPerformBlock() here:
 +
</pre>
 +
 
 +
色々参考はあったが、実機iPhoneXS(ios13.4.1)で、うまく行かなかった。
 +
端末を切り替えて、シミュレーターiPhone8やiPhone11やiPhone11ProMaxにしたところ、ビルド成功して、アプリが開いた。他のシミュレータでは試してないので、実機がまずかったのかも。
 +
 
 +
参考:https://program-life.com/1431
 +
 
 +
===Cannot find module 'unorm'エラーが出るとき===
 +
エラー詳細
 +
Cannot find module 'unorm'
 +
ionicを入れる
 +
npm install -g  ionic
 +
ionic platform list.
 +
platform add iosをする
 +
cordova platform add ios
 +
 
 +
===SWIFT_VERSIONエラーが出たら===
 +
Showing Recent Issues
 +
Value for SWIFT_VERSION cannot be empty.
 +
 
 +
#Build Setting/Swift Compiler/Language/Swift Language Versionについて
 +
#UnspecifiedからSwift5に変更
  
 
==参考==
 
==参考==

2020年7月6日 (月) 12:01時点における最新版

プロジェクト作成

cordova create hello com.example.helloworld helloworld
cd hello

プラットフォーム追加

cordova platform add android
cordova platform add ios
cordova platform add browser

browerをビルドチェック&ビルド&実行

cordova requirements browser
cordova build browser
cordova run browser

アクセス ttp://localhost:8000/index.html

androidをビルドチェック&ビルド&実行

ビルドチェック

$ cordova requirements android
Java JDK: installed 1.8.0
Android SDK: installed true
Android target: installed android-29,android-28,android-27,android-26,android-24
Gradle: installed /usr/local/Cellar/gradle/6.4.1/bin/gradle

ビルド

$ cordova build android

実行

$ cordova run android

実機がつながってれば、apache cordovaと画面が出た。

gradle pathエラーが出たとき

Could not find an installed version of Gradle either in Android Studio,
or on your system to install the gradle wrapper. Please include gradle
in your path, or install Android Studio
Some of requirements check failed

macであれば・・・

$ brew install gradle
$ gradle -v
$ Gradle 6.4.1

以下のようなjavaエラーが起こったら

avdmanager: Command failed with exit code 1 Error output:
Exception in thread "main" java.lang.NoClassDefFoundError: javax/xml/bind/annotation/XmlSchema

1.8かどうか確認する javaが11とかなら1.8に変更する

$ vi ~/.bash_profile

#export JAVA_HOME=`/usr/libexec/java_home -v 11`
export JAVA_HOME=`/usr/libexec/java_home -v 1.8`

cordovaプロジェクトでないエラー

以下エラーが出るときは、wwwやconfig.xmlがあるプロジェクトで実行してるか確認。

Current working directory is not a Cordova-based project.

cordova platform addエラーが出る

プラットフォームが追加されてないと出る場合

No platforms added to this project. Please use `cordova platform add <platform>`

androidであれば、以下のようにプラットフォームを追加する

$ cordova platform add android

iosをビルドチェック&ビルド&実行

ビルドチェック

$ cordova requirements ios
Requirements check results for ios:
Apple macOS: installed darwin
Xcode: installed 11.1
ios-deploy: installed 1.10.0
CocoaPods: installed 1.9.2

ビルド

$ cordova build ios
** BUILD SUCCEEDED **

実行

$ cordova run ios
Simulator successfully started via `ios-sim`.

ビルドチェックでpodが無いエラーが出るとき

CocoaPods: not installed
/bin/sh: /usr/local/bin/pod: /System/Library/Frameworks/Ruby.framework/Versions/2.3/usr/bin/ruby: bad interpreter: No such file or directory

以下を実行

sudo gem install -n /usr/local/bin cocoapods

それでもだめなら、以下も実行してみる

sudo gem update --system
sudo gem uninstall cocoapods

プラットフォームが追加されてないエラー

以下エラーが出たときは

The platform "ios" does not appear to have been added to this project.

iosプラットフォームを追加する

cordova platform add ios

iphoneバージョンが対応してないエラーが出るとき

run時に以下エラーが出るとき

warning: The iOS deployment target 'IPHONEOS_DEPLOYMENT_TARGET' is set to 4.3, but the range of supported deployment target versions is 8.0 to 13.1.99. (in target 'nanopb' from project 'Pods')

以下ファイルについて、以下のように修正する platforms/ios/Pods/Pods.xcodeproj/project.pbxproj

修正前

IPHONEOS_DEPLOYMENT_TARGET = 4.3;

修正後

IPHONEOS_DEPLOYMENT_TARGET = 13.1.99;

もしくは、

  1. 作成されてるplatforms/ios/HelloworldExample.xcworkspaceをxcodeで開く
  2. BuildSettings/iOSDevelopmentTargetを8.0から13.1の間で設定する

認証失敗エラーが出るとき

run時に以下エラーが出るとき

error: Signing for "HelloworldExample" requires a development team. Select a development team in the Signing & Capabilities editor. (in target 'HelloworldExample' from project 'HelloworldExample')
  1. 作成されてるplatforms/ios/HelloworldExample.xcworkspaceをxcodeで開く
  2. Signing & capabilitiesの TeamがNoneになっているので、追加する

conflicting provisioning settings.エラーが出るとき

HelloworldExample has conflicting provisioning settings.

NSInternalInconsistencyExceptionが起こるとき

UNCAUGHT EXCEPTION (NSInternalInconsistencyException): Invalid parameter not satisfying: aString != nil
UserInfo: (null)
Hints: 
  0: Calling block provided to DVTSyncPerformBlock() here:

色々参考はあったが、実機iPhoneXS(ios13.4.1)で、うまく行かなかった。 端末を切り替えて、シミュレーターiPhone8やiPhone11やiPhone11ProMaxにしたところ、ビルド成功して、アプリが開いた。他のシミュレータでは試してないので、実機がまずかったのかも。

参考:https://program-life.com/1431

Cannot find module 'unorm'エラーが出るとき

エラー詳細

Cannot find module 'unorm'

ionicを入れる

npm install -g  ionic
ionic platform list.

platform add iosをする

cordova platform add ios

SWIFT_VERSIONエラーが出たら

Showing Recent Issues
Value for SWIFT_VERSION cannot be empty.
  1. Build Setting/Swift Compiler/Language/Swift Language Versionについて
  2. UnspecifiedからSwift5に変更

参考

https://qiita.com/AyumuSuzuki/items/17945ea1cfff1418e364

https://qiita.com/cognitom/items/3b30284e8d01eaf122b7