diff --git a/src/plugins/projectexplorer/xcodebuildparser.cpp b/src/plugins/projectexplorer/xcodebuildparser.cpp
index 95107fa8e45581f2cd6d2f26890ec21fcbd06dc1..ce83d2037236e2cb4c3372cf1fa9cb4bfa5af74b 100644
--- a/src/plugins/projectexplorer/xcodebuildparser.cpp
+++ b/src/plugins/projectexplorer/xcodebuildparser.cpp
@@ -41,6 +41,7 @@ namespace ProjectExplorer {
 static const char failureRe[] = "\\*\\* BUILD FAILED \\*\\*$";
 static const char successRe[] = "\\*\\* BUILD SUCCEEDED \\*\\*$";
 static const char buildRe[] = "=== BUILD (AGGREGATE )?TARGET (.*) OF PROJECT (.*) WITH .* ===$";
+static const char signatureChangeRe[] = "(.+): replacing existing signature$";
 
 XcodebuildParser::XcodebuildParser() :
     m_fatalErrorCount(0),
@@ -53,6 +54,8 @@ XcodebuildParser::XcodebuildParser() :
     QTC_CHECK(m_successRe.isValid());
     m_buildRe.setPattern(QLatin1String(buildRe));
     QTC_CHECK(m_buildRe.isValid());
+    m_replacingSignatureRe.setPattern(QLatin1String(signatureChangeRe));
+    QTC_CHECK(m_replacingSignatureRe.isValid());
 }
 
 bool XcodebuildParser::hasFatalErrors() const
@@ -74,6 +77,16 @@ void XcodebuildParser::stdOutput(const QString &line)
             m_xcodeBuildParserState = OutsideXcodebuild;
             return;
         }
+        if (m_replacingSignatureRe.indexIn(lne) > -1) {
+            Task task(Task::Warning,
+                      QCoreApplication::translate("ProjectExplorer::XcodebuildParser",
+                                                  "Replacing signature"),
+                      Utils::FileName::fromString(m_replacingSignatureRe.cap(1)), /* filename */
+                      -1, /* line */
+                      Constants::TASK_CATEGORY_COMPILE);
+            taskAdded(task);
+            return;
+        }
         IOutputParser::stdError(line);
     } else {
         IOutputParser::stdOutput(line);
@@ -241,6 +254,26 @@ void ProjectExplorerPlugin::testXcodebuildParserParsing_data()
                     Constants::TASK_CATEGORY_COMPILE))
             << QString()
             << XcodebuildParser::UnknownXcodebuildState;
+    QTest::newRow("inside catch codesign replace signature")
+            << XcodebuildParser::InXcodebuild
+            << QString::fromLatin1("/somepath/somefile.app: replacing existing signature") << OutputParserTester::STDOUT
+            << QString() << QString()
+            << (QList<Task>()
+                << Task(Task::Warning,
+                        QCoreApplication::translate("ProjectExplorer::XcodebuildParser",
+                                                    "Replacing signature"),
+                        Utils::FileName::fromString(QLatin1String("/somepath/somefile.app")), /* filename */
+                        -1, /* line */
+                        Constants::TASK_CATEGORY_COMPILE))
+            << QString()
+            << XcodebuildParser::InXcodebuild;
+    QTest::newRow("outside forward codesign replace signature")
+            << XcodebuildParser::OutsideXcodebuild
+            << QString::fromLatin1("/somepath/somefile.app: replacing existing signature") << OutputParserTester::STDOUT
+            << QString::fromLatin1("/somepath/somefile.app: replacing existing signature\n") << QString()
+            << QList<Task>()
+            << QString()
+            << XcodebuildParser::OutsideXcodebuild;
 }
 
 void ProjectExplorerPlugin::testXcodebuildParserParsing()
diff --git a/src/plugins/projectexplorer/xcodebuildparser.h b/src/plugins/projectexplorer/xcodebuildparser.h
index 49baff868c6d29d5f1399a984ba597842030f194..bb49fce88fe2d4f13e59d2b1284f918bd3e56357 100644
--- a/src/plugins/projectexplorer/xcodebuildparser.h
+++ b/src/plugins/projectexplorer/xcodebuildparser.h
@@ -59,6 +59,7 @@ private:
     QRegExp m_failureRe;
     QRegExp m_successRe;
     QRegExp m_buildRe;
+    QRegExp m_replacingSignatureRe;
     XcodebuildStatus m_xcodeBuildParserState;
     QString m_lastTarget;
     QString m_lastProject;