Я пытаюсь создать универсальную инфраструктуру для iOS, и у меня есть фаза сборки «Добавить файлы копий» в моей совокупной цели, которая, как правило, ведет себя непредсказуемо (скопируйте некоторые файлы в целевом местоположении), можете ли вы сказать мне, если это можно каким-то образом решить?XCode «Добавить файлы копий файлов» не удается скопировать файлы заголовков при создании универсальной рамки
Я добавил 3 файлов на этом этапе сборки копии ...
После того, как сборка будет сделано, это то, что я вижу построить журнал ..
Результат не соответствует - иногда все (3) файлы копируются, но чаще всего копируют только несколько файлов в целевое местоположение. Журнал сборки не дает никаких ошибок/предупреждений для этой (копии) фазы.
Скорее всего, это проблема с xcode. Любое обходное решение/идея, чтобы обойти эту проблему, очень ценится, так как мне нужно строить проект несколько раз в день (чтобы сэкономить время).
Обновление/редактирует
Если я не редактировать любого из 3-х файлов заголовки добавленных (+) в «добавить файлы копирование» после последней сборки, то ни один из файлов не копируются в рамочной папке on build (cmd + B).
Ниже приведены сценарии, используемые в целевой сборки phases-
Сценарий 1: Построить статическую LIB
xcodebuild -project ${PROJECT_NAME}.xcodeproj -sdk iphonesimulator -target ${PROJECT_NAME} -configuration ${CONFIGURATION} clean build CONFIGURATION_BUILD_DIR=${BUILD_DIR}/${CONFIGURATION}-iphonesimulator
xcodebuild -project ${PROJECT_NAME}.xcodeproj -sdk iphoneos -target ${PROJECT_NAME} -configuration ${CONFIGURATION} clean build CONFIGURATION_BUILD_DIR=${BUILD_DIR}/${CONFIGURATION}-iphoneos
Сценарий 2: Построить универсальный рамочный
SIMULATOR_LIBRARY_PATH="${BUILD_DIR}/${CONFIGURATION}-iphonesimulator/lib${PROJECT_NAME}.a" &&
DEVICE_LIBRARY_PATH="${BUILD_DIR}/${CONFIGURATION}-iphoneos/lib${PROJECT_NAME}.a" &&
UNIVERSAL_LIBRARY_DIR="${BUILD_DIR}/${CONFIGURATION}-iphoneuniversal" &&
UNIVERSAL_LIBRARY_PATH="${UNIVERSAL_LIBRARY_DIR}/${PRODUCT_NAME}" &&
FRAMEWORK="${UNIVERSAL_LIBRARY_DIR}/${PRODUCT_NAME}.framework" &&
# Create framework directory structure.
rm -rf "${FRAMEWORK}" &&
mkdir -p "${UNIVERSAL_LIBRARY_DIR}" &&
mkdir -p "${FRAMEWORK}/Versions/A/Headers" &&
mkdir -p "${FRAMEWORK}/Versions/A/Resources" &&
# Generate universal binary for the device and simulator.
lipo "${SIMULATOR_LIBRARY_PATH}" "${DEVICE_LIBRARY_PATH}" -create -output "${UNIVERSAL_LIBRARY_PATH}" &&
# Move files to appropriate locations in framework paths.
cp "${UNIVERSAL_LIBRARY_PATH}" "${FRAMEWORK}/Versions/A" &&
ln -s "A" "${FRAMEWORK}/Versions/Current" &&
ln -s "Versions/Current/Headers" "${FRAMEWORK}/Headers" &&
ln -s "Versions/Current/Resources" "${FRAMEWORK}/Resources" &&
ln -s "Versions/Current/${PRODUCT_NAME}" "${FRAMEWORK}/${PRODUCT_NAME}"
Я серьезно необходимо исправить основную реальную проблему, чтобы автоматизировать сборку (избегайте workaroun ds, упомянутых в моем ответе). Спасибо.
** Другое обходное решение: ** Построение проекта _twice_ (то есть последовательный Cmd + B) гарантирует, что файлы заголовков, указанные в разделе «Добавить фазу копирования», являются скопирован в абсолютный путь. – Ashok
Это обходное решение для меня не работает с Xcode 8.3.3. –