- Build Active Architecture Only 選擇NO,表示支持各種設(shè)備
這個設(shè)置決定 Xcode 是否只為當前活動的設(shè)備架構(gòu)編譯代碼,還是為所有支持的架構(gòu)編譯代碼。
設(shè)置為 YES:只編譯當前連接設(shè)備或模擬器所需的架構(gòu)(如 iPhone 真機使用 arm64,模擬器使用 x86_64)
設(shè)置為 NO:編譯所有支持的架構(gòu)(如 armv7, armv7s, arm64, x86_64 等)
- Build Settings-> sandbox, User Script Sandboxing 設(shè)置為NO
error: Sandbox: bash(52747) deny(1) file-read-data /Users/admin/kzmarkdown/KZGfmCommonMark/xcodebuild.sh (in target 'KZGfmCommonMark' from project 'KZGfmCommonMark')
sh: xcodebuild.sh: Operation not permitted 在Run Script 里面添加 xcodebuild.sh編譯時報錯
打開project.pbxproj 搜索productRefGroup,將productRefGroup上面一行的mainGroup的值,復制給productRefGroup,再保存一下,Xcode就自動刷新出來了。
合并framework腳本
給腳本賦予權(quán)限
chmod +x xcodebuild.sh
#!/bin/sh
BIN_DIR="bin"
if [ ! -d "$BIN_DIR" ]; then
mkdir -p "$BIN_DIR"
fi
BIN_DIR_TMP="bin_tmp"
if [ ! -d "$BIN_DIR_TMP" ]; then
mkdir -p "$BIN_DIR_TMP"
fi
cp -af ${BUILT_PRODUCTS_DIR}/${TARGET_NAME}.framework/ ${BIN_DIR_TMP}/${PLATFORM_NAME}-${TARGET_NAME}.framework
cp -af ${BUILT_PRODUCTS_DIR}/${TARGET_NAME}.framework/ ${BIN_DIR}/${TARGET_NAME}.framework
iphoneos_path=$BIN_DIR_TMP/iphoneos-${TARGET_NAME}.framework/${TARGET_NAME}
iphonesimulator_path=$BIN_DIR_TMP/iphonesimulator-${TARGET_NAME}.framework/${TARGET_NAME}
if [ -e "$iphoneos_path" ]&&[ -e "$iphonesimulator_path" ]; then
lipo -create $BIN_DIR_TMP/*-${TARGET_NAME}.framework/${TARGET_NAME} -output ${BIN_DIR}/${TARGET_NAME}.framework/${TARGET_NAME}
open $BIN_DIR
fi
- pod 發(fā)版時需要設(shè)置的屬性
# Pod庫的構(gòu)建設(shè)置排除arm64架構(gòu)模擬器
s.pod_target_xcconfig = { 'EXCLUDED_ARCHS[sdk=iphonesimulator*]' => 'arm64' }
# 主工程的構(gòu)建設(shè)置排除arm64架構(gòu)模擬器
s.user_target_xcconfig = { 'EXCLUDED_ARCHS[sdk=iphonesimulator*]' => 'arm64' }
6.代碼覆蓋率
ENABLE_CODE_COVERAGE = NO;
GCC_GENERATE_TEST_COVERAGE_FILES = NO;
GCC_INSTRUMENT_PROGRAM_FLOW_ARCS = NO;

image.png

image.png