簡體   English   中英

如何在程序啟動時取消鏈接框架

[英]How to unlink a framework on program start

我正在為iPhone OS 3.1.3開發,我需要使用Dropbox API。

問題是Dropbox API至少需要iOS 4.2。 好。

我決定保存在3.1.3下使用該程序的可能性,但如果它是4.2或更高,則會有Dropbox功能。

要使用Dropbox框架,我需要鏈接另一個框架:

  • Security.framework
  • QuartzCore.framework

我做到了這一點。

當我將Dropbox.framework鏈接到我的項目時,該程序在iPhone模擬器上運行良好,但它無法在我的iPhone 3.1.3上啟動。 輸出中有錯誤:


dyld:未找到符號:_kSecAttrAccessible引用自:/ var / mobile / Applications / C1FC10E5-0A36-4DEB-BD27-5028C205C89D / Bus Time.app/Bus時間預期:/System/Library/Frameworks/Security.framework/Security in / var / mobile / Applications / C1FC10E5-0A36-4DEB-BD27-5028C205C89D / Bus Time.app/Bus Time


所以問題是:

我可以在程序啟動時檢測iOS版本並取消鏈接框架嗎? 或者你能提供另一種使用dropbox for 3.1.3的方法嗎?

謝謝您的回答。 我很感激。

  1. 在文件列表中選擇安全框架。
  2. 展開右側邊欄(“視圖”>“實用程序”>“顯示實用程序”)。
  3. 在“目標會員”下,將“必填”更改為“可選”。

您無法以編程方式在運行時取消鏈接框架。

您可以在運行時以編程方式鏈接框架,例如,通過使用NSBundle API或dlopen,或其他各種方式。 如果這樣做,則必須手動加載所需的ObjC對象和/或C符號。

或者,您可以弱化鏈接框架,這使運行時為您完成大部分工作。 如果它在那里,它將在啟動時加載,並且它的所有ObjC對象和C符號都可用。 否則,它的所有ObjC對象和C符號都將為null。 因此,您需要做的就是檢查null以確定是否運行需要該框架的代碼。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM