19

我最近将我的开发 MacBook 从经典 MacBook(32 位)切换到 MacBook Air(64 位)。我正在尝试打开一个在运行 XCode 4 的旧 MacBook(32 位)上创建的项目。

该项目是在PhoneGap 1.7.0 中制作的PhoneGap 应用程序。

我的新 MacBook Air(64 位)正在运行 XCode 5。

我将我的开发人员配置文件从旧 MacBook 导入到新 MacBook Air。但是当我尝试运行它时,我收到以下错误消息。

在此处输入图像描述

在此处输入图像描述

我尝试将构建设置中的架构更改为 armv7,但仍然没有运气:(

有谁知道我为什么会收到此错误以及如何解决?

谢谢

4

2 回答 2

26

好的,事实证明,当我的应用程序不支持 armv7 时,XCode 5 将默认架构更改为 armv7。我正在运行 Cordova 1.7.0,该版本不支持 armv7 架构。

修复架构问题:

  1. 从--> 中删除了所有架构Build SettingsValid Architecture
  2. 添加armv6Build Settings-->Valid Architecture 在此处输入图像描述


修复libSystem.B.dylib问题:

  1. /usr/lib/libSystem.B.dylibBuild Settings--> Linking-->中删除Other Linker Flags

  2. -weak_libraryBuild Settings--> Linking-->中删除Other Linker Flags 在此处输入图像描述

于 2013-11-04T14:45:37.983 回答
1

Xcode 5 要求您为模拟器 (1) 和 iOS (2) 构建库。然后,您可以将 (3) 这些合并到一个胖二进制文件中,然后将其链接到您的主项目。我使用与 Xcode 相同的标志来构建您的主项目(如您的屏幕转储中所示)。

用我做的通用 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
于 2013-11-01T13:36:15.540 回答