公司项目暂时告一段落,下个版本要集成支付宝,以前集成过,想着随便再看看,熟悉熟悉。但是遇到了几个问题,忘了怎么解决了,也是在网上查了半天,还问了他们客服,人工客服也是什么都不知道,浪费时间。
集成时要注意以下几点
1:要导入的依赖库,要仔细看挨个导入,我没有犯过类似的错误,少了不少奇怪的问题。
2:按照支付宝文档上说的,如果编译报错的话,要在报错的文档中加入
#import <Foundation/Foundation.h> 这个头文件,这个轻松解决,接着编译
3:openssl_wrapper.h 这个文件里会报 unknown type name 'BOOL' unknown type name 'NSString'
未知类型的问题 。看支付宝里有个pch文件,里面导入了 #import <UIKit/UIKit.h>
#import <Foundation/Foundation.h> 这两个头文件。我也创建了一个pch文件,也导入,按照支付宝 的写法复制进去了,然而并没什么卵用,一怒之下,直接写在了openssl_wrapper.h里,编译通过。
4:<per>openssl/asn1.h </per> 这个头文件找不到,这个问题文档里也写了解决办法了,但是我看了几次,不是太明白,百度了一下,把 Util 和 openssl 这两个文件夹拖到一个新的文件夹里,再导入到项目中,然后在Build Setting的Header Search Paths中点击+新建,把导入到项目的新建的文件夹直接拖到输入框中,解决。
5:报错:_EVP_DecodeBlock", referenced from: _dataFromBase64String in openssl_wrapper.o.....
支付宝Demo里有两个 .a 文件,仔细找,拖到你的项目中,解决。
感觉在上线的项目中,只要导入的依赖库没问题,其他的都没问题,3 4 5这些问题,都是加密文件报的错,而支付宝是不允许在客户端加密的,Demo只是为了演示才写的,实际项目中,我们只要调取支付的接口,做好回调就行。
(随时补充)
好吧,又被拒了
Your app, extension, and/or linked framework appears to contain code designed explicitly with the capability to change your app’s behavior or functionality after App Review approval, which is not in compliance with App Store Review Guideline 2.5.2 and section 3.3.2 of the Apple Developer Program License Agreement.
This code, combined with a remote resource, can facilitate significant changes to your app’s behavior compared to when it was initially reviewed for the App Store. While you may not be using this functionality currently, it has the potential to load private frameworks, private methods, and enable future feature changes. This includes any code which passes arbitrary parameters to dynamic methods such as dlopen(), dlsym(), respondsToSelector:, performSelector:, method_exchangeImplementations(), and running remote scripts in order to change app behavior and/or call SPI, based on the contents of the downloaded script. Even if the remote resource is not intentionally malicious, it could easily be hijacked via a Man In The Middle (MiTM) attack, which can pose a serious security vulnerability to users of your app.
意思是APP使用了外链,苹果担心会有安全漏洞,应该就是这两天才更新的,应该是使用了高德地图的定位SDK的原因。因为教师端同样使用了高德的SDK前几天审核就通过了,家长端的周六再次审核被拒。高德也紧急发布了新的SDK版本。也给了说明:
"近日,大量含JS-Patch的应用,在苹果应用商店(APP Store)上线审核时遭遇警告,苹果公司认为它的安全漏洞一旦被人利用,用户数据有遭受非法入侵的风险。"
重新提交,看看能不能通过。