facebook twitter hatena line email

Cordova/helloworld

提供: 初心者エンジニアの簡易メモ
2020年5月28日 (木) 18:56時点におけるAdmin (トーク | 投稿記録)による版 (NSInternalInconsistencyExceptionが起こるとき)

移動: 案内検索

プロジェクト作成

cordova create helloworld com.example.helloworld helloworld
cd helloworld

プラットフォーム追加

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

色々参考はあったが、実機ios13.4.1で、うまく行かなかった。シミュレーターiPhone8でうまくビルド成功して、アプリが開いた。

参考: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に変更

GADMobileAdsなどがないエラー

Use of unresolved identifier 'GADMobileAds'

以下podを更新して、Google-Mobile-Adsを入れる

cd examples/basic/platforms/ios
pod update
Installing Google-Mobile-Ads-SDK 7.60.0 (was 7.57.0 and source changed to `https://cdn.cocoapods.org/` from `trunk`)

コードの1行目に以下を追加

import GoogleMobileAds

参考

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

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