Xcode 工程文件“.xcodeproj”文件夾解析

来源:http://www.cnblogs.com/lurenq/archive/2017/06/16/7026185.html
-Advertisement-
Play Games

項目.xcodeproj 文件夾底下一般有4個文件: project.pbxproj 文件 xcuserdata 文件夾 xcshareddata 文件夾 project.xcworkspace 文件夾 (這裡暫不講解) 下麵主要講解涉及到 .xcschemes 相關文件,其他設置(例如斷點一類的) ...


項目.xcodeproj 文件夾底下一般有4個文件:

  1. project.pbxproj 文件

  2. xcuserdata 文件夾

  3. xcshareddata 文件夾

  4. project.xcworkspace 文件夾 (這裡暫不講解)

 

下麵主要講解涉及到 .xcschemes 相關文件,其他設置(例如斷點一類的)暫不講解

1.project.pbxproj 文件。

Xcode項目文件是一個老式的plist(下一個風格)根據括弧分隔的層次結構。

refer:http://www.monobjc.net/xcode-project-file-format.html

 

解析此文件可以使用命令行工具“plutil”,例如

plutil -convert json -s -r  -o converted.json /Users/shaowei/Project/iphone-com-pub/baseframe/IphoneCom/IphoneCom.xcodeproj/project.pbxproj

plutil -convert xml1 -s -r  -o converted.xml /Users/shaowei/Project/iphone-com-pub/baseframe/IphoneCom/IphoneCom.xcodeproj/project.pbxproj

上面的命令是把指定project.pbxproj文件 轉換到命令的當前目錄下converted.son,詳情請”man plural”來查詢使用方法

註意:儘量帶上“-o 結果文件”,否則的話此命令會修改project.pbxproj文件本身,想相信這不是你想要的。

還有converted.xml 的擴展名改為“converted.plist”,這樣就能使用Xcode的來查看該文件,界面更友好,你懂得。

refer from: http://stackoverflow.com/questions/1452707/library-to-read-write-pbxproj-xcodeproj-files  

 

其他解析方式如下(暫未驗證有消息,只是網上找的):

http://stackoverflow.com/questions/7557273/tutorial-or-guide-for-scripting-xcode-build-phases

https://pypi.python.org/pypi/xUnique

2.xcuserdata 文件夾

此文件夾是項目創建時跟隨創建的,

裡面路徑:mac用戶名.xcuserdatad -> xcschemes -> (***.xcscheme + xcschememanagement.plist)

 

點擊 Xcode的“manage schemes”,出現下圖,

如果選中 “shared”,則會把該目錄下的“mac用戶名.xcuserdatad -> xcschemes -> ***.xcscheme”文件移動到“xcshareddata->xcschemes”文件夾下;

刪除此文件夾的話,“ xcschememanagement.plist”會在啟動該項目時重建的,但是“***.xcscheme”文件是不會重建的,你就會丟失xcscheme文件。

此目錄下會有多個文件夾,這根據不同的用戶來命名的,當使用版本管理器時,而且沒有忽略該文件夾,你就會發現此目錄下就可能會有多個人的目錄。

 

一般來說,此目錄不太建議放到svn裡面,因為這個目錄放的是一些個人設置,還有斷點設置一類的,即使你放到svn裡面,別人也不會載入,因為Xcode只會載入對應用戶名的文件夾。

需要和別人共用的xcschemes,應該放到下麵的“xcshareddata”文件夾,然後使用svn來同步“xcshareddata”文件夾

 

3.xcshareddata 文件夾

項目一開始時,是沒有“xcshareddata”文件夾的。

當上圖的 “shared”覆選框被選中,則會把 “xcuserdata”里相應的xcscheme文件移動到本目錄的xcschemes文件夾下,這時才會創建此文件夾。

 

多人開發時,為了支持共用xcscheme,一般會勾選“shared”,這樣,相應的“***.xcscheme”就會被移動到該目錄下。

所以在多人開發時,應該把此目錄放到svn里去同步,同時註意,被共用的“***.xcscheme”也會影響到隊友,要慎重修改。

 

註意:刪除此目錄後,重新打開項目也不會重建的,刪之要慎重~

如果刪除此目錄,而“xcuserdata”文件夾下也沒有xcscheme文件,那麼你打開項目,就會出現如下圖情況,就是無法編譯了;

如果出現了下麵的情況,那麼你把”xcuserdata”文件夾給刪除掉,重啟項目,Xcode會重新創建xcuserdata文件夾和預設的xcscheme文件。


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 用CSS和jQuery來實現它,儘量看起來和原效果一樣。 最終效果圖 最終效果圖 本教程里,我將使用CSS,HTML和jQuery來創建一個近似Apple TV視差效果,如果你正在閱讀,我假設你對上述三種技術都有基本的瞭解。 廢話不多說,開始第一部分。 HTML頁面 我們的頁面結構像下麵這樣: 首先 ...
  • 1.index.Android.js 2.在項目的 index.android.js同一目錄下 創建json文件 這樣方便圖片的訪問,資源圖片放在項目名稱\android\app\src\main\res\drawable 下麵 這裡的BadgeData.json 如下: 3.主要的文件 scrol ...
  • 我們在瀏覽淘寶京東等大型購物網頁時會經常出現許多圖片而圖片需要花費我們非常多的流量問題。 我們在寫網頁的時候怎麼解決這個問題呢?這時候就要用到我們圖片懶載入的問題,這樣不僅可以 解決流量問題,也提高了性能等等。 下麵我們就來看一下圖片的懶載入怎麼問題。 ...
  • 1.層級選擇器 後代選擇器 "父元素 後代元素" 比如:$("div p") 選取div元素下所有的p元素 子元素選擇器 "父元素 > 子元素" 比如:$("div>p") 選取div的子元素中的p元素 第一個向後兄弟元素 "元素名+兄弟元素" 比如:$("div+p") 選取div元素後的第一個p ...
  • 一.Javascript的含義 是一種解釋性的語言,主要給網頁添加各色各樣的動態功能,同時為用戶提供瀏覽效果。 二.JavaScript的主要特點 三.JavaScript的組成 四.JavaScript的三種引入方式 1.標簽內引入2.內部引入3.外部引入 五.javaScript語法的基本要求 ...
  • nodejs中文網,官網同步翻譯 http://nodejs.cn/api/ Webpack 中文手冊(社區同步翻譯) http://6.course.uprogrammer.cn/webpack2 doc cn/index.html ECMAScript6 中文教程 https://www.w3c ...
  • XMPP詳解 XMPP(eXtensible Messaging and Presence Protocol,可擴展消息處理和現場協議)是一種在兩個地點間傳遞小型結構化數據的協議。在此基礎上,XMPP協議已經被用來構建大規模即時通信系統、游戲平臺、協作空間及語音和視頻會議系統。 XMPP由幾個小的構 ...
  • 一、用戶登錄流程 用戶登錄流程.png 註意:XMPP核心文件,基於TCP的XML流的傳輸,XMPPFrame框架是通過代理的方式實現消息傳遞的 實現用戶登錄的步驟如下: 1、實例化XMPPStream並設置代理,同時添加代理到工作隊列 2、使用JID連接至伺服器,預設埠為5222,JID字元串中 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...