當前位置:首頁 » 編程軟體 » ios測試編譯

ios測試編譯

發布時間: 2022-09-02 04:30:29

『壹』 ios中monkey測試腳本怎麼寫

一、利用fontMonkey測試工具包

1、下載FoneMonkey.zip文件並解壓
2、用xcode打開工程目錄
3、添加一個測試用的target並重命名:
4、選取剛才創建的target並將解壓好的FontMonkey倒入工程目錄 也可以直接拖入到文件目錄:倒入時確保你的target為剛才添加的
5、此時在你的框架中會默認添加兩個文件

libFoneMonkey.5.4a.beta.a

libFoneMonkeyOCUnit.5.4a.beta.a
這兩個文件在FoneMonkey的lib文件夾中,如果框架管理中沒有,則可以直接拖過去;

然後再添加幾個框架文件(默認有三個),libxml2.dylib、SenTestingKit.framework、QuartzCore.framework

6、修改工程的配置文件 Buile Seting->Linking->Other Linker Flags

添加選項 -all_load

7、開始編譯程序 選擇測試target以及模擬器(真機器還沒試驗),運行

二在Instrument中編寫腳本進行測試(不能錄制)
1、打開Instruments工具 一般路徑:/Developer/Applications/instrument
2、選擇Automation
3、添加測試腳本(如果有現成的,可以導入)
4、編寫腳本

給出測試幾個按鈕點擊的腳本

var target = UIATarget.localTarget(); //變數用來表示這是一個測試系統
var application = target.frontMostApp(); //確定要測試的程序
var window = application.mainWindow(); //確定要冊書的窗口
window.logElementTree(); //獲取要測試界面的所有元素
var bt=window.buttons()[2];

if(bt.isValid()){
bt.tap();
}
else{
UIAlogger.logMessage("some error show!");
}

5、倒入程序的xx.app 包
6、點擊Record將會直接通過腳本去點擊程序中的一個按鈕

『貳』 ios測試和web端測試的區別

ios測試和web端測試的區別:

一、語言
前端和終端作為面向用戶端的程序,有個共同特點:需要依賴用戶機器的運行環境,所以開發語言基本上是沒有選擇的,不像後台想用什麼就用什麼,iOS只能用object-c,前端只能javascript,當然iOS還可以用RubyMotion,前端還能用GWT/CoffieScript,但不是主流,用的人很少,真正用了也會多出很多麻煩。iOS還可以用蘋果新出的swift語言,後面可能用於取代object-c,還處於起步階段,先不討論。
objc和js這兩者有個有意思的對比:變數/方法命名的風格正好相反。蘋果一直鼓吹用戶體驗,寫代碼也不例外,程序命名都是用英文全稱並且要多詳細有多詳細,力求看變數和方法名就能知道是幹嘛的,例如application:didFinishLaunchingWithOptions:。而js因為每次都要從網路下載,要力求減少代碼體積,所以變數方法名是盡量用縮寫,實際上有代碼壓縮工具,無論變數名寫多長最終上線的效果是一樣的,但大家也都習慣了用短的命名,例如上述objc的application:didFinishLaunchingWithOptions:方法在js里習慣的命名是:$()。
objc與js都是動態語言,使用起來還蠻像,但objc是編譯型,速度快,很多錯誤也能在編譯過程中被發現,js是解釋型,性能依賴於解釋引擎,即使在強勁的v8引擎下性能也趕不上編譯型語言,語言太動態,變數完全沒有類型,寫起來爽,debug起來稍微費點勁。一直感覺js輕巧靈活放盪不羈充滿各種奇技淫巧,objc中規中矩沒c++ java那麼嚴肅也沒有js那麼靈活。

二、線程
前端開發幾乎不需要線程這個概念,瀏覽器實現上頁面HTML和CSS解析渲染可能與js不在同一個線程,但所有js代碼只執行在一條線程上,不會並發執行,也就不需要考慮各種並發編程的問題。在新的JS特性中可以創建worker任務,這樣的任務是可以另起一條線程並行執行的,但由於並不是所有瀏覽器都支持,不同線程傳遞數據各個標準定的還不一樣,使用場景也少,似乎沒有大規模用起來。對於資料庫操作/發送網路請求這樣的任務是在不同於js代碼執行線程的,不過這些都由瀏覽器管理,前端無需關心也無法影響這些線程,只需接收事件回調,不需要處理任何並發問題。
終端開發需要大量使用多線程,iOS有一條主線程,UI渲染都在這個線程,其他耗時長的邏輯或者資料庫IO/網路請求都需要自己另開線程執行,否則會佔用主線程的時間,導致界面無法響應用戶交互事件,或者渲染慢導致滾動卡頓。程序邏輯分布在多個線程里跑,需要處理好各種代碼並發執行可能帶來的數據不一致/時序錯亂之類的問題,並發也導致有些bug難以排查,一不留神就掉坑,需要適當用一些隊列/鎖保證程序的執行順序。iOS提供了一套多線程管理的方法GCD,已經把線程和隊列封裝得非常簡單易用功能強大,比其他端或後台是好很多了,但還是會花大量功夫在處理多線程問題上。

