Skip to content Skip to sidebar Skip to footer

XCode Build Not Updating JS And HTML

I am using XCode 5.0.2 and Cordova 3.4.0-0.1.3 - What I find is after creating the project using the Cordova CLI and opening in XCode, no changes to the index.html file and index.

Solution 1:

You can add a pre-action script to your XCode project's build. To do this:

  1. Select Product > Scheme > Edit Scheme from the menu (or ⌘ < on keyboard)
  2. Select Build > Pre-actions from the left
  3. Click + and select "New Run Script Action"
  4. Add a script like this:

    cd /path/to/your/cordova/project/
    cordova prepare ios > xcode-prepare-results.txt
    

Now XCode should always run cordova prepare before building your project so you don't have to jump to terminal. You can see the output of prepare in the file xcode-prepare-results.txt.

Note, that depending on how your cordova executable is set up and which shell you use, you might have to either change the shell or modify your PATH in order for the script to find cordova.


Solution 2:

So after much searching I seem to have found a solution that works, here is what I did. After looking at other Stackoverflow questions I found someone that said this worked for them.

Find the file called copy-www-build-step.sh.

Mine was in [project_folder]/platforms/ios/cordova/lib/copy-www-build-step.sh

In that file, find the lines beginning rsync -a "...

Add -c to the rsync lines, so they ready rsync -a -c "...

Well I tried that and it did not work on its own. I also tried the answer from Ville and that pulled closer but no cigar. Finally I took what the command from Ville and put it in the copy-www-build-step.sh file

so my top line is now

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 

And now I make change , and click run , bam all is updated. I hope this helps someone else.


Solution 3:

Other answers in this thread either didn't work for me or screwed up cordova plugins e.g. InAppBrowser, so i finally came up with this:

Edit the file copy-www-build-step.sh and add the following row in the beginning:

cp -fR ../../www/ www/

so it should look like:

...
cp -fR ../../www/ www/ # new code

SRC_DIR="www/"
...

This way your code will be updated properly and your plugins will work


Solution 4:

I also edited the copy-www-build-step.sh file, however you don't want to use an absolute path from your User folder. If you are working with other developers you would have to change that every time you check out code.

It's not a big deal, just change:

SRC_DIR="www/"

To:

SRC_DIR="../../www/"

UPDATE Worked for me on Cordova and Phonegap.


Solution 5:

To have the source files automatically copied from the www source directory to the platforms/ios/www directory when you click the Run button in XCode:

In XCode, choose Product->Scheme->Edit Scheme...
Expand the triangle for Build->Pre-actions
Click the "+" to create a new Pre-action

You can leave the "Shell" setting blank.
Set "Provide build settings from" to the project you are building. This is important.

In the script area enter:

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

This works for me with XCode 8.2 and Apache Cordova 6.x


Post a Comment for "XCode Build Not Updating JS And HTML"