「Cordova/helloworld」の版間の差分
提供: 初心者エンジニアの簡易メモ
(→=cordovaプロジェクトでないエラー) |
|||
(同じ利用者による、間の44版が非表示) | |||
行1: | 行1: | ||
==プロジェクト作成== | ==プロジェクト作成== | ||
− | cordova create | + | cordova create hello com.example.helloworld helloworld |
− | cd | + | 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;
もしくは、
- 作成されてる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が起こるとき
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.
- Build Setting/Swift Compiler/Language/Swift Language Versionについて
- UnspecifiedからSwift5に変更