iOS 建立Cocoa touch Static Library 靜態庫(二進位庫)和bundle

來源:互聯網
上載者:User

建立bundle

建立bundle項目,將資源檔(xib,圖片,檔案...)拖進去直接編譯即可.

大坑:直接的iPhone項目是不能建bundle項目的,建一次X-code崩一次,開始以為X-code6怎麼這麼弱,後來才腦殘的發現自己是在iPhone項目上見mac的工程.(貌似可以直接在項目中建mac項目,可是要改一大堆配置云云.. 還是建立一個項目的方便)

note:項目中引用bundle的xib要這樣紫.(loginBundle當然是你建立bundle的名字)

- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil

{

    NSString * bundlePath = [[ NSBundle mainBundle] pathForResource: @"loginBundle" ofType :@ "bundle"];

    NSBundle *resourceBundle = [NSBundle bundleWithPath:bundlePath];

   self = [super initWithNibName:@"MXHomeViewController" bundle:resourceBundle];

   if (self) {

    }

    return self;

}

建立靜態庫

建立Cocoa touch Static Library項目,將需要編譯的檔案拖進去(資源檔除外)編譯即可.注意要在真機和模擬器上都編譯一次.真機上產生的.a檔案只能在真機上運行,同樣模擬器上產生的.a檔案只能在模擬器上運行.如果想其又要在模擬器上運行又要在真機上運行,在命令列運行 (當然前提是要進入所在目錄).(啟動並執行時候根據需要選擇debug還是release版本)

     lipo -create Debug-iphoneos/liblogin.a  Debug-iphonesimulator/liblogin.a -output login.a                    指令                     真機                  檔案名稱               模擬器                             檔案名稱             輸出     最終的檔案名稱   

大坑:先在模擬器上編譯出的.a檔案是紅色的,不要以為編譯錯了,其實已經編譯完成,真機上編譯就直接是編譯成功黑色的

神坑:不要再把其他項目的二進位檔案編譯進去

天坑:注意庫的引用.如果靜態庫中包含了Category(分類),要在工程檔案中配置OtherLinker Flags為 -Objc .

very importent : 匯入重新編譯的靜態庫時要刪除build 目錄 ,刪除模擬器上程式.因為靜態庫只會載入一次.



相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.