objective-c 和swift 單獨打包,混編打包記錄

前言

因為業(yè)務(wù)需要要將功能模塊打包成framework,有一點比較坑的是代碼是swift 和 oc混編,里面又包含了大量的第三方框架,大家都知道在混編中,需要有橋接文件,那么問題來了混編打包framework 怎么搞,橋接文件怎么辦。
因為時間原因打包的流程就不寫了,網(wǎng)上一搜一大把
[請點擊 swift和oc打包教程]: https://www.cnblogs.com/yajunLi/p/5987687.html

首先說明混編中把橋接文件打包進(jìn)去是不起作用的,swift會找不到oc的類

經(jīng)歷過各種坑后,只能swift語言的打swift的包,oc語言的打oc的包

打包OC的framework

  1. 新建一個工程 OCTest ,選cocoa Touch Framework 語言選擇objective-c
  2. 將所需要的OC的類拖進(jìn)OCTest 中
  3. 在OCTest.h(此文件會自動生成)中 import 需要暴露出來的文件
    #import <OCTest/CPControllerManager.h>
  4. 給第三方引用的時候需要將圖片、xib文件等 以bundle形式 導(dǎo)入第三方工程里否則會報錯: Reason: image not found
    還有就是必須將所有OC代碼里的[UIImage imageNamed:@"xxx"] 改成[UIImage imageNamed:@"OCTest.bundle/xxx"]的形式否則還會報錯
  5. oc的framework給swift的工程引用的時候,直接import OCTest 即可
    6.點擊runommand+B 可以生成OCTest.framework

打包swift的framework

  1. 新建一個工程 SwiftTest ,選cocoa Touch Framework 語言選擇swift
  2. 將所需的swift類導(dǎo)入到SwiftTest中
  3. 如果swift中有用到co的framework 的話需要在SwiftTest.h(此文件自動生成)引用 #import <OCTest/CPControllerManager.h>
  4. 如果在swift類中有使用到OC的framework中的方法還需要在swift文件中 import bundleName 如import OCTest
  5. 配置swift需要暴露的類及方法這里有幾點需要注意

需要暴露的swift類和方法 要加 @objc 和public 修飾
@objc public class TestSSSS: NSObject { @objc public func test(str :String) { print(str) } @public func test22(sss :String) { print(sss) } }

  1. 在OC中引用需要在.h 文件中如下操作才會將方法暴露出來

#import <UIKit/UIKit.h> \n #import <SwiftTest/SwiftTest-Swift.h> @class TestSSSS; @interface ViewController : UIViewController @end

至此framework包打完了,然后就可以將swift包和oc包打在一起,也可以分開集成。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 發(fā)現(xiàn) 關(guān)注 消息 iOS 第三方庫、插件、知名博客總結(jié) 作者大灰狼的小綿羊哥哥關(guān)注 2017.06.26 09:4...
    肇東周閱讀 15,050評論 4 61
  • 混編 混編也無非兩種情況, 在Objective - C工程或者文件使用Swift的文件; 在Swift工程或者文...
    瘋子一樣男人閱讀 897評論 0 1
  • 前言 Swift已推出數(shù)年,與Objective-C相比Swift的語言機(jī)制及使用簡易程度上更接地氣,大大降低了i...
    仁伯閱讀 19,171評論 30 76
  • 經(jīng)過兩三天的心緒不寧,下午一邊寫數(shù)學(xué)一邊下定決心要寫出來。 矛盾的源頭是這首歌詞。 You belong with...
    露染風(fēng)裁閱讀 435評論 4 1
  • 20160913,今晚晚飯后,看他寫作業(yè),我決定出去騎車,跟兒子說:媽媽,不打擾你寫作業(yè),我出去運動了哈,媽媽相信...
    銘瑋閱讀 198評論 0 0

友情鏈接更多精彩內(nèi)容