SDK開發(fā)

開發(fā)SDK 基礎(chǔ)知識儲備!!!!

靜態(tài)庫 和 動態(tài)庫

靜態(tài)庫:以.a 和 .framework為文件后綴名请唱。
動態(tài)庫:以.tbd(之前叫.dylib) 和 .framework 為文件后綴名棵里。
(但是蘋果不讓使用自己的動態(tài)庫,否則審核就無法通過)

Swift不支持靜態(tài)庫只支持動態(tài)庫

決定使用動態(tài)庫
http://www.reibang.com/p/f3b51ec4d8d4

問題!:Swift App工程引入了混合OC+Swift的Swift Framework冷尉,并使用了其中的Swift類,但在編譯App工程時系枪,卻報錯:
'XXXX' is unavailable: cannot find Swift declaration for this class
奇怪了雀哨,Swift代碼調(diào)用Swift Framework中的Swift類,居然找不到申明。
分析了下自己的Framework雾棺,有個過程是自己寫的腳本自動生成Framework的膊夹,并用lipo命令合并了模擬器和真機(jī)的Framework。
然后捌浩,不用合并的Framework而改用單獨(dú)的Framework放刨,結(jié)果,Swift App工程就編譯通過了尸饺。

有一點(diǎn)和oc的framework不同进统,這里需要在target ->General ->Embedded
Binaries 中添加這個framework,添加成功后會自動在Linked Framework and Libraries中自動添加這個framework,如果只在Linked Framework and Libraries中添加這個framework會導(dǎo)致庫無法載入(OC創(chuàng)建的framework應(yīng)該是正常的),項目無法運(yùn)行

http://www.reibang.com/p/13ee670f21ac

http://www.cnblogs.com/xinluqi/p/5941288.html

https://www.gitbook.com/book/leon_lizi/-framework-/details 不支持動態(tài)庫

http://www.cnblogs.com/rayshen/p/5330512.html Swift開發(fā)動態(tài)庫遇到問題

好吧 只能開發(fā)靜態(tài)庫了 決定回去寫OC
1.點(diǎn)擊工程 -> BuildSetting -> 搜索mach -> 改成Static Library

1.1在 build Phases - Headers 設(shè)置公開的.h文件
1.2 other link 使用 -all_load

1.3
編譯前檢查一下是debug模式還是release模式浪听,選擇release模式:
Release-iphoneos 文件夾里面的東西是用在真機(jī)上的
Release-iphonesimulator 文件夾里面的東西是用在模擬器上的
如果 Scheme 是 Debug 模式螟碎,生成的文件夾就以 Debug 開頭

2.合并庫
lipo -create /Users/Travis/Desktop/libIMIUI.d.a /Users/Travis/Desktop/libIMIUI.s.a

-output

3.使用
genneral
Embedded Binaries
Linked 引入

4.#import <test3/MathTools.h> 會有警告
將動態(tài)庫倒入項目并應(yīng)用的時候,后時候回提示missing submodule xxx警告迹栓,到網(wǎng)上查了些資料抚芦,說是要在制作工程時

原因是: header的頭文件沒有全部導(dǎo)入到公共頭文件里面
http://blog.csdn.net/id314846818/article/details/50752379

5.切記內(nèi)部controller命名 一定要用自己的 避免重復(fù)!!

發(fā)現(xiàn)還挺簡單的
調(diào)研結(jié)束
暫時不解釋了

加入 libc++.tbd
libz.tbd
systemConfiguration.framework
PassKit.framework
CFNetwork.framework

//本地plist中加入
//LSApplicationQueriesSchemes
//uppaywallet uppaysdk

other link 加入 -ObjC

終于到了這一步:
來吧合并sdk

Bulid之后,在工程目錄下Produces文件夾下可以看到生成的.a文件引用迈螟,右鍵叉抡,show in finder可以看到.a文件。
要注意Build時的選項:
<1>iOS Device編譯出來的是在Debug-iphoneos目錄下答毫,真機(jī)使用褥民,終端,在該目錄下使用lipo -info **.a 可以查看你到文件類型為armv7等ARM架構(gòu)洗搂。
<2>Simulator時編譯出來的是在Debug-iphonesimulator目錄下消返,模擬器使用,終端查看類型顯示為i386架構(gòu)耘拇。
可以使用lipo命令生成一個通用二進(jìn)制lib.a lipo -create /.a /.a -output /.a 生成一個兼容兩種類型的.a文件撵颊。方法雖好,但是包大小會增加惫叛。

