簡體   English   中英

iPhone:在應用程序中使用靜態庫會使設備崩潰,但不會使iphone模擬器崩潰

[英]iPhone: Using static library in an application crashes the device but not the iphone simulator

我有一個我制作的庫,現在我想在應用程序中使用它。 我相信我已正確鏈接到庫。 這是我所做的所有事情:

  • 設置標題搜索路徑
  • 將其他鏈接器標志設置為“ -ObjC”
  • 添加了靜態庫xcode項目
  • 確保將lib.a列為框架目標
  • 將庫添加為直接依賴項

就像我在標題中說的那樣,我已經使用模擬器中的靜態庫成功運行了該應用程序。 一旦我嘗試使用設備測試應用程序,它就會崩潰,這必須使用庫中的函數:

*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '*** +[NSDate firstOfCurrentMonth]: unrecognized selector sent to class 0x3841bb44'
2009-10-10 12:45:31.159 Basement[2372:207] Stack:

這是由於當前SDK鏈接程序中的錯誤所致。 有關問題和可能的解決方法的更多信息,請參見此文章。 (另請參閱這篇文章 。)

更新:

您可以嘗試的另一件事是刪除靜態庫,並將該庫的源文件直接包含在應用程序的項目中。 我遇到了一個類似的靜態庫鏈接問題,這就是我最終依靠它來使其成功運行的原因。 如果這行得通(盡管總有解決方法的話),那絕對是一個鏈接器問題。

我最近遇到了這個問題。 當我發現另一個類別的DID工作正常時,我無法使-all_load正常工作。 我對於這個類別很懶,並把它包含在另一個文件中。

我最終創建了一個啞類(沒有方法,實例變量),並將該類的實現包含在該啞類的.m文件中。 完成此操作后,即使刪除了-all_load標志,我的類別也開始工作。

這是在iPhone OS 3.1.3上。

當然,這不是解決問題的正確方法,但似乎可行。

我的(重要)類別的完整示例代碼在我的博客上

暫無
暫無

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

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