三、存儲
終端開發需要大量的數據存儲邏輯,手機APP不像瀏覽器,用戶打開瀏覽器必定是連著網,但打開一個APP時很可能是離線,也很可能處於網路狀況極差的移動GPRS,所以必須把之前請求回來的數據保存好。保存數據後又需要與服務端最新的數據同步,如果全量同步數據量太大,耗流量速度也慢,於是需要增量同步,需要與服務端一起制定實現增量數據返回的方案,需要處理好客戶端與服務端數據一致性的問題。當數據存儲量大結構復雜時,還需要利用好有限的內存做cache,優化各類存儲查詢性能。
前端在桌面端很少需要存儲,除非是one page app,不存儲自然就不需要數據更新的一系列工作,數據都是從後台取出拼接後直接顯示到頁面上,即使像微博有可以在頁面內不斷載入更多數據,數據也只存在於內存,不會持久化存儲,因為桌面端網速穩定,不計流量,所有數據可以直接從後端拿取,客戶端沒必要再做一套存儲。移動端那些做得很像原生APP的web應用就跟終端開發一樣了,數據同樣保存到SQLite,存儲邏輯以及要處理的問題都差不多。

四、框架
在第三方框架上web前端和iOS開發完全相反,web原生弱小又十分開放,讓大量第三方框架和類庫可以施展拳腳,而iOS原生強大又十分封閉,導致第三方框架沒有多少生存空間。
瀏覽器一開始只為內容型的網頁而設計,js也只是這個網頁上能加點小特效的腳本語言,在web應用時代跟不上發展,需要很多第三方庫和框架輔助,再加上前端開發是完全開放的領域,導致庫和框架百花齊放多如牛毛,在初期多數庫的作用集中在封裝dom操作,大家不斷重復造dom操作基礎庫的輪子,在一段時間百家爭鳴後獨尊jQuery,在有使用庫的網站中90%以上使用jq,幾乎成了個標准基礎庫。後期大家已經不再重復造這個基礎庫的輪子了,多了一些代碼組織和前端架構的框架,例如一些幫助項目模塊化的框架require.js,MVC框架backbone/angular.js等。
iOS開發蘋果已提供了完整的開發框架cocoa,而這框架在每一代系統中都在升級優化和添磚加瓦,開發模式也已經定型,第三方框架沒有多少生存空間,大量流行的開源項目是一些通用組件和庫,像網路請求庫AFNetworking,資料庫操作庫FMDB。而一些大的框架像beeFramework/ReactiveCocoa較難流行起來。

五、兼容
前端開發需要兼容大——量的瀏覽器,桌面的chrome,safari,ie6-ie10,firefox,以及各種套殼獵豹360等瀏覽器,移動端iOS/Android各自的瀏覽器,以及無限的不同的屏幕尺寸。看起來挺可怕,實際上也沒那麼難搞,只是拿出來嚇唬下人。桌面端chrome/safari以及各種套殼的極速模式用的都是webkit,差異很小,firefox也大體遵從標准實現,與webkit差別不大,舊的ie6/7就需要特別照顧,不過很多網站都不支持ie6了,移動端更是一家親,全是webkit,除了新特性上的支持程度不一,其他差異不大。對於不同的屏幕尺寸,高端點的會用響應式布局,針對不同屏幕尺寸自適應到不同布局,一般點的桌面端定死寬度,移動端拉伸自適應寬度就搞定。
終端開發也需要兼容各種不同的系統版本和手機尺寸,Android不用說,iOS也有3.5/4/4.7/5.5/9.7英寸這些尺寸,不過兼容起來跟web一樣挺容易,就是自適應寬度,iOS的UIKit把這些都處理好了,還有autolayout,sizeClass等高級特性可用,在尺寸上並不用花太多功夫。系統版本上iOS7為分水嶺,iOS7前後版本UI上差異比較大,需要做一些功夫兼容,不過iOS用戶更新換代很快,預計再過一兩年iOS7以下用戶就可以忽略了。

六、性能
終端和前端都是面向用戶的,性能優化目的都是盡快呈現內容,以及讓程序在用戶操作下流暢運行。終端主要關注的是存儲/渲染性能。當一個APP存儲數據量大,數據關系復雜時,數據查詢很容易成為性能瓶頸,需要不斷優化數據存取的效率,規劃數據IO線程,設計內存cache,利用好終端設備有限的內存,渲染上避免重復渲染,盡可能復用視圖,尋找最高效的渲染方案。
前端關注頁面載入速度,由於web頁面的結構/樣式/程序/資源圖片都是實時請求的,要讓頁面更快呈現內容,就要優化這些請求,讓這些資源以最快速度載入下來,包括合並圖片/合並代碼減少請求數,壓縮代碼,並行請求,根據版本號緩存代碼請求,gzip壓縮,模塊/圖片懶載入等。此外跟終端一樣也關注渲染性能,遵從一些規則避免頁面reflow,避免使用CSS陰影這樣耗性能的特效,用CSS3動畫代替js等。

