ios 記錄支付寶集成遇到的坑及解決方法


今天項目中要開始動手集成支付寶支付,在此小結一下。(目前新版的支付寶SDK有較大改版,去集成還需要自己去開發平台詳細的按照集成步驟來完成https://doc.open.alipay.com/docs/doc.htm?spm=a219a.7629140.0.0.4gCPvE&treeId=204&articleId=105295&docType=1,上面有集成步驟,這里不做介紹,第一次接觸的朋友可以先參照demo跑一下)。
 
1.下載最新版本的demo
添加了14個庫之后,終於編譯通過
 
1、問題:"_OBJC_CLASS_$_CMMotionManager", objc-class-ref in AlipaySDK
 
解決方法:遇到這樣的錯誤,是因為少了CoreMotion.framework
 
Build Phases ->Link Binary With Libraries 下添加庫: CoreMotion.framework。

2、問題:'openssl/asn1.h‘ file not found ras.h

 
解決方法:這個是因為openssl,a文件,在Xcode里的header search paths 里添加openssl.a文件的路徑。
 
格式如下  $(PROJECT_DIR)/文件夾名    
 
例如在根目錄/tools/alipay/openssl.a,就寫成 $(PROJECT_DIR)/tools/alipay 就可以了
3、問題:"_OBJC_CLASS_$_UTDevice", referenced from:objc-class-ref in AlipaySDK:
 
解決方法:只要用支付寶demo里面的的AlipaySDK.bundle,和AlipaySDK.framework ,編譯就不會出錯了.
 
 4.編譯項目,會出現以下問題:

  1)"Unknown type name ‘NSString‘ "或者"Unknown type name ‘NSData‘ "等不識別常見類的問題。

  

 

  這是因為缺少Foundation類庫和UIKit類庫,支付寶Demo中之所以沒有出現此錯誤,是因為在.pch文件中導入過這些類庫

  解決辦法:只需要在出現錯誤的文件中導入這些類庫即可

  

 

  2)‘openssl/asn1.h‘ file not found

  

 

  這是openssl文件夾頭文件鏈接問題,如果openssl文件夾隨意拉進項目中,即使添加頭文件鏈接,也可能解決不了此問題,

  這也是問什么一開始就將所需要的文件放到一個新建文件夾中再添加到項目中的原因。

  解決辦法:Targets->Build Settings->Header Search Path中添加1中建立的aliPaySDK文件夾的路徑(拖拽此文件夾至輸入框即可)

  

 

  3)根據項目需求添加demo中ViewController中的代碼 編譯后可能會出下面錯誤:

  "_OBJC_CLASS_$_Product", referenced from: objc-class-ref in ViewController.o

  

 

  AlipaySDK的demo中將Product的定義寫在了ViewControler.h中所致

  

 

  解決辦法:新建Product類,將ViewController中的代碼拷貝過去即可。

 

 三個地方一致:

 

 

在info.plist文件中添加:

待續:后面發現坑繼續填補。。。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM