1. 創(chuàng)建打包工程
-
打開 Xcode 新建一個工程,選擇 Framework & Libray 選項中的 Cocoa Touch Framework 翅萤,這里說一下我的 Xcode 版本是 Version 9.4 (9F1027a) 恐疲。
選擇Cocoa Touch Framework 假設(shè)我的代碼中要用到
AFNetworking
這個第三方庫(比較好演示)套么,然后使用CocoaPods
在工程中集成AFNetworking
培己,集成方法和普通項目一模一樣。我們需要arm64 armv7 armv7s
架構(gòu)的 Profile代碼如下:
# Uncomment the next line to define a global platform for your project
platform :ios, '9.0'
target 'Cake' do
pod 'AFNetworking', '~> 3.2.1'
end
#pod默認(rèn)生成的.a文件時arm64的, Profile在文件尾部追加如下代碼
post_install do |installer|
installer.pods_project.targets.each do |target|
target.build_configurations.each do |config|
config.build_settings['ARCHS'] = "arm64 armv7 armv7s"
end
end
end
-
選擇工程下的 Cake.xcworkspace 重新打開工程 胚泌,修改pod的
Build Setting
->Build Active Architecture Only
Yes 改成 No
修改pod的`Build Setting`->`Build Active Architecture Only` Yes 改成 No -
因為要打包所需的文件省咨,所以這里我自己創(chuàng)建了一個測試類,并在里面使用了
AFNetworking
這個庫玷室,在實際的打包過程中零蓉,直接把需要打包的所有文件拖到該工程中即可。
在實際的打包過程中穷缤,直接把需要打包的所有文件拖到該工程中即可
2. 添加公開頭文件
- 選中 Target 敌蜂,選擇
Build Phases - Headers
,可以看出有三個選項津肛,分別是Public
章喉、Private
、Project
,把需要公開給別人的 .h 文件拖到 Public 中囊陡,把不想公開的芳绩,即為隱藏的 .h 文件拖到Project
中。
把需要公開給別人的 .h 文件拖到 Public 中撞反,把不想公開的妥色,即為隱藏的 .h 文件拖到 `Project` 中
-
完成上述步驟之后,在默認(rèn)生成的 .h 文件中遏片,我的是 Test.h 嘹害,把所有需要暴露的 .h 文件都用 #import "Test.h";引入,記住一定要將所有需要暴露的 .h 文件都引入吮便,也就是上面 Headers - Public 中加的所有 .h 文件笔呀,不然編譯后生成的 .framework 在引用的時候會有警告。
用 #import "Test.h";引入
3. 更改設(shè)置參數(shù)
-
選中 Target 髓需,選擇 Build Settings 许师,在 Architectures 下增加 armv7s armv7 。并修改
Build Setting
->Build Active Architecture Only
Yes 改成 No
在 Architectures 下增加 armv7s armv7 -
選中 Target 僚匆,選擇 Build Settings 微渠,在搜索欄搜索 Mach-O Type ,將 Mach-O Type 修改為 Static Library咧擂。
將 Mach-O Type 修改為 Static Library
4.工程打包成 Framework
-
真機編譯所有文件, 按照下圖將編譯的
Device
選擇為真機 逞盆,然后按下Command + B
開始編譯,編譯成功后右鍵Products
文件夾下的.framework
文件松申,點擊show in Finder
云芦。
真機編譯所有文件 -
打開后可以看到打包完成的真機 Framework 包。
真機 Framework 包 -
模擬器編譯所有文件, 按照下圖將編譯的
Device
選擇為真機 贸桶,然后按下Command + B
開始編譯舅逸,編譯成功后右鍵Products
文件夾下的.framework
文件,點擊show in Finder
刨啸。
模擬器編譯所有文件 -
打開后可以看到打包完成的模擬器 Framework 包堡赔。
模擬器 Framework 包
5. 將兩個 Framework 合成
- 上面有兩個 Framework , 一個是 Debug-iphoneos(真機) 下的设联,一個是 Debug-iphonesimulator(模擬器) 下的善已,需要通過終端命令將兩個 Framework 合為一個模擬器和真機都可使用的 Framework 。
-
打開終端先輸入 lipo -create 离例,然后輸入 空格 换团。
用lipo -create來合并 -
替換掉剛編譯framework下的Cake文件,即 就是我們需要的最終framework文件
image.png