上一章《SDK開發(fā)》忽略了一個問題排苍,sorry!!!?
? ? ? ? 這是個開發(fā)SDK開發(fā)問題攒磨。如果直接創(chuàng)建framework工程開發(fā)危队,編譯運行的時候是看不到直觀效果的,就是說你開發(fā)了什么界面或者什么功能在framework工程內(nèi)看不到的昧狮,因為framework包要導入到其他工程跑起來才能看到效果寒波。但是開發(fā)過程總要看效果吧械念,所以SDK應該是在一般工程的基礎(chǔ)上創(chuàng)建framework工程進行開發(fā)兔跌,開發(fā)過程運行就能看到效果了。 ?但是帝嗡,兩個工程在一起的話新建類或者導入類文件時就會不知道選哪個工程或者選錯工程導致打包時丟失文件晶通。?
我的做法就是:分開建立兩個工程,一個是開發(fā)功能的demo(能看到效果)哟玷,另一個就是framework工程狮辽。開發(fā)完就把demo內(nèi)的類文件拖到framework工程,framework工程只做編譯打包巢寡,demo還可以模擬外部工程使用framework的類進行開發(fā)喉脖。這樣做的缺陷就是當你問完文件打包好了,沒問題還好抑月,有問題需要修改或者有新需求树叽,就要重新拖文件而且不止一次~
上一章最好留了兩個問題,這章就先解決一個谦絮,也是簡單問題题诵。
? ? ? ? 由于蘋果的一個限制,SDK不能加載包內(nèi)的圖片或者音頻資源层皱。于是我們平時使用的第三方框架的frameWork的時候無論是cocoapod還是直接拖文件類性锭,只要改框架內(nèi)部使用到圖片,都會帶有一個bundle的資源包奶甘。這個bundle包就是存放了SDK需要用到的圖片篷店、音頻祭椰、文件甚至視頻臭家。
? ? ? ? 而且疲陕,這種資源跟代碼分開的方式更直觀、項目維護更容易钉赁。建立bundle包也很簡單蹄殃,我看過一些大神在Xcode里面建bundle包還要搞一下什么設(shè)置,看到就頭暈還容易忘你踩。
創(chuàng)建
我建bundle包很簡單:在電腦桌面-右擊-新建文件夾诅岩,文件夾的名字最好是英文跟SDK的名字一樣,名字后面加上 .bundle 的文件夾后綴带膜,寫好之后-回車:
選擇添加之后吩谦,你就看到剛才新建的文件夾變成bundle包了。把bundle包拖入demo工程膝藕,用到什么資源就在工程里面往bundle包內(nèi)扔式廷。
使用
使用bundle包資源也很簡單:
setImage:[UIImage imageNamed:@"bundle包名.bundle/資源文件名"];
NSString *path = @"bundle包名.bundle/資源文件名";
AudioServicesCreateSystemSoundID((__bridge CFURLRef)[NSURL fileURLWithPath:[[NSBundle mainBundle] pathForResource:path ofType:@"mp3"]],&sound);
簡單的使用總結(jié)就是:在原本只有資源文件名路徑前面加上bundle包:@"bundle包名.bundle/資源文件名"
就是這么簡單~