설정

설정

저는 Mac을 사용하여 Xcode 빌드에서 일부 스크립트를 작성하려고 합니다. dSYM를 확인하는 데 사용할 수 있는 몇 가지 디렉토리가 있습니다 Show package contents. Xcode 빌드 후 실행되는 스크립트에서 dSYM을 출력 디렉터리에 복사하려고 합니다.

내 명령은 다음과 같습니다

cp -vR "${BUILD_PATH}/${CONFIGURATION}-${DEVICE_TYPE}/${FRAMEWORK}.dSYM" "${OUTPUT_FOLDER}/${FRAMEWORK}.dSYM"

확장하면 기본적으로 다음과 같습니다.

cp -vR "${BUILD_PATH}/${ANOTHER_FOLDER}/MyFramework.framework.dSYM" "${OUTPUT_FOLDER}/MyFramework.framework.dSYM"

dsym 폴더를 dsym 폴더에 복사하면 다음과 같이 됩니다.

MyFramework.framework.dSYM/MyFramework.framework.dSYM

rm -rf복사하기 전에는 dSYM을 사용할 수 있었는데 삭제하지 않고 다른 방법이 있는지, 제가 뭘 잘못하고 있는지 더 궁금합니다. 감사해요!

답변1

MyFramework.framework.dSYM 상위 폴더를 복사하지 않으려면 cp시작되도록 명령을 조정하십시오.다음과 같은그 디렉토리. 이전 동작과 일치하려면모든dSYM 디렉터리의 파일은 심지어 도트 파일까지 복사되며, bash를 위해 해당 파일을 선택하도록 쉘에 지시해야 합니다. 이는 shopt -s dotglob.

새로운 cp명령은 다음과 같습니다:

shopt -s dotglob
cp -vR "${BUILD_PATH}/${CONFIGURATION}-${DEVICE_TYPE}/${FRAMEWORK}.dSYM"/* \
       "${OUTPUT_FOLDER}/${FRAMEWORK}.dSYM"

내가 한 일은 /*소스 경로의 끝에 추가하는 것뿐이었습니다.

실행 예시:

설정

$ tree -a build_path/
build_path/
└── configuration-type
    └── framework.dSYM
        ├── a
        ├── .dotfile-here
        └── subdir
            └── b

3 directories, 3 files

구현하다

cp -vR build_path/configuration-type/framework.dSYM/* output_folder/MyFramework.framework.dSYM

결과

$ tree -a output_folder/
output_folder/
└── MyFramework.framework.dSYM
    ├── a
    ├── .dotfile-here
    └── subdir
        └── b

2 directories, 3 files

관련 정보