iOS項目引用靜態庫檔案.a

來源:互聯網
上載者:User

標籤:static library

        由於開發的項目中使用了靜態庫檔案(.a檔案),因此專門對它進行了簡單的學習。靜態庫檔案封裝的是經常使用的公用代碼,便於代碼的複用。

1、產生靜態庫檔案(static library file)。主要包括以下幾個主要步驟:

(1)建立靜態庫項目

650) this.width=650;" src="http://s3.51cto.com/wyfs02/M00/72/25/wKiom1Xdd8iTXsMiAAFq3ICkesI772.jpg" title="QQ20150826-1@2x.png" alt="wKiom1Xdd8iTXsMiAAFq3ICkesI772.jpg" />

命名為Stone,並在產生的Stone類裡面添加一個類方法+printInfo,

650) this.width=650;" src="http://s3.51cto.com/wyfs02/M02/72/25/wKiom1XdeX-SvQCiAAIG0e6CVKo709.jpg" style="float:none;" title="QQ20150826-2@2x.png" alt="wKiom1XdeX-SvQCiAAIG0e6CVKo709.jpg" />

650) this.width=650;" src="http://s3.51cto.com/wyfs02/M00/72/21/wKioL1Xde5fiL7VvAAI3UmOn2r4992.jpg" style="float:none;" title="QQ20150826-3@2x.png" alt="wKioL1Xde5fiL7VvAAI3UmOn2r4992.jpg" />

未編譯前,Products檔案夾下的libStone.a是紅色的,編譯之後變為黑色,

650) this.width=650;" src="http://s3.51cto.com/wyfs02/M00/72/22/wKioL1XdfRbw4UOoAAFxmnI2kf0490.jpg" title="QQ20150826-4@2x.png" alt="wKioL1XdfRbw4UOoAAFxmnI2kf0490.jpg" />

注意頂部選擇"iOS device"產生用於真機的靜態庫檔案,選擇任意模擬器則產生用於模擬器的靜態庫檔案,且只要在選擇"iOS device"時libStone.a才由紅色變為黑色。

(2)設定release,如:

650) this.width=650;" src="http://s3.51cto.com/wyfs02/M02/72/22/wKioL1Xdf8fT8GCLAAKSRSQZdTw502.jpg" title="QQ20150826-10@2x.png" alt="wKioL1Xdf8fT8GCLAAKSRSQZdTw502.jpg" />

選擇圖上左側紅圈部分,之後再選擇Edit Scheme,在彈出的對話方塊中選擇release即可。

(3)編譯後,進入檔案夾:

/users/layne/Library/Developer/Xcode/DerivedData

650) this.width=650;" src="http://s3.51cto.com/wyfs02/M02/72/22/wKioL1XdgGeCNdvfAAI8qHrlNEQ571.jpg" title="QQ20150826-11@2x.png" alt="wKioL1XdgGeCNdvfAAI8qHrlNEQ571.jpg" />

找到對應的項目的檔案夾,Stone-efgkvmcmovsnfcelruigvapvtvwl/Build/Products,可以看到產生了2個檔案夾Release-iphone和Release-iphonesimulator,前者裡面的libStone.a用於真機,後者裡面的libStone.a用於模擬器。

650) this.width=650;" src="http://s3.51cto.com/wyfs02/M02/72/22/wKioL1XdgaCyxZUQAABz7qTC4YA613.jpg" title="QQ20150826-12@2x.png" alt="wKioL1XdgaCyxZUQAABz7qTC4YA613.jpg" />


2、為使用libStone.a的項目進行配置。

使用已建立的項目UIMenuController,為了便於示範,已將為真機和為模擬器使用的.a檔案進行了重新命名且複製到了案頭上。如:

650) this.width=650;" src="http://s3.51cto.com/wyfs02/M01/72/22/wKioL1XdgujBwrI4AAEFOfsLHjM527.jpg" title="QQ20150826-14@2x.png" alt="wKioL1XdgujBwrI4AAEFOfsLHjM527.jpg" />

(1)UIMenuController項目的build Phases->Link Binary with Libraries添加libStoneForIphone.a,並將Stone.h添加到項目裡,

650) this.width=650;" src="http://s3.51cto.com/wyfs02/M00/72/22/wKioL1XdhFyBpwGBAAIMUOzbQo8366.jpg" title="QQ20150826-15@2x.png" alt="wKioL1XdhFyBpwGBAAIMUOzbQo8366.jpg" />

(2)使用。

650) this.width=650;" src="http://s3.51cto.com/wyfs02/M00/72/26/wKiom1XdgrbyRhwUAAiOPXCmqys017.jpg" title="QQ20150826-17@2x.png" alt="wKiom1XdgrbyRhwUAAiOPXCmqys017.jpg" />

注意:

(1)添加什麼樣的.a檔案就只能用對應的方式運行。即添加了libStoneForSimulator.a,則只能用模擬器跑;添加了libStoneForIphone.a,則只能用真機跑。否則會出錯。

(2)解決方案有兩種:

①把兩個.a檔案都添加進項目。

②將兩個.a合并為一個.a檔案。

將兩個.a檔案合并為一個的方法如下:

使用命令列即可。終端切換到案頭,然後執行以下命令

lipo -create libStoneForIphone.a libStoneForSimulator.a -output libStoneForAll.a

這樣一來,只要引入libStoneForAll.a檔案即可。


本文出自 “Layne的學習園地” 部落格,請務必保留此出處http://laynestone.blog.51cto.com/9459455/1688537

iOS項目引用靜態庫檔案.a

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.