我最近将我的开发MacBook从经典的MacBook(32位)转换为MacBook Air(64位)。我正在尝试打开一个在运行XCode 4的旧MacBook(32位)上制作的项目。
该项目是PhoneGap 1.7.0中的PhoneGap应用程序。
我的新MacBook Air(64位)正在运行XCode 5.
我将我的旧版MacBook中的开发人员个人资料导入到新的MacBook Air中。但是当我尝试运行它时,我收到以下错误消息。
我尝试将构建设置中的架构更改为armv7,但仍然没有运气:(
有谁知道我为什么会收到此错误以及如何解决此问题?
由于
答案 0 :(得分:26)
确实如此,当我的应用程序不支持armv7时,XCode 5将默认架构更改为armv7。我正在运行Cordova 1.7.0,该版本不支持armv7架构。
Build Settings
移除所有架构 - >
Valid Architecture
armv6
添加到Build Settings
- > Valid Architecture
libSystem.B.dylib
问题:
从/usr/lib/libSystem.B.dylib
移除Build Settings
- > Linking
- > Other Linker Flags
同时从-weak_library
- >中删除Build Settings
Linking
- > Other Linker Flags
答案 1 :(得分:1)
Xcode 5要求您为模拟器(1)和iOS(2)构建库。然后,您可以将这些(3)合并为一个胖二进制文件,然后链接到您的主项目。我使用与Xcode用于构建主项目相同的标志(如screendump中所示)。
我在常见的gnu工具链变量中表示:
<强> 1。为模拟器构建库
CC=clang
IPHONEOS_DEPLOYMENT_TARGET=7.0
PATH="/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/usr/bin:/Applications/Xcode.app/Contents/Developer/usr/bin:$PATH"
CFLAGS="-arch i386 -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator7.0.sdk -mios-simulator-version-min=7.0"
<强> 2。构建iOS库
CC=clang
IPHONEOS_DEPLOYMENT_TARGET=7.0
PATH="/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/usr/bin:/Applications/Xcode.app/Contents/Developer/usr/bin:$PATH"
CFLAGS="-arch armv7 -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS7.0.sdk -miphoneos-version-min=7.0"
第3。合并为胖二进制文件
根据您使用的内容,选择.a
或.dylib
:
lipo -create "your armv7 lib".a "your simulator lib".a -output "your lib".a
lipo -create "your armv7 lib".dylib "your simulator lib".dylib -output "your lib".dylib