七、編譯
終端開發需要編譯的過程,把程序編譯成機器語言,再與各種庫鏈接後生成平台對應的可執行文件,最後由操作系統調度執行。在iOS終端開發中編譯和鏈接的規則蘋果已經在xcode這個開發工具上封裝好,一般開發可以不用關心,但有深層需求時還是需要跟編譯打很多交道,例如用編譯前端Clang自定義靜態代碼檢測規則,寫編譯腳本做自動化編譯和持續集成,打包生成靜態庫,根據鏈接後的可執行文件的組成優化APP體積等。
前端開發的程序則不需要編譯過程,只需要把代碼扔給瀏覽器,瀏覽器邊解析代碼邊執行。雖然js/css代碼寫完無需做任何事情瀏覽器就可以解析執行,但為了上面說的性能優化,前端代碼上線前會對所有代碼和資源文件進行處理,這些處理包括:壓縮合並js/css,合並css sprite圖,處理模塊依賴,處理代碼資源版本號,處理資源定位等。這個過程很像傳統程序的編譯,把給人看的代碼優化處理成給機器看的,並解決一些依賴關系,可以算是前端的編譯過程。像grunt.js/fis這些工具可以幫助完成這個編譯過程,通常前端編譯跟上線部署結合在一起,作為上線系統的一部分。

八、安全
前端和終端的安全性問題上雖然不需要像後端考慮得那麼多,但還是有些需要注意。在請求的安全上,終端和前端都一樣,用戶向後端發送的請求都需要經過層層路由,不知道在哪裡就被截獲篡改或回放了,於是需要做一些措施防禦這些情況,最常見的就是身份驗證,多是採用會過期的token形式代替用戶名密碼,防止被抓包後黑客可以永遠登陸這個賬號。數據安全要求高的會用加密傳輸,或者使用https,另外還需要看情況處理一些DNS劫持,運營商廣告植入等問題。
其他安全問題終端很少考慮,在未越獄的iOS機器上系統已經幫忙保證了整個APP運行環境的安全,而在越獄的機器下惡意程序擁有root許可權可以做任何事情,APP也難以防範。前端方面瀏覽器的特性使前端開發有幾個安全隱患,一是web頁面上任意位置都可以動態插入js代碼,瀏覽器會無區別地執行這些代碼,二是身份驗證信息都統一保存在cookie里,三是頁面上可以隨意通過iframe嵌入其他網站的頁面。造成XSS、CSRF、cookie劫持這些攻擊手段,所以前端寫代碼時都需要考慮還這些安全問題,做好相應的防範,最簡單和重要的防範就是對所有用戶輸入輸出的內容做完整的過濾,避免頁面內被嵌入惡意代碼。

九、交互/開發
最後說下對這兩個領域在交互和開發上的個人感觸。以前在做web前端時,感覺web讓人機交互倒退了十年,交互都是硬邦邦的點擊—啪一下出來結果,滾動是一格格地刷新,很多人當時在鼓吹html5可以做出多麼炫的效果時,實際上FLASH在十年前就可以做出來了,還比最現代的瀏覽器更流暢。iPhone流行後,人機交互終於恢復了應有的水平,體驗上比web流暢太多,指尖交互/流暢的動畫/便捷的滑動手勢/無限制的實現,主流終於恢復或超越了十年前Flash的水平。
但人機交互提升了,開發方式卻大倒退,web的開發方式非常先進,用戶用到的都是最新版本,發現bug可以馬上上線秒修復,特別適用於互聯網環境下的快速迭代,而終端APP不行,撇開iPhone的審核不說,Android也無法做到保證用戶用的是最新的程序,用的都是傳統的客戶端更新的方式,bug的修復版無法及時給到用戶,無法一天上線幾十次,需要維護很多舊版本,開發方式倒退回web時代以前。這都是因為移動網路不穩定以及流量有限造成的,移動端無法像桌面端瀏覽器那樣完全依賴網路,所以在移動網路穩定流量免費之前,開發方式都不會有多大變化。
另外並不看好HTML5,網路上說它可以取代APP說了三四年,到現在也沒什麼戰績,我看不到它的優勢,原生APP可以獲得更多的系統資源,更流暢的人機交互體驗,HTML5在這方面永遠比不上,而它在移動端網路和流量的限制下也無法發揮web的開發優勢,所以它不會成為主流,只適合做一些輕量的小東西。

『叄』 如何編譯OpenCV進行IOS7

編譯的Xcode項目失敗,出現以下錯誤: 「缺少必需的架構arm64在文件/用戶/ * / Git/ocr/opencv2。 它運作良好,如果我改變架構(構建設置下)(ARMv7的,armv7s),而不是(ARMv7的,armv7s)。 如何更改opencv的python構建腳本,添加arm64支持opencv2。
1. micahp的回答幾乎是完美的,但錯過了模擬器版本。因此,修改平台/ IOS /到: targets = ["iPhoneOS", "iPhoneOS", "iPhoneOS", "iPhoneSimulator", "iPhoneSimulator"]
archs = ["armv7", "armv7s", "arm64", "i386", "x86_64"]

你需要下載行工具Xcode的5.0.1,然後運行 python opencv/platforms/ios/build_framework.py ios

2. 我修改了以下內容,使之建立,雖然我還沒有得到一個arm64 iOS設備進行測試的 編輯:我也只好跟著 假設「OPENCV」是包含從Github上的opencv源文件夾: 在每個gzlib.c, gzread.c, gzwrite.c位於opencv/3rdparty/zlib/地址: #include <unistd.h>

