導航:首頁 > 文件目錄 > xcode生成a文件路徑

xcode生成a文件路徑

發布時間:2023-11-22 13:00:55

Ⅰ Xcode6模擬器app和文件在哪兒

Xcode6發布後,出現了很多的變動,功能性的變動,在這里不進行過多的贅述,在WWDC上蘋果已經進行了講述,網上也有很多文章,這里要介紹的是一些不太容易發現的,但很重要的小地方。

1、Xcode6模擬器路徑的變更

在Xcode5和之前的版本中,Xcode的模擬器路徑為:/Users/username/Library/Application Support/iphone
Simulator。在該文件夾下,可以查看到所有的模擬器版本,點進去後,可查看應用沙盒情況。
在開發中,建議將文件拖動快捷路徑到Finder左側個人收藏下,可以方便打開查看應用沙盒。

在Xcode6中,將模擬器的位置進行了變更,地址如下:/Users/username/Library/Developer/CoreSimulator,打開後會發現如下情況:

在這里,蘋果對模擬器進行了編碼處理,並不是以模擬器系統版本進行的命名和分類,而是對Xcode6中所有的模擬器進行的區分,裡面的16個文件夾分別對應的Xcode6中的16種模擬器
,那如何根據這個看似亂碼的文件夾,判斷出是哪一款模擬器呢?

選中某個文件後,打開會看到一個名為data的文件夾,和device.plist的配置文件,打開device.plist的配置文件後,會看到模擬器的UDID、設備類型、系統版本、名稱等。通過這個可以知道模擬器的設備和系統版本。打開後,會發現,前面的看似亂碼的文件名稱,其實就是模擬器的設備UDID,雖然從這里可以得到模擬器的UDID,蘋果也用它來進行分類模擬器,但在實際的編程中,如果想最後發布到APP
Store的話,還是放棄UDID吧,這也是蘋果比較霸道的一點,當然了也是在保護用戶隱私的情況下做出的。

2、應用沙盒地址的變更
得到了模擬器路徑後,還是用很多的不同的,應用的沙盒地址也和之前有所不同。

在Xcode5及之前的版本中,沙盒地址為如下:/Users/username/Library/Application Support/iP hone
Simulator/7.0.3/Applications,在Applications文加下,會找到應用程序的沙盒。

在打開應用沙盒後,會有應用程序文件、Document文件夾、Library文件夾、tmp文件夾。至於這幾個文件夾的作用不在此做贅述。

在Xcode6中,應用程序文件、Document文件夾、Library文件夾、tmp文件夾這四個文件放在了不同的目錄中。應用程序文件路徑:/Users/username/Library/Developer/CoreSimulator/Devices/模擬器UDID/data/Containers/Bundle/,Application文件夾下;Document文件夾、Library文件夾、tmp文件夾路徑:/Users/username/Library/Developer/CoreSimulator/Devices/模擬器UDID/data/Containers/Data/,Application文件下。但是不幸的是,這兩個路徑打開後的文件名,還是經過編碼過的,而且,同一個應用中的應用程序文件和D、L、t文件夾所在的文件夾的文件名是不同的。只能自己找。

3、NSUserDefault 文件存儲位置變更

NSUserDefault是iOS提供的本地化數據存儲方式,會在沙盒中自動創建一個.plist的配置文件,將數據保存起來,在讀取時,以NSDictionary字典來進行接收

在Xcode5及之前的版本中,具體的路徑為:/Users/shifengwei/Library/Application Support/iPhone
Simulator/7.0.3/Applications/C9588981-3D82-49BC-92B8-F5BA72185629/Library,Preferences文件夾下,名稱為程序Bundle
Identifier的plist文件。在刪除模擬器中的程序後,在Library文件夾下的plist文件會相應的刪除。

在Xcode6中,程序對使用NSUserDefault方式創建的plist文件的位置進行了更換,具體路徑為:/Users/username/Library/Developer/CoreSimulator/Devices/模擬器UDID/data/Library,Preferences文件夾下。

