XCode 5.0.2およびCordova 3.4.0-0.1.3を使用しています-を使用してプロジェクトを作成した後、 Cordova CLIおよびXCodeで開く、index.htmlへの変更なし)ファイルとindex.jsファイルは、[実行]をクリックするとシミュレーターに引き継がれます。ターミナルを開いてCordovaビルドコマンドを発行し、シミュレーターを実行すると機能します
私はここのすべての指示に従いました:
xcode 4 + phonegap ...ビルド時にJSを更新しませんか?
そして、それはどれも機能しません!前後に切り替える必要があるので、誰もがこれに対する解決策を持っています。
それで、多くの検索の後、私はうまくいく解決策を見つけたようです、これが私がしたことです。他のStackoverflowの質問を見た後、私はこれが彼らのために働いたと言った誰かを見つけました。
Copy-www-build-step.shというファイルを見つけます。
私は[project_folder] /platforms/ios/cordova/lib/copy-www-build-step.shにありました
そのファイルで、rsync -a "..で始まる行を見つけます。
Rsync行に-cを追加して、rsync -a -c ".. ..
さて、私はそれを試しましたが、それだけでは機能しませんでした。私もヴィルからの答えを試しましたが、それは近づきましたが葉巻はありませんでした。最後に、Villeからコマンドを取得して、copy-www-build-step.shファイルに配置しました。
だから私のトップラインは今です
cd /path/to/your/cordova/project/
cordova prepare
SRC_DIR="www/"
DST_DIR="$BUILT_PRODUCTS_DIR/$FULL_PRODUCT_NAME/www"
COPY_HIDDEN=
ORIG_IFS=$IFS
IFS=$(echo -en "\n\b")
.....
.....
.....etc etc
そして今、私は変更を加え、実行をクリックすると、すべてが更新されます。これが他の誰かに役立つことを願っています。
XCodeプロジェクトのビルドにプレアクションスクリプトを追加できます。これをする:
次のようなスクリプトを追加します。
cd /path/to/your/cordova/project/
cordova prepare ios > xcode-prepare-results.txt
これで、XCodeはプロジェクトをビルドする前に常にcordova prepareを実行する必要があるため、ターミナルにジャンプする必要はありません。準備の出力は、ファイルxcode-prepare-results.txtで確認できます。
Cordova実行可能ファイルの設定方法と使用するシェルによっては、スクリプトがcordovaを見つけるために、シェルを変更するか、PATHを変更する必要がある場合があることに注意してください。
このスレッドの他の回答は、私にとってはうまくいかなかったか、cordovaプラグインを台無しにしました。 InAppBrowser、それで私はついにこれを思いついた:
ファイルを編集しますcopy-www-build-step.shそして最初に次の行を追加します:
cp -fR ../../www/ www/
したがって、次のようになります。
...
cp -fR ../../www/ www/ # new code
SRC_DIR="www/"
...
このようにして、コードが適切に更新され、プラグインが機能します
copy-www-build-step.shファイルも編集しましたが、ユーザーフォルダーからの絶対パスは使用しません。他の開発者と協力している場合は、コードをチェックアウトするたびに変更する必要があります。
大したことではありません。変更するだけです。
SRC_DIR="www/"
に:
SRC_DIR="../../www/"
[〜#〜] update [〜#〜] CordovaとPhonegapで私のために働いた。
XCodeの[実行]ボタンをクリックしたときに、ソースファイルがwwwソースディレクトリからplatforms/ios/wwwディレクトリに自動的にコピーされるようにするには:
XCodeで、[製品]-> [スキーム]-> [スキームの編集...]を選択します。
ビルド->プレアクションの三角形を展開します
「+」をクリックして、新しいプレアクションを作成します
「シェル」設定は空白のままにすることができます。
ビルドするプロジェクトに「ビルド設定の提供元」を設定します。これは重要。
スクリプト領域に次のように入力します。
cd ${PROJECT_DIR}/../..
echo "--- Start ---" > xcode-prepare-ios-results.txt
echo "Running cordova prepare ios command..."
pwd >> xcode-prepare-ios-results.txt
cordova prepare ios --verbose >> xcode-prepare-ios-results.txt
echo "--- Finished ---" >> xcode-prepare-ios-results.txt
これは、XCode8.2およびApacheCordova6.xで機能します。
「cordova prepare ios
"構築段階中:
cd /Users/*/YOUR_PROJECT_FOLDER
(プロジェクトフォルダを変更する)/Users/*/.nvm/versions/node/v?.?.?/bin/node node_modules/cordova/bin/cordova prepare ios
(パスをノードバージョンに変更します)「再生」後、www-folderは自動的に更新されます!
@Kslimanシステムで動作するようにコードを少し変更し、少し一般的にしました。
ファイルの先頭コピー-www-build-step.sh
## New Code Begin ###
cd ../../
PATH=${PATH}:/usr/local/bin
cordova prepare ios
## New Code End ###
SRC_DIR="www/"
Xcodeプロジェクトをビルドする前にクリーンアップすることをお勧めします。そしてもう1つ、xcode内ではなく、cordovaビルドを使用してプロジェクトを再ビルドするようにしてください。これは、まったく異なるためです。
cordova build yourproject
単に入力してください:
cordova prepare
ターミナルでXcodeでプロジェクトを再実行します
簡単な解決策は、以下を使用してコルドバでアプリを構築することです。
Sudo cordova build ios
次に、xcode>製品>クリーンに移動します
次に、xcode>実行(再生ボタン)に移動します
私がしなければならなかったのは、私のプロジェクトの完全な絶対srcパスを含めることだけでした。例えば:
Xcodeから直接htmlを変更する場合は、メインフォルダーではなくステージングフォルダーのcode/htmlを変更する必要があります。
ステージングフォルダーでは、メインフォルダーと同じ構造になりますが、xcode(iOS)ビルドに直接反映されます。
ステージングフォルダー
注:xcodeで行った変更は、cordovaビルド/実行から再度ビルドすると置き換えられるため、cordovaコマンドを実行する前に、変更内容をメインフォルダーにコピーしてください。
この回答からより多くの情報を得ることができます:PhoneGap 3.4のステージングフォルダーの目的?このフォルダ内のindex.htmlへの変更のみが認識されますか?
これは、以下から取得した正しい解決策です。
Cordova + Xcode 7.3(html + Javascript)は、ビルドおよびエミュレート時に変更または更新されません
私の場合、コードにエラーがありました。 npm start
を実行して見つける必要がありました。
コルドバが混乱することがあることがわかりました...「cordovaplatformrm ios」(プラグインはそのままにしておく)を実行してから、「cordova platform add iOS」を実行すると、すべてのプラグインがプラットフォームに再インストールされます。 ..その後、ビルドを再試行します。
cordova build
を使用するたびに、プラットフォーム固有のwww
ファイルのコンテンツが上書きされます。そのため、代わりにcordova compile
を使用します。
ヘルプから:
compile <platforms>は、プラットフォームプロジェクトを準備せずにコンパイルします
多くのプラットフォーム用のモバイルアプリを作成していて、プラットフォーム固有の改善を行う必要がある場合は特に、プロジェクト全体をビルドしないように変更をコンパイルすることが重要です。