在頂部後,原有的包括。 另外開opencv/platforms/ios/cmake/Moles/Platform/iOS.cmake並從改線88: set (CMAKE_OSX_ARCHITECTURES "$(ARCHS_STANDARD_32_BIT)" CACHE string "Build architecture for iOS")

到: set (CMAKE_OSX_ARCHITECTURES "$(ARCHS_STANDARD_INCLUDING_64_BIT)" CACHE string "Build architecture for iOS")

在另外改變buildscriptopencv/platforms/ios/build_framework.py在99線和100從: targets = ["iPhoneOS", "iPhoneOS", "iPhoneSimulator"]
archs = ["armv7", "armv7s", "i386"]

到: targets = ["iPhoneOS", "iPhoneOS", "iPhoneOS", "iPhoneSimulator", "iPhoneSimulator"]
archs = ["armv7", "armv7s", "arm64", "i386", "x86_64"]

所得到的庫將包括以下內容: $ xcrun -sdk iphoneos lipo -info opencv2
Architectures in the fat file: opencv2 are: armv7 armv7s i386 x86_64 arm64

雖然我有一個關於剩餘的關注opencv/platforms/ios/cmake/Toolchain-iPhoneOS_Xcode.cmake它定義了一個數據指針的大小為4的行14和17。它應該是8的64位我想,這樣我沒有測試過,如果庫工作arm64我會建議進一步研究在這一點上,如果它不能正常運行。

3. 嘗試等待下個月。將發布新的XCode具有更強大的32/64位支持。

4. 修改「到: def build_framework(srcroot, dstroot):
"main function to do all the work"

targets = ["iPhoneOS", "iPhoneOS", "iPhoneOS", "iPhoneSimulator"]
archs = ["armv7", "armv7s", "arm64", "i386"]
for i in range(len(targets)):
build_opencv(srcroot, os.path.join(dstroot, "build"), targets[i], archs[i])

put_framework_together(srcroot, dstroot)

『肆』 ios 怎麼配置編譯ffmpeg

IOS上編譯ffmpeg需要先下載兩個程序:iFrameExractor和ffmpeg
編譯步驟:
1、在終端下: cd /iFrameExtractor/ffmpeg 建議開始就執行 sudo -s (獲取許可權命令)
2、在終端下輸入 ./configure --prefix=/iFrameExtractor/ffmpeg --libdir=iFrameExtractor/ffmpeg/lib --enable-gpl --enable-static --disable-shared --enable-swscale --enable-zlib --enable-bzlib --disable-ffmpeg --disable-ffplay --disable-ffserver --enable-pthreads
3、執行make 這里會有一堆的編譯情況。
註:最好先升級Command Line Tools,避免編譯錯誤

4、執行make install。 (執行完後 到iFrameExtractor/ffmpeg/lib文件上去看看)
出現 libavcodec libavdevice libavformat libavutil libswscale5個.a文件
5、用xcode 打開iFrameExractor工程,確認Header Search Paths里有:"$(SRCROOT)/ffmpeg"路徑。 $(SRCROOT)表示工程路徑。同時可以看到iFrameExractor工程下ffmpeg文件下的.a文件都不是紅色的了。

6、真機上編譯(模擬器上i386,真機上是arm的,真機還分arm6 和arm7 )
以下是針對arm7的

/configure --disable-doc --disable-ffmpeg --disable-ffplay --disable-ffserver --enable-cross-compile --arch=arm --target-os=darwin --cc=/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/gcc --as='gas-preprocessor/gas-preprocessor.pl /Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/gcc' -- sysroot=/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS5.0.sdk --cpu=cortex-a8 --extra-cflags='-arch armv7' --extra-ldflags='-arch armv7 -isysroot /Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS5.0.sdk' --enable-pic
7、執行 make 和make install 就有上面的幾個.a文件,至此編譯結束。

『伍』 ios打包測試我需要怎麼選擇打包要修改debug的狀態嗎

iPhone如何打包成一個通用的靜態庫文件(模擬器和真機都可以用)看

1.先來一個必須的命令:
~/Library目錄在lion下是默認隱藏的。這樣很不方便。用一下命令可以使其顯示:
chflags nohidden ~/Library
如果想再讓其隱藏,可以:
chflags hidden ~/Library

2.靜態庫工程的建立:Xcode New一個新的project,選擇IOS下面的Framework&Library,下面有一個Cocoa Touch Static Library。直接next去建立一個MtimeLibrary這樣的工程。(裡面的功能就不要關注了,簡單 2個數相加)


3.工程建立以後,刪除默認的.h .m 文件,然後自己創建CountNumbers..h CountNumbers..m文件。如下圖:

4.OK,選擇iPhone 5.1Simulator ,Command + B 編譯,我們可以在Procts下面找到我們編譯生成一個模擬器上可運行的libMtimeLibrary.a這個文件,然後選擇真機(如下圖)再編譯一次,這樣會生成一個可以真機運行的libMtimeLibrary.a庫。



5. 在libMtimeLibrary.a 右鍵 Open in Finder,可以找到libMtimeLibrary.a所在路徑、後面我們會新建一個項目來添加這個.a文件測試。

打開終端:輸入以下命令(路徑根據自己的來決定)
cd /Users/cash/Library/Developer/Xcode/DerivedData/MtimeLibrary-amyqbnwwzcivnyeijggzaorseihj/Build/Procts/