這里特別說一下,如果按照在Finder里打開的路勁來看,並不是這樣的,但通過
Finder,前往文件夾,通過該路徑查找是可以查到的。上述的路徑地址是通過查看Preferences文件夾的顯示簡介獲得的。

通過上述的路徑可以看出,通過NSUserDefault創建的plist文件夾還是在Library文件下,但不同的是,真正存放的位置變了,成了在模擬器的資料庫文件夾下,這樣的改變所產生的變化就是,當我們在刪除模擬器中的應用程序後,plist文件還是會保留,並不會刪除。

那麼,既然模擬器中的位置變了,那升級到iOS8後,在這方面有什麼不同呢?下面就說說在在真機中調試的不同。

1、Organizer中,在Xcode5中,是Devices、Projects、Archives三欄,而在Xcode6中,單獨將Devices拿了出來,成了和Organizer平級的,在Xcode菜單欄,Window下。如果了解過Xcode從4.X升級到5時,就會知道,Organizer在那個時候也變更過,從原來的四欄變成了三欄,將幫助文檔移除了。

2、在進行真機調試時,會打開真機中應用程序的沙盒,進行查看,在Xcode中,
打開Devices的Application中,可以下載下來應用程序的沙盒,通過右擊顯示包內容來查看沙盒的信息。但是在iOS8和iOS7及之前出現了不同。

上圖為同一款應用在不同的系統中所表現的,左圖為iOS8下,下載下來的沙盒內容,右圖為iOS7.0.4下,下載下來的沙盒內容,很顯然,在iOS8下,通過Devices下載的沙盒內容無法查看沙盒裡面的內容。

我們通過第三方的軟體,在這里使用的是iFunBox,找到應用程序後,打開發現可以查看到沙盒的內容,復制到本地後,發現,原本的5個文件,只有3個,也就是Document文件夾、Library文件夾、tmp文件夾三個。

這里特別說一下,上述提到過的,在模擬器中,通過NSUserDefault自動創建的plist文件,在刪除軟體後,還會保留,但在真機中,也是會刪除的,相應的plist文件的路徑到了通過導出的Library文件夾下的Preferences文件夾下,刪除應用程序後,不會保留。這應該算是一個真機和模擬器中的不同。

這個不同會造成一種情況,那是否還可以使用NSUserDefault?就筆者目前來看,還不至於廢棄NSUserDefault,畢竟它只是在模擬器中會出現刪除應用保留的情況,在真機中不會,而且NSUserDefault在開發中,作為數據持久化,在保存數據時,還是很好用的。當然了,也有開發者會不適應這種情況,擔心在真機中會出現,如果有開發者認為不適應的話,可以自己創建一個plist文件在沙盒中,代替,但是如果說應用中使用的NSUserDefault比較多的話,不建議這樣,畢竟蘋果封裝的NSUserDefault還是很好用的。可以在模擬器刪除文件後,在保存plist文件的文件夾下,將plist文件刪除即可,多個步驟而已,至少目前來看,在真機中還是和之前一樣的。

當然,在iOS中,除了NSUserDefault會系統自動生成文件進行數據保存外,歸檔也是一樣的,由於筆者沒有進行測試,為了避免誤導,這里就不說了,待測試後,進行總結發布。

PS:最後補充一下,打開或關閉Mac的隱藏文件的命令。
打開Mac隱藏文件命令:defaults
write com.apple.finder AppleShowAllFiles -bool true
關閉Mac隱藏文件命令:defaults
write com.apple.finder AppleShowAllFiles -bool
false
方法:在終端中,輸入該命令,回車,然後在強制退出中,重啟Finder,即可。

Ⅱ ios a文件怎麼導入到工程中

