これがこの問題のあなたのバージョンを解決することを保証することはできません。しかし、私はついに私の仕事を手に入れました。
i386 と x86_64 を削除するように言った人は、答えの一部を持っています。
私のターゲットでは、アーキテクチャセクションを次のように設定しました
Architectures <multiple values>
Debug
Standard Architectures <$(ARCHS_STANDARD)>
Any iOS Simulator SDK <i386 x86_64>
Any iOS SDK <$(ARCHS_STANDARD)>
Release
Standard Architectures <$(ARCHS_STANDARD)>
Any iOS Simulator SDK <i386 x86_64>
Any iOS SDK <$(ARCHS_STANDARD)>
Base SDK <Latest iOS>
Build active Architecture only <No>
Supported Platforms <iOS>
Valid Architectures <armv7 arm64 i386 x86_64>
次に、別のターゲットを作成しました。これは集約 (File->new->Target->iOS->Other->Aggregate) このターゲットのビルド設定を変更せず、すべてデフォルトのままにしました。Build Phases セクションで、既存のターゲットを「Target Dependencies」セクションにドラッグしました。
Run Script セクションに以下を配置しました。
# define output folder environment variable
UNIVERSAL_OUTPUTFOLDER=${BUILD_DIR}/${CONFIGURATION}-universal
# Step 1. Build Device and Simulator versions
xcodebuild -target MiniZip ONLY_ACTIVE_ARCH=NO -configuration ${CONFIGURATION} -sdk iphoneos BUILD_DIR="${BUILD_DIR}" BUILD_ROOT="${BUILD_ROOT}"
xcodebuild -target MiniZip ONLY_ACTIVE_ARCH=NO -configuration ${CONFIGURATION} -sdk iphonesimulator BUILD_DIR="${BUILD_DIR}" BUILD_ROOT="${BUILD_ROOT}"
# make sure the output directory exists
mkdir -p "${UNIVERSAL_OUTPUTFOLDER}"
# Step 2. Create universal binary file using lipo "${BUILD_DIR}/${CONFIGURATION}-iphonesimulator/lib${PROJECT_NAME}.a"
lipo -create -output "${UNIVERSAL_OUTPUTFOLDER}/lib${PROJECT_NAME}.a" "${BUILD_DIR}/${CONFIGURATION}-iphoneos/lib${PROJECT_NAME}.a" "${BUILD_DIR}/${CONFIGURATION}-iphonesimulator/lib${PROJECT_NAME}.a"
# Last touch. copy the header files. Just for convenience
cp -R "${BUILD_DIR}/${CONFIGURATION}-iphoneos/include" "${UNIVERSAL_OUTPUTFOLDER}/"
私は MiniZip ライブラリを 4-way ファット ライブラリとして構築しようとしていたので、スクリプトで "MiniZip" と表示されている場所には、たまたまターゲットの名前が何であれ、明らかに配置することになります。
そして私の最終結果は?
Admins-Mac-mini-2:scratch JoeC$ file libminizip.a
libminizip.a: Mach-O universal binary with 4 architectures
libminizip.a (for architecture armv7): current ar archive random library
libminizip.a (for architecture i386): current ar archive random library
libminizip.a (for architecture x86_64): current ar archive random library
libminizip.a (for architecture arm64): current ar archive random library
成功!まあ、とにかく私のために。これであなたの問題も解決することを願っています!
編集: Ray Wenderlich の功績を認めるべきです。私のスクリプトは、彼が投稿したものに基づいています。