這樣就到了Procts目錄下了,ls 以後可以看到:


再輸入一個命令: cd Debug-iphonesimulator/

然後通過下面命令來查看libMtimeLibrary.a信息
命令:lipo -info libMtimeLibrary.a
顯示:
cashmatoMacBook-Pro:Debug-iphonesimulator cash$ lipo -info libMtimeLibrary.a
input file libMtimeLibrary.a is not a fat file
Non-fat file: libMtimeLibrary.a is architecture: i386
i386是mac上的架構。

然後再輸入下面命令:
cd ../

cd Debug-iphoneos/

繼續通過命令來查看 lipo -info libMtimeLibrary.a,
顯示:
cashmatoMacBook-Pro:Debug-iphoneos cash$ lipo -info libMtimeLibrary.a
input file libMtimeLibrary.a is not a fat file
Non-fat file: libMtimeLibrary.a is architecture: armv7
armv7是iOS上的jia'ge架構。

到這里我們也明白了,為什麼一個在真機上可以使用,一個只能在模擬器上使用了吧!

最後我們要做的就是要讓這個libMtimeLibrary.a文件同時有i386和armv7信息,這樣就是一個通用的靜態庫文件了。

6. 新建一個MtimeLibraryDemo應用,然後把真機或者模擬器的libMtimeLibrary.a 和CountNumbers.h文件引入進來,如圖:


添加CountNumbers.h文件到需要調用的類裡面,然後就可以調用libMtimeLibrary.a裡面的方法了。

//
// AppDelegate.m
// MtimeLibraryDemo
//
// Created by cash on 12-3-23.
// Copyright (c) 2012年 __MyCompanyName__. All rights reserved.
//

#import "AppDelegate.h"
#import "CountNumbers.h"
@implementation AppDelegate

@synthesize window = _window;

- (void)dealloc
{
[_window release];
[super dealloc];
}

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
self.window = [[[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]] autorelease];
// Override point for customization after application launch.

CountNumbers *cn = [[CountNumbers alloc] init];
int count = [cn addTwoNumbers:10 :20];
NSLog(@"count:%d",count);

self.window.backgroundColor = [UIColor whiteColor];
[self.window makeKeyAndVisible];
return YES;
}

7. OK,編譯運行這個應用程序。 錯誤了。。這個就是這篇文檔的關鍵了.



我們找到剛才生成真機和模擬器的libMtimeLibrary.a目錄。
debug-iphoneos裡面的是基於arm6 arm7編譯出來的庫文件。debug-iphonesimulator文件夾下面的是基於i386編譯出來的文件。



10. 最後是關鍵步驟:

通過lipo -create 命令來合並2個靜態庫文件。(-output 後面的/Users/cash/Desktop/test/libMtimeLibrary.a 是合並後的路徑和文件名字)

lipo -create "/Users/cash/Library/Developer/Xcode/DerivedData/MtimeLibrary-amyqbnwwzcivnyeijggzaorseihj/Build/Procts/Debug-iphonesimulator/libMtimeLibrary.a" "/Users/cash/Library/Developer/Xcode/DerivedData/MtimeLibrary-amyqbnwwzcivnyeijggzaorseihj/Build/Procts/Debug-iphoneos/libMtimeLibrary.a" -output "/Users/cash/Desktop/test/libMtimeLibrary.a"
成功!

最後通過命令 lipo -info libMtimeLibrary.a 可以知道這個文件已經有i386和armv7信息了。
cashmatoMacBook-Pro:test cash$ lipo -info libMtimeLibrary.a
Architectures in the fat file: libMtimeLibrary.a are: i386 armv7
cashmatoMacBook-Pro:test cash$

『陸』 appium ios 02怎麼編譯

因為是Python版,所以就去Selenium官網下載Python的WebDriver(selenium-2.39.0.tar.gz)
https://pypi.python.org/pypi/selenium
解壓:
#gzip -dc selenium-2.39.0.tar.gz | tar xvf -
安裝:
#cd selenium-2.39.0
#sudo python setup.py install //sudo依舊是解決Permission的問題
-----------
這樣,WebDriver就安裝成功了

我照著操作了一遍,版本不同了而已,很順利:

selenium-2.41.0.tar.gz
Installed /Library/Python/2.7/site-packages/selenium-2.41.0-py2.7.egg
Processing dependencies for selenium==2.41.0
Finished processing dependencies for selenium==2.41.0
admins-Mac:selenium-2.41.0 admin$ which python
/usr/bin/python
admins-Mac:selenium-2.41.0 admin$ python -V
Python 2.7.2

編譯例子:

三,要測試的app
測試的是appium提供的TestApp
首先,我們需要用xcode編譯這個app
#cd appium
#cd sample-code/apps/TestApp
#xcodebuild -sdk iphonesimulator //為了防止iphonesimulator和設置的沖突,沒有註明iphonesimulator的版本
-----------
如果看到** BUILD SUCCEEDED **,這個TestApp就build成功了。

操作的時候,留心先進入到項目目錄下:

admins-Mac:testDemo admin$ cd test
admins-Mac:test admin$ ls -l
total 0
drwxr-xr-x 14 admin staff 476 Apr 22 2013 test
drwxr-xr-x@ 5 admin staff 170 Apr 22 2013 test.xcodeproj
admins-Mac:test admin$ xcodebuild -sdk iphonesimulator
Build settings from command line:
SDKROOT = iphonesimulator7.0
=== BUILD TARGET test OF PROJECT test WITH THE DEFAULT CONFIGURATION (Release) ===
…..

我後來運行的時候老是不能指定某個模擬器載入,而老是載入ios7.0,估計就是這個環節的相關配置引起的,以後有空再研究吧。不過也有群友說文檔上說會自動啟動最高版本的模擬器,這是不可以修改的。算了,反正以後多半使用真機做。
看到:** BUILD SUCCEEDED ** 就是編譯成功了,在當前目錄下就會生成一個build目錄,順帶找找app文件在哪裡。

admins-Mac:test admin$ pwd
/Users/admin/Documents/demo/testDemo/test
admins-Mac:test admin$ ls -l
total 0
drwxr-xr-x@ 4 admin staff 136 Apr 15 16:02 build
drwxr-xr-x 14 admin staff 476 Apr 22 2013 test
drwxr-xr-x@ 5 admin staff 170 Apr 22 2013 test.xcodeproj
admins-Mac:test admin$ find build|grep test.app$
build/Release-iphonesimulator/test.app

『柒』 如何提高ios 靜態庫的編譯速度

iPhone何打包通用靜態庫文件(模擬器真機都用)

1.先必須命令:
~/Library目錄lion默認隱藏便用命令使其顯示:
chflags nohidden ~/Library
想再讓其隱藏:
chflags hidden ~/Library

2.靜態庫工程建立:Xcode New新project選擇IOS面Framework&Library面Cocoa Touch Static Library直接next建立MtimeLibrary工程(面功能要關注簡單 2數相加)
?

3.工程建立刪除默認.h .m 文件自創建CountNumbers..h CountNumbers..m文件圖:

4.OK選擇iPhone 5.1Simulator ,Command + B 編譯我Procts面找我編譯模擬器運行libMtimeLibrary.a文件,選擇真機(圖)再編譯真機運行libMtimeLibrary.a庫

?

5. libMtimeLibrary.a 右鍵 Open in Finder找libMtimeLibrary.a所路徑、面我新建項目添加.a文件測試

打終端:輸入命令(路徑根據自決定)
cd /Users/cash/Library/Developer/Xcode/DerivedData/MtimeLibrary-amyqbnwwzcivnyeijggzaorseihj/Build/Procts/

Procts目錄ls 看:
?

再輸入命令: cd Debug-iphonesimulator/

通面命令查看libMtimeLibrary.a信息
命令:lipo -info libMtimeLibrary.a
顯示:
cashmatoMacBook-Pro:Debug-iphonesimulator cash$ lipo -info libMtimeLibrary.a
input file libMtimeLibrary.a is not a fat file
Non-fat file: libMtimeLibrary.a is architecture: i386
i386mac架構

再輸入面命令:
cd ../

cd Debug-iphoneos/

繼續通命令查看 lipo -info libMtimeLibrary.a
顯示:
cashmatoMacBook-Pro:Debug-iphoneos cash$ lipo -info libMtimeLibrary.a
input file libMtimeLibrary.a is not a fat file
Non-fat file: libMtimeLibrary.a is architecture: armv7
armv7iOSjia'ge架構

我明白真機使用能模擬器使用吧

我要做要讓libMtimeLibrary.a文件同i386armv7信息通用靜態庫文件

6. 新建MtimeLibraryDemo應用真機或者模擬器libMtimeLibrary.a CountNumbers.h文件引入進圖:
?

添加CountNumbers.h文件需要調用類面調用libMtimeLibrary.a面

//
// AppDelegate.m
// MtimeLibraryDemo
//
// Created by cash on 12-3-23.
// Copyright (c) 2012 __MyCompanyName__. All rights reserved.
//

#import "AppDelegate.h"
#import "CountNumbers.h"
@implementation AppDelegate

@synthesize window = _window;

- (void)dealloc
{
[_window release];
[super dealloc];
}

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
self.window = [[[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]] autorelease];
// Override point for customization after application launch.

CountNumbers *cn = [[CountNumbers alloc] init];
int count = [cn addTwoNumbers:10 :20];
NSLog(@"count:%d",count);

self.window.backgroundColor = [UIColor whiteColor];
[self.window makeKeyAndVisible];
return YES;
}

7. OK編譯運行應用程序 錯誤篇文檔關鍵.

?

我找剛才真機模擬器libMtimeLibrary.a目錄
debug-iphoneos面基於arm6 arm7編譯庫文件debug-iphonesimulator文件夾面基於i386編譯文件

?

10. 關鍵步驟:

通lipo -create 命令合並2靜態庫文件(-output 面/Users/cash/Desktop/test/libMtimeLibrary.a 合並路徑文件名字)

lipo -create "/Users/cash/Library/Developer/Xcode/DerivedData/MtimeLibrary-amyqbnwwzcivnyeijggzaorseihj/Build/Procts/Debug-iphonesimulator/libMtimeLibrary.a" "/Users/cash/Library/Developer/Xcode/DerivedData/MtimeLibrary-amyqbnwwzcivnyeijggzaorseihj/Build/Procts/Debug-iphoneos/libMtimeLibrary.a" -output "/Users/cash/Desktop/test/libMtimeLibrary.a"