1.打包分清楚是debug與Release的倡勇。
選擇debug與Release在Xcode工具欄的Product選項現(xiàn)則Scheme->Edit Scheme.然后為各個運(yùn)行模式選擇選項。

Debug-iphoneos:應(yīng)用于真機(jī)的靜態(tài)庫文件嘉涌。Debug-iphonesimulator:應(yīng)用于模擬器調(diào)試的靜態(tài)庫文件妻熊。

Release-iphoneos 或Debug-iphoneos :里面的是基于arm6 arm7編譯出來的庫文件。
Release-iphonesimulator:里面是基于i386編譯出來的文件仑最。

Debug版本與release版本區(qū)別在于調(diào)試版本與發(fā)布版本扔役,深度區(qū)別在于其動態(tài)庫的使用。其都是有相應(yīng)的模擬器與真機(jī)模式的靜態(tài)庫文件警医。

最近工作的項目在測試時以debug版本測試沒這問題亿胸,結(jié)果上線發(fā)布時用的release版坯钦,從市場下載下來就出現(xiàn)了一個嚴(yán)重問題,最后開發(fā)查找原因說是debug模式部分地方?jīng)]有像release版那樣完全釋放內(nèi)存侈玄,我理解的意思是release釋放了婉刀,debug表面釋放但是實際并沒有釋放,所以造成我們release版出現(xiàn)問題而debug沒有該問題拗馒。
以下是從網(wǎng)上摘取的Debug和Release的區(qū)別:
Debug和Release僅僅是編譯選項的不同路星,那么為什么要區(qū)分Debug和Release版本呢溯街?
Debug和Release诱桂,主要是針對其面向的目標(biāo)不同的而進(jìn)行區(qū)分的。
Debug通常稱為調(diào)試版本呈昔,通過一系列編譯選項的配合挥等,編譯的結(jié)果通常包含調(diào)試信息,而且不做任何優(yōu)化堤尾,以為開發(fā)人員提供強(qiáng)大的應(yīng)用程序調(diào)試能力肝劲。
而Release通常稱為發(fā)布版本,是為用戶使用的郭宝,一般客戶不允許在發(fā)布版本上進(jìn)行調(diào)試辞槐。所以不保存調(diào)試信息,同時粘室,它往往進(jìn)行了各種優(yōu)化榄檬,以期達(dá)到代碼最小和速度最優(yōu)。為用戶的使用提供便利衔统。
下面僅就默認(rèn)的Debug和Release版本的選項進(jìn)行比較鹿榜,詳細(xì)的編譯選項可以看MSDN的說明。
我們將默認(rèn)的Debug和Release的選項設(shè)置進(jìn)行比較锦爵,過濾掉相同設(shè)置舱殿,主要的不同如下:

問題:
1..如果用銀聯(lián)插件支付 無法回調(diào) 進(jìn)入webView如何讓用戶操作?

