uiwjs / react-native-alipay

基于 React Native 的宝支付包,已更新到最新的支付宝 SDK 版本,支持Android/iOS。
https://uiwjs.github.io/react-native-alipay/
MIT License
208 stars 49 forks source link

fix: Change iOS header import style to work with latest Expo #50

Closed ouabing closed 2 years ago

ouabing commented 2 years ago

Expo 44.0 限制了 RN header 的 import 方式,不改成新的 import 方式会有编译问题,详见 https://github.com/expo/expo/issues/15622#issuecomment-997141629

jaywcjlove commented 2 years ago

@ouabing thx!

jaywcjlove commented 2 years ago

@ouabing react-native cli 编译不会出问题吧。

ouabing commented 2 years ago

我在 4.0.0-beta.1 上打上这个 commit 没有问题,但是 4.0.0 正式版会有这个错误:

Undefined symbol: _OBJC_CLASS_$_UTDevice

应该是 https://github.com/uiwjs/react-native-alipay/pull/44 这个提交替换的 SDK 是不包含 UTDID 库的,可能需要没有使用阿里云别的 SDK 的使用者主动在 Podfile 里装一下 pod 'UTDID'。安卓我没试过,我估计也会有类似问题。建议在文档里写一下。

ouabing commented 2 years ago

确认了下 Android 没这个编译问题

jaywcjlove commented 2 years ago

@ouabing 新的SDK 没有集成 UTDID,可以在包中直接集成,不用再去手动安装?

ouabing commented 2 years ago

我暂时没有时间仔细研究,目前看来 #44 这个 PR 应该就是为了避免和阿里云别的库的 UTDID 发生冲突,所以换成了不带 UTDID 的 Alipay SDK,见 https://help.aliyun.com/document_detail/39984.html

所以目前 react-native-alipay 4.0.0 里集成的是不带 UTDID 库的 SDK,但编译 alipay 还是需要 UTDID 库的,如果使用者没有用别的带有 UTDID 库的阿里云 SDK,则需要在 Podfile 里手动集成一下 pod 'UTDID'

不过我感觉这个是小众需求,应该没有太多人会用阿里云别的 SDK,所以我感觉应该给 react-native-alipay 同时发两个包比较好,一个是带 UTDID 的版本,一个不带。

jaywcjlove commented 2 years ago

@ouabing 我更新了文档,但是发两个版本代码不好维护的样子。