通命令 lipo -info libMtimeLibrary.a 知道文件已經i386armv7信息
cashmatoMacBook-Pro:test cash$ lipo -info libMtimeLibrary.a
Architectures in the fat file: libMtimeLibrary.a are: i386 armv7
cashmatoMacBook-Pro:test cash$
w

『捌』 ios 真機測試生成的文件夾怎麼什麼地方

1、授權設備:

進入Apple Developer會員中心,點擊圖中的iOS Provisioning Portal,進入開發者授權設置系統:

在設置界面中,可以選擇點擊頁面下方的助手來運行向導:

點擊左側導航的Device,進入授權設備的頁面,點擊右上方的Add Device按鈕可以添加一個設備:

添加設備的時候可以指定設備的名字(隨便寫),以及設備的UDID。每一個Apple的設備都有一個唯一的標識符,獲得這個標識符的方法很簡單,有兩種方式:

(1)將你的設備連接到電腦,然後在iTunes里找到你的設備信息(如下圖),點擊圖中紅色方框的位置,設備UDID就會顯示出來。右擊UDID會提示拷貝,將拷貝的結果復制到框內即可;

(2)打開xcode,window→organizer→devices,在裡面可以看到identifier信息

2、添加App ID:

點擊左側導航的App IDs按鈕可以進入應用程序ID的配置頁面,可以點擊頁面右方的New App ID按鈕添加一個新的應用。這個ID對應的是即將開發和測試的應用程序。如下圖,在description里添加一個單一應用的名稱(不支持特殊字元),然後在最下面的Bundle Seed ID裡面填入一個含有domain格式的字元串(如com.bo.test)。Bundle Seed ID是一個集合了開發商與應用程序的信息,格式為(com.[開發商].[應用]),這里可以指定為單一應用,也可以指定為全部應用。如果是單一應用,建議剛才填寫的description與Bundle Seed ID的最後一項相同(如test和com.bo.test),如果是全部應用,可以使用這樣的Bundle Seed ID: com.bo.

3、添加證書:

(1)首先在mac電腦上生成開發者證書:

在Applications->Utilities裏手動打開Keychain Access。按照下圖操作最終點擊「從證書頒發機構請求證書」


正確填寫自己的郵箱和姓名即可,選擇「存儲到磁碟」,點擊繼續。最終會生成一個名為「CertificateSigningRequest.certSigningRequest」的文件。

這時候返回剛才的iOS Provisioning Portal網頁界面,點擊左側的「Certificate」,點擊頁面右方的Request Certificate申請一個證書,然後點擊頁面下方的按鈕上傳生成的certSigningRequest文件,這樣就完成了證書的申請流程。申請成功後,Certificate頁面里就有了一條證書,刷新幾次頁面後證書的狀態就變成Issued,點擊download按鈕可以下載一個cer文件。

4、使用開發者授權:

(1)回到iOS Provisioning Portal網頁界面,點擊左側的「provisioning」,點擊右側的New Profile按鈕創建一個新的授權文件:

填寫profile Name;在Certificates中選擇剛剛創建好的證書(一勞永逸的一步,之後只需勾選該證書即可,不必再手動添加);APP ID選擇剛剛建的那個;Devices 選擇剛剛添加的設備;Submit(綁定設備到應用程序);刷新頁面,會看到剛剛建的那個後邊有個Download,點擊Download,下載了一個.mobileprovision文件。

(2)打開xcode→window→organizer,將下載的.mobileprovision文件拖到Provisioning中(此步驟綁定設備到應用程序,並生成證書)

(3)項目中的plist 文件,將Bundle Identifier 這一項的內容改成Bundle Seed ID(格式:com.[開發商].[應用])即可

將run按鈕右邊的設備選為對應的真機設備,接下來就編譯運行看看吧!

『玖』 如何使用xcodebuild在命令行編譯iOS工程

、准備工作 1、jenkins環境。搭建jenkins環境可以參考jenkins平台搭建和配置一節。需要注意的是,雖然涉及iOS開發,但是jenkins平台卻不必搭建在mac機器上,只要在jenkins上添加mac節點就可以了。 2、iOS開發環境。iOS開發環境主要是指Xcode開發環境,Xcode是免費的,只要在蘋果應用商店裡下載一個就可以了。當然,還有重要的一點兒---開發者證書,現在個人也已經有免費的證書了,沒有證書的話,只能打模擬器用的包了。 3、git項目。強烈建議把代碼放在git上,這樣便於團隊開發。當然,不放git上也可以。 4、jenkins Xcode持續集成插件。常用的插件Xcode integration,這個插件能夠快速的幫助我們進行Xcode打包配置,當然,只用純shell腳本也是可以的。 在jenkins上打包之前,我們最好手工測試一下可以打包成功,首先用Xcode圖形界面進行測試,然後用命令行測試,如果都能打包成功就可以掛在jenkins上運行了,畢竟jenkins的原理也是通過執行一系列命令來完成的。 三、jenkins配置 1、創建一個任務,創建任務的時候最好選自由風格的軟體項目,這樣配置起來比較方便,如果有需要,也可以選擇其他的風格。 2、描述

『拾』 ios 怎麼選擇podfie進行編譯

