小编Lan*_*tig的帖子

ld:找不到框架Stripe for architecture x86_64

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

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

现在,每当我尝试编译Project B时,都会收到此错误:

ld: framework not found Stripe for architecture x86_64

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

#import <Stripe/Stripe.h>

Xcode可以轻松找到Stripe.h.我也尝试将Stripe SDK直接添加到Project B中.我已经对所有目标(Stripe.framework列出)进行了两次和三次检查Build Phases - > Link Binary With Libraries部分.

我手动添加了Stripe框架,所以我也尝试用Cocoapods添加它,但这也没有用.

请帮忙!

这是项目B的项目结构("示例"),项目A("RCTFBLogin")位于其下方.

在此输入图像描述

这是完整的错误:

在此输入图像描述

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

谢谢.

更新:我$(SRCROOT)/../..在项目B目标的构建设置 - >"搜索路径"下添加了" "(因为项目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 …
Run Code Online (Sandbox Code Playgroud)

xcode objective-c ios stripe-payments xcode7

16
推荐指数
3
解决办法
2万
查看次数

使用Chrome中的React Native调试ES6导入语句

我非常依赖React Native的"Chrome in Debug"功能,因此依赖于Chrome的调试器.但是我注意到这个系统存在一个巨大的缺陷:我使用ES6风格的导入导入的模块在Chrome的范围内是不可见的,即使代码执行正常.这使得使用这些import语句调试代码变得非常困难.

如果我import用a 替换一个语句,var MyModule = require(...)那么该模块在范围内是可见的.

在阅读ES6模块后,在调试器中没有定义导入我查看了React Native生成的转换源代码(通过http://localhost:8081/index.ios.bundle?platform=ios&dev=true在我的浏览器中加载),并注意到有问题的模块是以不同的名称加载的:

var _MyModule = require('MyApp/MyModule.js');
var _MyModule2 = babelHelpers.interopRequireDefault(_MyModule);
Run Code Online (Sandbox Code Playgroud)

事实上我可以_MyModule2在Chrome中使用.我有几个相关的问题:

  1. 源地图看起来像一个惊人的技术!他们为什么不支持映射变量名呢?
  2. 有没有办法import在Chrome中使用React Native更轻松地使用语句进行调试?例如,我习惯于将鼠标移动到Chrome中的变量上以查看值,但这些导入不再可能.(使用带有es6的chrome进行调试建议#enable-javascript-harmony在Chrome中启用并关闭源映射,但考虑到Flow代码和uglification,我怀疑这会运行良好.)

谢谢.

javascript debugging google-chrome ecmascript-6 react-native

11
推荐指数
1
解决办法
1914
查看次数

React Native链接SMS

既然RN支持跨平台链接,我想知道如何使用预设消息发送短信.根据文档(https://facebook.github.io/react-native/docs/linking.html#content):

尝试使用任何已安装的应用打开给定的网址.您可以使用其他URL,例如位置(例如"geo:37.484847,-122.148386"),联系人或可以使用已安装的应用程序打开的任何其他URL.

我的问题是,我用什么URI方案打开带有预定义消息的短信?它是跨平台的吗?

谢谢.

javascript react-native

10
推荐指数
3
解决办法
9887
查看次数

在promise链中吞噬了异常

当Parse for React Native中的一系列promise中抛出异常时,我注意到发生了一些非常奇怪的事情.承诺链永远不会解决,永远不会拒绝,并且永远不会抛出异常.它只是默默地消失.

这是重新创建问题的示例代码:

// Replacing this with Promise.resolve() prints the error.
// Removing this stage prints the error.
Parse.Promise.as()
  // Removing this stage causes a red screen error.
  .then(function() {
    // Replacing this with Parse.Promise.as() causes a red screen error.
    return Promise.resolve();
  })
  .then(function () {
    throw new Error("There was a failure");
  })
  .then(function () { console.log("Success")}, function (err) { console.log(err) });
Run Code Online (Sandbox Code Playgroud)

正如您从评论中看到的那样,它似乎只发生在这个特定的事件序列中.删除一个阶段,或者交换一个原生JS承诺的Parse承诺会导致事情再次发生.(在我的实际代码中,"Promise.resolve()"阶段实际上是对返回promise的本机iOS方法的调用.)

我知道Parse承诺的行为与A +兼容的承诺完全不同(参见/sf/answers/2185625221/).实际上,Parse.Promise.enableAPlusCompliant()在此部分代码之前调用会导致异常被捕获并打印出来.但我认为Parse promises和原生JS承诺可以安全地一起使用.

为什么这个异常会默默地消失?

谢谢.

javascript promise parse-platform react-native

5
推荐指数
1
解决办法
619
查看次数

在模拟器中/在设备上/带有或不带有Chrome调试的React Native行为有所不同

我正在构建一个React Native应用程序(当前仅适用于iOS),并且发现了一个非常讨厌的错误,该错误仅在1.)在实际设备上运行,以及2.)在没有Chrome调试的情况下运行时才会显现出来。(好吧?)

我正在使用带有选项卡的react-native-router-flux,当我点击加载新选项卡路线的按钮(Actions.tabRouteName)时,屏幕变为空白。就像我说的那样,当启用Chrome调试时,它在模拟器中以及设备上都可以正常工作。

我尝试过的其他方法:在另一台设备上运行,重新加载JS,在Xcode中重建应用程序。

在这些不同的运行情况下,行为有什么原因会有所不同吗?

谢谢。

更新:这似乎与动画和路线切换有关。我在这个Github问题中发布了更多详细信息。我还发现在Github问题中,其他人在调试遇到了类似问题的想法也得到了传闻支持。

javascript ios react-native

5
推荐指数
1
解决办法
1004
查看次数

在 Javascript 中导入模块未明确导出的内容

在 Javascript 中,有什么方法可以导入(或要求)一个模块没有从该模块导出的对象?

我意识到这可能是不好的做法,但我想知道这是否可能。我有 Python 背景,所以我对我可以导入模块但无法在 Javascript 中访问其所有数据元素的想法感到困惑。

javascript

5
推荐指数
1
解决办法
2321
查看次数

alignItems:center阻止React Native中的flex行文本换行

出于某种原因,alignItems: center在容器视图上设置样式会导致弹性行内的文本停止换行,并且不会尊重容器视图padding.

这里的工作示例和代码:https://rnplay.org/apps/FsDXuQ

我尝试按照建议将flexDirection设置为column,使用flex:1或flexWrap,但唯一有效的方法是alignItems: center从容器视图中删除.

我不明白这里发生了什么.如果我想要怎么办

  1. 行元素,不占用屏幕的整个宽度,
  2. 中心,
  3. 里面有长文字,
  4. 哪个包裹?

谢谢.

javascript react-native

3
推荐指数
2
解决办法
3316
查看次数