私はこれを理解しようとしてきましたが、トンネルの終わりに光がないようですので、ここで試してみてください...あなたが助けてくれることを願っています。
Ionicプロジェクトがあります。 ionic serve
経由で実行すると、期待どおりの結果が得られますが、問題ありません。ただし、ionic cordova run ios -lc
などのコマンドを実行すると、ビルドプロセスを中断するエラーが表示されます。私が受け取るエラーは次のとおりです。
[cordova] error: archive not found at path '/Users/path-to-app/platforms/ios/demoapp.xcarchive' [cordova] ** EXPORT FAILED ** [cordova] [cordova] (node:5866) UnhandledPromiseRejectionWarning: Unhandled promise rejection (rejection id: 1): Error code 65 for command: xcodebuild with args: -exportArchive,-archivePath,demoapp.xcarchive,-exportOptionsPlist,/Users/path-to-app/platforms/ios/exportOptions.plist,-exportPath,/Users/path-to-app/platforms/ios/build/device [cordova] (node:5866) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.
ここに2つの異なるエラーが表示されます。アーカイブが見つからないことと非推奨の問題です。どれがビルドを壊しているのかわからないが、どちらの解決策も見つけられないようだ。
イオン情報:
Ionic:
ionic (Ionic CLI) : 4.1.2
Ionic Framework : ionic-angular 3.9.2
@ionic/app-scripts : 3.2.0
Cordova:
cordova (Cordova CLI) : 8.0.0
Cordova Platforms : Android 7.0.0, browser 5.0.4, ios 4.5.5
Cordova Plugins : no whitelisted plugins (0 plugins total)
System:
Android SDK Tools : 25.1.7 (/Users/Vincent/Library/Android/sdk)
ios-deploy : 1.9.2
NodeJS : v9.1.0 (/usr/local/bin/node)
npm : 6.4.1
OS : macOS High Sierra
Xcode : Xcode 10.0 Build version 10A255
助けていただければ幸いです!
現在、cordova-iosはXcode 10と互換性がありません
Xcode 10が使用する新しいビルドシステムを無効にし、build.jsonファイルにこれを追加することで古いシステムを使用することができます。
"buildFlag": [
"-UseModernBuildSystem=0"
]
または--buildFlag="-UseModernBuildSystem=0"
をビルドコマンドに追加する
完全なコマンドはcordova build ios --buildFlag="-UseModernBuildSystem=0"
である必要があります。
またはIonic ionic cordova build ios -- --buildFlag="-UseModernBuildSystem=0"
の場合
@jcesarmobileによる上記の回答に加えて、別の解決策は、次のコマンドを実行してIonic CLIを使用してアプリを構築することです。
ionic cordova build ios -- --buildFlag="-UseModernBuildSystem=0"
ionic build
コマンドの documentation に従って、追加オプションをCordova CLIに渡すには、Ionic CLI引数の後に--
セパレーターを使用する必要があります。 Cordova CLIの代わりにIonic CLIを介してbuild
コマンドを実行すると、Web資産が構築され、cordovaがアプリを構築する前に友好的なチェックが提供されます。
動作するbuild.jsonの例(cordova/ionicプロジェクトのルートディレクトリに配置する)は次のコンテンツです。
{
"ios": {
"debug": {
"buildFlag": [
"-UseModernBuildSystem=0"
]
},
"release": {
"buildFlag": [
"-UseModernBuildSystem=0"
]
}
}
}
Build.jsonに関するその他のパラメーターについては、cordova docも参照してください。 https://cordova.Apache.org/docs/en/latest/guide/platforms/ios/
jcesarmobileによって提案されたコマンドは機能しませんでしたが、
cordova build ios --buildFlag="-UseModernBuildSystem=0"
(イオンなし)ビルドが正常に完了しました。
その後、ionic cordova build iosを問題なく行うことができました。 (buildFlagがなくても)。私はこれの専門家ではありません。実際、ionic lolを含めないのは間違いでした。だから、すべてがうまくいくように見えますが、初めてコルドバだけで構築することに欠点があるかどうかはわかりません。たぶん誰かがコメントにいくらかの光を投げかけることができる
私の場合、Swiftコンパイラーのバージョンとワークスペースの設定をXCODE 10.2.1で指定する必要があります
注:私のプロジェクトではOnesignalプラグインをインストールしました
最初に、Swiftコンパイラーのバージョンを指定しました。
次に、ワークスペースの設定を変更します
そして、結局、ターミナルで次のコマンドを使用して再構築しようとします
ionic cordova build ios