iPhone何打包通用靜態庫文件(模擬器真機都用)1.先必須命令:~/Library目錄lion默認隱藏便用命令使其顯示:chflagsnohidden~/Library想再讓其隱藏:chflagshidden~/Library2.靜態庫工程建立:XcodeNew新project選擇IOS面Framework&Library面CocoaTouchStaticLibrary直接next建立MtimeLibrary工程(面功能要關注簡單2數相加)?3.工程建立刪除默認.h.m文件自創建CountNumbers..hCountNumbers..m文件圖:4.OK選擇iPhone5.1Simulator,Command+B編譯我Procts面找我編譯模擬器運行libMtimeLibrary.a文件,選擇真機(圖)再編譯真機運行libMtimeLibrary.a庫?5.libMtimeLibrary.a右鍵OpeninFinder找libMtimeLibrary.a所路徑、面我新建項目添加.a文件測試打終端:輸入命令(路徑根據自決定)cd/Users/cash/Library/Developer/Xcode/DerivedData/MtimeLibrary-amyqbnwwzcivnyeijggzaorseihj/Build/Procts/Procts目錄ls看:?再輸入命令:cdDebug-iphonesimulator/通面命令查看libMtimeLibrary.a信息命令:lipo-infolibMtimeLibrary.a顯示:cashmatoMacBook-Pro:Debug-iphonesimulatorcash$lipo-infolibMtimeLibrary.ainputfilelibMtimeLibrary.aisnotafatfileNon-fatfile:libMtimeLibrary.aisarchitecture:i386i386mac架構再輸入面命令:cd../cdDebug-iphoneos/繼續通命令查看lipo-infolibMtimeLibrary.a顯示:cashmatoMacBook-Pro:Debug-iphoneoscash$lipo-infolibMtimeLibrary.ainputfilelibMtimeLibrary.aisnotafatfileNon-fatfile:libMtimeLibrary.aisarchitecture:armv7armv7iOSjia'ge架構我明白真機使用能模擬器使用吧我要做要讓libMtimeLibrary.a文件同i386armv7信息通用靜態庫文件6.新建MtimeLibraryDemo應用真機或者模擬器libMtimeLibrary.aCountNumbers.h文件引入進圖:?添加CountNumbers.h文件需要調用類面調用libMtimeLibrary.a面////AppDelegate.m//MtimeLibraryDemo////Createdbycashon12-3-23.//Copyright(c)2012__MyCompanyName__.Allrightsreserved.//#import"AppDelegate.h"#import"CountNumbers.h"@implementationAppDelegate@synthesizewindow=_window;-(void)dealloc{[_windowrelease];[superdealloc];}-(BOOL)application:(UIApplication*):(NSDictionary*)launchOptions{self.window=[[[UIWindowalloc]initWithFrame:[[UIScreenmainScreen]bounds]]autorelease];//.CountNumbers*cn=[[CountNumbersalloc]init];intcount=[cnaddTwoNumbers:10:20];NSLog(@"count:%d",count);self.window.backgroundColor=[UIColorwhiteColor];[self.windowmakeKeyAndVisible];returnYES;}7.OK編譯運行應用程序錯誤篇文檔關鍵.?我找剛才真機模擬器libMtimeLibrary.a目錄debug-iphoneos面基於arm6arm7編譯庫文件debug-iphonesimulator文件夾面基於i386編譯文件?10.關鍵步驟:通lipo-create命令合並2靜態庫文件(-output面/Users/cash/Desktop/test/libMtimeLibrary.a合並路徑文件名字)lipo-create"/Users/cash/Library/Developer/Xcode/DerivedData/MtimeLibrary-amyqbnwwzcivnyeijggzaorseihj/Build/Procts/Debug-iphonesimulator/libMtimeLibrary.a""/Users/cash/Library/Developer/Xcode/DerivedData/MtimeLibrary-amyqbnwwzcivnyeijggzaorseihj/Build/Procts/Debug-iphoneos/libMtimeLibrary.a"-output"/Users/cash/Desktop/test/libMtimeLibrary.a"功通命令lipo-infolibMtimeLibrary.a知道文件已經i386armv7信息cashmatoMacBook-Pro:testcash$lipo-infolibMtimeLibrary.aArchitecturesinthefatfile:libMtimeLibrary.aare:i386armv7cashmatoMacBook-Pro:testcash$w

熱點內容
騰訊雲伺服器購買網址 發布:2025-02-11 21:37:46 瀏覽:60
安卓電話視頻怎麼投電視上 發布:2025-02-11 21:32:27 瀏覽:18
易簽到源碼 發布:2025-02-11 21:31:03 瀏覽:498
編程班會 發布:2025-02-11 21:27:19 瀏覽:738
ubuntu編譯fortran 發布:2025-02-11 21:21:59 瀏覽:201
雲伺服器寬頻單位 發布:2025-02-11 20:48:11 瀏覽:538
安卓數據線公頭是哪個 發布:2025-02-11 20:45:42 瀏覽:812
網址原始密碼是什麼 發布:2025-02-11 20:33:52 瀏覽:72
怎麼創建伺服器我的世界網易 發布:2025-02-11 20:18:36 瀏覽:467
伺服器電腦與客戶端的連接 發布:2025-02-11 20:18:32 瀏覽:36