UPPayWinner://uppayresult?code=success&data=%7B++%22sign%22+%3A+%22kiHRqGdROa8cH4hfDCSmZdN4mLHjcfwjrGgWx3WwlMqnIOQRMrK6G8jSQ7HyGHpv4gmKzBZPhsU6kN3AOHWfnlXd%2BHKFJOq%2BR%2FZd2UhfOrBUO7YOtk8WlupPBPd3hJWoqWOUxialob1RlOy%2Blk1O2S09hig%2Fv1BF7qDNZ6C2mHWiNuQPTP2zBvf5eum%2BsVHdymJiy8zaFPoxOp%2Fm5VW7ukIydvymP7dSsqTcIkXOi91FWJHcqJh72w9ctHoZMnVzGpezTmjH5VRIC0172cCVI9yX1yJ6uqmOp8AhX%2FgVA6%2F9swMfXCluqfxZJ%2FnH6aCgw8cwukZMNzfGh1OwikgqOw%3D%3D%22%2C++%22data%22+%3A+%22pay_result%3Dsuccess%26tn%3D436582143246243806207%26cert_id%3D69597475696%22%7D

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市险掀,隨后出現(xiàn)的幾起案子沪袭,更是在濱河造成了極大的恐慌,老刑警劉巖樟氢,帶你破解...
    沈念sama閱讀 222,252評論 6 516
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件枝恋,死亡現(xiàn)場離奇詭異,居然都是意外死亡嗡害,警方通過查閱死者的電腦和手機(jī)焚碌,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,886評論 3 399
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來霸妹,“玉大人十电,你說我怎么就攤上這事。” “怎么了鹃骂?”我有些...
    開封第一講書人閱讀 168,814評論 0 361
  • 文/不壞的土叔 我叫張陵台盯,是天一觀的道長。 經(jīng)常有香客問我畏线,道長静盅,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 59,869評論 1 299
  • 正文 為了忘掉前任寝殴,我火速辦了婚禮蒿叠,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘蚣常。我一直安慰自己市咽,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,888評論 6 398
  • 文/花漫 我一把揭開白布抵蚊。 她就那樣靜靜地躺著施绎,像睡著了一般。 火紅的嫁衣襯著肌膚如雪贞绳。 梳的紋絲不亂的頭發(fā)上谷醉,一...
    開封第一講書人閱讀 52,475評論 1 312
  • 那天,我揣著相機(jī)與錄音冈闭,去河邊找鬼俱尼。 笑死,一個胖子當(dāng)著我的面吹牛拒秘,可吹牛的內(nèi)容都是我干的号显。 我是一名探鬼主播,決...
    沈念sama閱讀 41,010評論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼躺酒,長吁一口氣:“原來是場噩夢啊……” “哼押蚤!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起羹应,我...
    開封第一講書人閱讀 39,924評論 0 277
  • 序言:老撾萬榮一對情侶失蹤揽碘,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后园匹,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體雳刺,經(jīng)...
    沈念sama閱讀 46,469評論 1 319
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,552評論 3 342
  • 正文 我和宋清朗相戀三年裸违,在試婚紗的時候發(fā)現(xiàn)自己被綠了掖桦。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,680評論 1 353
  • 序言:一個原本活蹦亂跳的男人離奇死亡供汛,死狀恐怖枪汪,靈堂內(nèi)的尸體忽然破棺而出涌穆,到底是詐尸還是另有隱情,我是刑警寧澤雀久,帶...
    沈念sama閱讀 36,362評論 5 351
  • 正文 年R本政府宣布宿稀,位于F島的核電站,受9級特大地震影響赖捌,放射性物質(zhì)發(fā)生泄漏祝沸。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,037評論 3 335
  • 文/蒙蒙 一越庇、第九天 我趴在偏房一處隱蔽的房頂上張望罩锐。 院中可真熱鬧,春花似錦悦荒、人聲如沸唯欣。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,519評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至蟀拷,卻和暖如春碰纬,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背问芬。 一陣腳步聲響...
    開封第一講書人閱讀 33,621評論 1 274
  • 我被黑心中介騙來泰國打工悦析, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人此衅。 一個月前我還...
    沈念sama閱讀 49,099評論 3 378
  • 正文 我出身青樓强戴,卻偏偏與公主長得像,于是被迫代替她去往敵國和親挡鞍。 傳聞我的和親對象是個殘疾皇子骑歹,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,691評論 2 361

推薦閱讀更多精彩內(nèi)容

  • (原文:How to Create a Framework for iOS 作者:Sam Davies 譯者:Mr...
    王憲嶺閱讀 4,951評論 3 23
  • 本文目標(biāo):掌握封裝及開發(fā)SDK的全部技巧 文章比較長,建議分模塊閱讀 內(nèi)容提要:不同場景下如何封裝及開發(fā)SDK ....
    Yochi閱讀 17,853評論 12 88
  • 靜態(tài)庫與動態(tài)庫的區(qū)別 首先來看什么是庫,庫(Library)說白了就是一段編譯好的二進(jìn)制代碼翘县,加上頭文件就可以供別...
    吃瓜群眾呀閱讀 11,971評論 3 42
  • 任憑風(fēng)信卜芳辰锈麸,浪計韶光幾度春镀脂。 聚會氤氳花釀雨,離愁和夢月依人忘伞。 穎濱曾見荷錢曉薄翅,岸畔才逢柳色新钞馁。 未了生涯真意...
    詩夢齋主閱讀 414評論 0 0
  • 勇氣,不只是存在于戰(zhàn)場上殺敵匿刮。生活中僧凰,任何一次轉(zhuǎn)折點(diǎn)的選擇都是對勇氣的考驗,看不到未來的隱患是智力不足熟丸,而看到了训措,...
    兀升山閱讀 252評論 0 2