我已经读过这个post,我已经设法在不使用脚本的情况下实现了胖版本。我的下一步是尝试使用终端来生成胖二进制文件。
在帖子中,作者声明将以下内容添加到项目文件中:
SDKROOT = iphoneos
SDKROOT[arch=i386] = $(CORRESPONDING_SIMULATOR_SDK_NAME)
SDKROOT[arch=x86_64] = $(CORRESPONDING_SIMULATOR_SDK_NAME)
鉴于我可以从项目文件中的构建设置生成一个胖二进制文件,假设我可以从终端执行此操作。我的问题在于如何在终端中指定SDKROOT[arch=i386]
和SDKROOT[arch=x86_64]
。我尝试过不同的组合而没有运气。以下是尝试过的众多尝试之一:
xcodebuild clean analyze ARCHS='arm64 armv7 i386 x86_64' SDKROOT='iphoneos' SDKROOT[arch=i386] = 'iphonesimulator12.1' SDKROOT[arch=x86_64] = 'iphonesimulator12.1'
xcodebuild clean analyze ARCHS='arm64 armv7 i386 x86_64' SDKROOT='iphoneos iphonesimulator12.1'
你没有这样指定它。每个SDKROOT都需要映射到SDKs Info.pist中的SDKROOT属性(本例中为/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Info.plist)。在iPhoneSimulator SDK中,此属性设置为:iphonesimulator。所以你已经正确设置了ARCHS变量(尽管我怀疑armv7和arm64 ARCHS是英特尔平台二进制文件中的SDK,你可能需要删除它们,我的内存在这一点上有点混乱)。
但是每个xcodebuild调用只能指定一个SDKROOT。你的第一行几乎是正确的,但我认为应该是:
xcodebuild clean analyze ARCHS ='arm64 armv7 i386 x86_64'SDDROOT ='iphonesimulator'