【问题标题】:iOS Simulator build - undefined symbols for architecture i386iOS 模拟器构建 - 架构 i386 的未定义符号
【发布时间】:2015-11-25 23:15:55
【问题描述】:

解决方案

好的,虽然建议的答案有助于找到解决方案,但这需要一些工作。因此,如果有帮助,我会描述我的食谱。

我的编译问题可能是由于框架版本之间的不匹配。虽然有些框架是手动注入的,但有些框架是使用 pod 添加的。这可能导致了问题,并且我的项目并未针对所有模拟器进行编译。

为了克服这个问题,我删除了所有剩余的框架并使用 pod 将它们添加回来。然而,这不是即插即用的。我使用的是 xcode 6.3.x(使用 Swift 1)并且在使用更新的 pod 时存在语义问题。

这是我的工作食谱:

# Uncomment this line to define a global platform for your project
platform :ios, '8.0'
# Uncomment this line if you're using Swift
use_frameworks!
pod 'GoogleMaps'
pod 'Parse', '1.9.1'
pod 'ParseUI'
pod 'ParseFacebookUtilsV4', '~> 1.9'
pod 'ParseTwitterUtils', '~> 1.9'
pod 'FBSDKCoreKit'
pod 'FBSDKLoginKit'

现在正在为所有模拟器编译完整的项目。

问题

我正在开发一个为所有模拟器构建的应用程序,直到我添加了 pod 以集成 Google Maps SDK。使用这个框架,除了Parse SDK,还需要加上Facebook SDK and some libs。这是我的问题的起点,因为与 -ObjC 标志发生冲突

从那时起,我的项目在大多数模拟器上运行良好,除了 iphone 4S、iphone 5 和一些 ipad。返回的错误如下:

库编译和构建架构真的很新,所以我想知道这是否只是一个模拟器问题,或者我的问题在构建 .api 时是否会持续存在?我需要确保在从 iphone 4S 到 6+ 的设备上一切正常

我的有效架构如下:arm64 armv7 armv7s 有人可以指导我了解正在发生的事情吗?

我很乐意提供您可能需要的任何其他信息来帮助我。谢谢你!

【问题讨论】:

    标签: ios iphone compilation ios-simulator i386


    【解决方案1】:

    您在项目中包含的 Parse 框架是为 64 位 MacOSX 构建的。

    我建议您将 Parse pod 添加到您的 Podfile 中

    pod 'Parse'
    pod 'ParseUI'
    pod 'ParseCrashReporting'
    

    【讨论】:

    • 好的,会试试这个,但是它以前是怎么工作的?在同一个项目中?
    • 它以前在 64 位机器上工作过,对吧?而您目前正在 x386(32 位)机器上构建它。包含的框架对于第一台机器是正确的。
    • 不,相同的机器,相同的代码,相同的项目。唯一的区别是添加了 pod(谷歌地图)和 FDSBK 框架。 Apple 现在需要 64 位版本。我没有一秒钟的时间来测试它,但我今晚会解决这个问题。
    • 好吧,所以你是对的(部分),当直接从 pod 注入解析时问题就消失了。但是,不得不玩这个版本很多...
    猜你喜欢
    • 2012-02-09
    • 2012-03-08
    • 1970-01-01
    • 2012-12-08
    • 2018-10-05
    • 2011-08-14
    • 2011-10-30
    相关资源
    最近更新 更多