Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/120.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios ld:未找到架构x86_64的框架条带_Ios_Objective C_Xcode_Xcode7_Stripe Payments - Fatal编程技术网

Ios ld:未找到架构x86_64的框架条带

Ios ld:未找到架构x86_64的框架条带,ios,objective-c,xcode,xcode7,stripe-payments,Ios,Objective C,Xcode,Xcode7,Stripe Payments,我有一个iOS组件,它依赖于项目A。我在Xcode的项目A中包含了Stripe SDK,它编译得很好 然而,我正在Xcode中构建另一个项目,它依赖于这个组件ProjectB。我将ProjectA添加到ProjectB的库中。项目A依赖于项目B,但不直接依赖于Stripe SDK 现在,每当我尝试编译项目B时,都会出现以下错误: ld:未找到架构x86_64的框架条带 这一行(项目A内部)似乎触发了错误: #导入 Xcode很容易找到Stripe.h。我还尝试将Stripe SDK直接添加到项目

我有一个iOS组件,它依赖于项目A。我在Xcode的项目A中包含了Stripe SDK,它编译得很好

然而,我正在Xcode中构建另一个项目,它依赖于这个组件ProjectB。我将ProjectA添加到ProjectB的库中。项目A依赖于项目B,但不直接依赖于Stripe SDK

现在,每当我尝试编译项目B时,都会出现以下错误:

ld:未找到架构x86_64的框架条带

这一行(项目A内部)似乎触发了错误:

#导入

Xcode很容易找到Stripe.h。我还尝试将Stripe SDK直接添加到项目B中。对于所有目标(
Stripe.framework
已列出),我已经仔细检查了构建阶段->使用库链接二进制文件部分

我手动添加了Stripe框架,因此我也尝试使用Cocoapods来添加它,但这也不起作用

请帮忙

下面是项目B(“示例”)的项目结构,下面是项目A(“RCTFBLogin”)

以下是全部错误:

我使用的是Xcode 7.2和Stripe SDK的最新版本(6.0.0)。同样的Stripe框架代码在另一个项目中也可以正常工作

谢谢

更新:我在构建设置->项目B目标的“搜索路径”下的“框架搜索路径”中添加了“
$(SRCROOT)/../../../../code>”(因为项目B位于项目A的两个文件夹深处),它开始成功编译。但是,我现在在运行时出现以下错误:

ld: warning: Auto-Linking supplied '/Users/rettig/wip/react-native-facebook-login.2/Stripe.framework/Stripe', framework linker option at /Users/rettig/wip/react-native-facebook-login.2/Stripe.framework/Stripe is not a dylib
Undefined symbols for architecture x86_64:
  "_OBJC_CLASS_$_Stripe", referenced from:
      objc-class-ref in libRCTFBLogin.a(RCTFBLogin.o)
ld: symbol(s) not found for architecture x86_64

我必须做两件事才能让它工作:

  • 将“$(SRCROOT)/../…”(因为项目B位于项目A的两个文件夹深处)添加到项目B目标的“生成设置->搜索路径”下的“框架搜索路径”中

  • 将StripeSDK也添加到Project B的框架中。这第二步特别让我吃惊,因为项目B并不直接依赖于Stripe


  • 在运行测试目标时,我在另一个框架中看到了同样的问题。我必须在
    buildphases>linkbinary-With-Libraries
    部分下将框架添加到我的测试目标(而不仅仅是我的普通目标)

    迦太基有关于我看到的问题的更多信息:

    您在运行测试用例时遇到过这个问题吗? 这就是我的播客文件的样子:

    def shared_pods
        pod ‘GoogleMaps', '~> 1.13.0'
        pod ‘SwiftyJSON', '~> 2.3.2'
        pod ‘Alamofire', '~> 3.2.1'
        pod ‘MGSwipeTableCell’
    end
    
    target 'projectName' do
       shared_pods
    end
    
    然后我把这个添加到podfile中:

    target ‘ProjectTests’ do
        pod ‘Nimble’, ‘~> 4.0.0’
        pod ’Quick’
    end
    
    我还需要做的是:

    target ‘ProjectTests’ do
        shared_pods // I needed to add this line as well. Since this line included the needed 'MGSwipeTableCell' framework 
        pod ‘Nimble’, ‘~> 4.0.0’
        pod ’Quick’
    end
    

    因此,一个可能的原因是,在您的pod文件中,您没有正确地添加它们,只是要确保将框架添加到必要的目标中。

    在将一些依赖项从pod切换到carthage时注意到了这个问题。与Honey的回答类似,我在修改podfile时避免了这个错误

    事实证明,我要添加的只是测试目标。然后运行'pod install',它会将您的测试目标链接到您的pod生成的框架

    target 'Project' do
      use_frameworks!
    
      //pods here normally
    
      target 'ProjectTests' do
       //nothing in here
      end
    end
    

    一个小时我在寻找解决办法。我删除了所有派生数据,多次清理了我的项目,并尝试手动链接我的testtarget。为我工作-谢谢!