gpt4 book ai didi

iphone - iPhone SDK 4 中针对多个平台

转载 作者:行者123 更新时间:2023-12-03 19:42:38 24 4
gpt4 key购买 nike

我有一个 iPhone SDK 项目,该项目应该为模拟器和 ARM 处理器构建一个静态库,然后将两者组合成一个通用库。

到目前为止,我使用的是 iPhone SDK 3+,并通过为每个模拟器和一个 ARM 创建一个单独的目标,然后使用 shell 脚本创建第三个目标来组合它们来实现这一目标。每个组成目标的部署目标/build设置都设置为各自的架构等。此外,iPhone SDK 3+ 允许我从主 XCode 左上角的下拉菜单中选择“Base SDK”窗口。

一切都很顺利——然后我升级到了 SDK 4。

现在,左上角的下拉菜单中没有“Base SDK”列表。此外,编译器似乎完全忽略目标部署设置。即使其中一个目标设置为“iPhone 设备”,另一个目标设置为“iPhone 模拟器”,它们仍然按照下拉菜单中设置的内容进行构建。

如果我说得不够清楚,这里是我们都知道和喜爱的 进攻 上述令人反感的菜单:

offending menu

再一次,在 SDK 3 中一切都完美运行。现在在 SDK 4 中,如果将其设置为“Device”,我会获得两个为 ARM 构建的库。如果它设置为模拟器,我会得到两个为模拟器构建的库。

有人知道这个 Bullhonkey 的解决方法吗?

非常感谢。

更新:“xcodebuild”命令行工具仍然有效,也就是说它将根据每个目标的部署参数构建正确的架构。

因此,我可以使用像这样调用 xcodebuild 的 shell 脚本,而不是使用 XCode 的 GUI 来构建:

xcodebuild -target device-target -configuration Debugxcodebuild -target sim-target -configuration Debug

找到真正的解决方案仍然很好,但这暂时可以完成工作。

最佳答案

是的,Apple 似乎正在放弃所有 XCode 控件和选项。如果我即将完成一个应用程序,我根本不会安装 Beta SDK 或 GM/公共(public) SDK。我知道升级会破坏一些东西。

无论如何,您应该能够创建一个外部目标或 Shell 脚本目标来构建每个目标并将库链接在一起。我的 bag-o-tricks 库有一个类似的 shell 脚本。在 XCode 项目设置中,我已将 BaseSDK 设置为 iPhone Device 4.0 SDK。构建脚本大致如下:

xcodebuild -parallelizeTargets -configuration Debug -sdk iphoneos4.0 -target StaticLibs
xcodebuild -parallelizeTargets -configuration Debug -sdk iphonesimulator4.0 -target StaticLibs
xcodebuild -parallelizeTargets -configuration Release -sdk iphoneos4.0 -target StaticLibs
xcodebuild -parallelizeTargets -configuration Release -sdk iphonesimulator4.0 -target StaticLibs
mkdir -p build/Debug-dist build/Release-dist
lipo build/Debug-iphoneos/libfoo.a build/Debug-iphonesimulator/libfoo.a -create -output build/Debug-dist/libfoo.a
lipo build/Release-iphoneos/libfoo.a build/Release-iphonesimulator/libfoo.a -create -output build/Release-dist/libfoo.a

好吧,我承认,这是一个展开版本。我的实际脚本在${LIST_OF_STUFF}中有一堆for thing; do ... 循环以更好地自动化构建、复制所有包含文件并汇总整个 SDK。

我提交了patch to Core-Plot为他们自动创建 SDK。如果您使用此补丁作为引用,请从 SDKSettings.plist 中删除 GCC_VERSION 键/值对,否则针对它构建的应用程序将会失败。

关于iphone - iPhone SDK 4 中针对多个平台,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3160787/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com