1、將下載下來的sdk中的inc文件夾、mapapi.bundle、libmapapi.a添加到工程中,其中libapi.a有兩個,一個對應模擬器一個對應真機,導入方法如下:
第一種方式:直接將對應平台的.a文件拖拽至XCode工程左側的Groups&Files中,缺點是每次在真機和模擬器編譯時都需要重新添加.a文件;
第二種方式:使用lipo命令將設備和模擬器的.a合並成一個通用的.a文件,將合並後的通用.a文件拖拽至工程中即可,具體命令如下:
lipo –create Release-iphoneos/libmapapi.a Release-iphonesimulator/libmapapi.a –output libmapapi.a
第三種方式:
1.將API的libs文件夾拷貝到您的Application工程跟目錄下
2.在XCode的Project -> Edit Active Target -> Build -> Linking -> Other Linker Flags中添加-ObjC
3.設置靜態庫的鏈接路徑,在XCode的Project -> Edit Active Target -> Build -> Search Path -> Library Search Paths中添加您的靜態庫目錄,比 如"$(SRCROOT)/../libs/Release$(EFFECTIVE_PLATFORM_NAME)",$(SRCROOT)宏代表您的工程文件目錄,$(EFFECTIVE_PLATFORM_NAME)宏代表當前配置是OS還是simulator
我是用第二種方法,在真機和模擬器下都可以調試。
2、因為靜態庫採用Object C++實現,所以在工程中至少要有一個.mm的文件存在(可以把appdelegate.m改為.mm)

3、導入工程所需的框架:CoreLocation.framework,QuartzCore.framework,OpenGLES.framework,SystemConfiguration.framework

4、在AppDelegate中添加BMKMapManager對象,這里要在網路地圖api網站上申請一個應用key
AppDelegate.h文件如下:

[cpp] view plain
#import <UIKit/UIKit.h>
#import "TestViewController.h"
#import "BMapKit.h"

#define BaiMapKey @""

@interface AppDelegate : UIResponder <UIApplicationDelegate> {
BMKMapManager* _mapManager;
}

@property (strong, nonatomic) UIWindow *window;

@end

AppDelegate.m文件如下:

[cpp] view plain
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
_mapManager = [[BMKMapManageralloc] init];
BOOL ret = [_mapManagerstart:BaiMapKey generalDelegate:nil];
if (!ret) {
NSLog(@"BMKMapManager start failed!");
}

self.window = [[UIWindowalloc] initWithFrame:[[UIScreenmainScreen] bounds]];
// Override point for customization after application launch.
self.window.backgroundColor = [UIColorwhiteColor];

TestViewController *root = [[TestViewControlleralloc] init];
self.window.rootViewController = root;

[self.windowmakeKeyAndVisible];
returnYES;
}

到這里,如果工程可以正常編譯,則說明相關設置已經成功了。。下面就可以用網路地圖api了。。。

Ⅲ 如何在XCode中使用gcc編譯生成的.a庫文件

1. 把你的.a文件添加到^projectName下的任意一個組里(例如默認的Classes組)。
2. 找到Target > ^targetName,在這個^targetName下會有Link Binary With Libraries。把你已經在某組里的那個.a文件拖到Link Binary With Libraries這個Build Phase中。(也可能同時也要添加到某個Copy的Build Phase中...)
3. 提供一個可用的頭文件。
4. Build and Go.
封裝的話,標準的Cocoa做法是用Cocoa Framework。也就是在新建工程的時候,選擇Cocoa Framework。

閱讀全文

與xcode生成a文件路徑相關的資料

熱點內容
馬蘭士67cd機版本 瀏覽:542
javaweb爬蟲程序 瀏覽:537
word中千位分隔符 瀏覽:392
迷你編程七天任務的地圖怎麼過 瀏覽:844
word2003格式不對 瀏覽:86
百度雲怎麼編輯文件在哪裡 瀏覽:304
起名app數據哪裡來的 瀏覽:888
微信怎麼去泡妞 瀏覽:52
百度廣告html代碼 瀏覽:244
qq瀏覽器轉換完成後的文件在哪裡 瀏覽:623
jsp中的session 瀏覽:621
壓縮完了文件去哪裡找 瀏覽:380
武裝突襲3浩方聯機版本 瀏覽:674
網路機頂盒移動網路 瀏覽:391
iphone手機百度雲怎麼保存到qq 瀏覽:148
資料庫設計與實踐讀後感 瀏覽:112
js對象是什麼 瀏覽:744
網頁文件存pdf 瀏覽:567
文件夾正裝 瀏覽:279
剛復制的文件找不到怎麼辦 瀏覽:724

友情鏈接