2015-05-05 3 views
1

Я могу построить проект и сгенерировать отчет OCLint в проекте без cocoapods, но при интеграции с cocoapods сборка для проекта успешна, но сборка для OCLint приводит к ошибкам для файла, который присутствует в cocoapods, и сборка завершается с ошибкой.Как использовать интегрированный проект cocoapods с OCLint?

enter image description here

Так как сделать построить успешный для cocoapods с OCLint?

Любая помощь будет оценена по достоинству.

+0

ли это дает вам ошибку вокруг .plist не нашли? –

+0

нет. это дает мне ошибку для класса, используемого в локальных контейнерах. –

+0

Я также пытаюсь заставить OCLint работать с cocoapods, вы его работали? – Bob

ответ

1

Ниже приведен сценарий, который я использую для создания html-файла для интегрированного проекта cocoapods с OCLint.

OCLINT_HOME - это путь для загружаемой папки oclint. Я переименовал папку в oclintrelease.

OCLINT_HOME=/Users/Dheeraj/Downloads/oclintrelease 
export PATH=$OCLINT_HOME/bin:$PATH 

hash oclint &> /dev/null 
if [ $? -eq 1 ]; then 
echo >&2 "oclint not found, analyzing stopped" 
exit 1 
fi 

cd ${TARGET_TEMP_DIR} 

if [ ! -f compile_commands.json ]; then 
echo "[*] compile_commands.json not found, possibly clean was performed" 
echo "Workspace Path : ${MY_WORKSPACE}" 
echo "[*] starting xcodebuild to rebuild the project.." 
# clean previous output 

if [ -f xcodebuild.log ]; then 
rm xcodebuild.log 
echo "Oclint Clean performed" 
fi 

cd ${SRCROOT} 

xcodebuild clean 

#build xcodebuild.log 
xcodebuild ONLY_ACTIVE_ARCH=NO -workspace ${PROJECT_NAME}.xcworkspace -scheme ${PROJECT_NAME} -configuration Debug clean build| tee ${TARGET_TEMP_DIR}/xcodebuild.log 
#xcodebuild <options>| tee ${TARGET_TEMP_DIR}/xcodebuild.log 

echo "[*] transforming xcodebuild.log into compile_commands.json..." 
cd ${TARGET_TEMP_DIR} 
#transform it into compile_commands.json 
oclint-xcodebuild 

fi 

echo "[*] starting analyzing" 
cd ${TARGET_TEMP_DIR} 

oclint-json-compilation-database -e /Users/Dheeraj/Desktop/sampleCocoaPods/Pods/ -v oclint_args "-report-type html -o /Users/Dheeraj/NewHTMLREPORT.html" | sed 's/\(.*\.\m\{1,2\}:[0-9]*:[0-9]*:\)/\1 warning:/' 

Он исключит все файлы, относящиеся к Pods.

Если вы хотите включить Бобы файл, а затем заменить последнюю строку в скрипте на:

oclint-json-compilation-database -v oclint_args "-report-type html -o /Users/Dheeraj/NewHTMLREPORT.html" | sed 's/\(.*\.\m\{1,2\}:[0-9]*:[0-9]*:\)/\1 warning:/' 

Примечания:

  1. Пожалуйста, попробуйте сначала с коротким образцом Заявки, включая cocoapods и один раз вы создали отчет для примера приложения, а затем интегрируете скрипт в свое реальное приложение, так как создание с OCLint занимает много времени для создания отчета.
  2. Всегда очищайте приложение, а затем создавайте с помощью OCLint.

Link for reference

+0

Спасибо, @Dheeraj, я проверю это. – Bob

Смежные вопросы