我使用持續集成工具,該工具使用分發標識和Ad Hoc移動設置構建應用程序。這個應用程序發送到一個網站進行臨時部署,一切正常。將iOS應用程序從分發標識移至開發人員標識
但是現在我想在構建工作流程中添加一個步驟來執行UI自動化測試。 Instruments需要一個以開發人員身份簽名的應用程序,因此,我希望/需要(Q.A.團隊實際需要)使用開發人員證書退出先前創建的.ipa,而不是使用開發人員證書構建新版本的應用程序。我用下面的命令辭職的應用:
unzip "App.ipa"
rm -rf "Payload/App.app/_CodeSignature" "Payload/App.app/CodeResources"
cp "Dev.mobileprovision" "Payload/App.app/embedded.mobileprovision"
/usr/bin/codesign -f -s "iPhone Developer: john doe" --resource-rules "Payload/App.app/ResourceRules.plist" "Payload/App.app"
然後我用fruitstrap安裝「有效載荷/ App.app」(我想只是使用管理它不會改變任何事情安裝),我終於執行儀器是這樣的:
instruments -w 5f9...3fd -t /Applications/Xcode.app/Contents/Applications/Instruments.app/Contents/PlugIns/AutomationInstrument.bundle/Contents/Resources/Automation.tracetemplate "App" -e UIASCRIPT /Users/../automation-tests-scripts/test-instruments.js -e UIARESULTSPATH /Users/../test-reports/
儀器失敗,出現以下錯誤:
2013-11-28 14:32:56.679 instruments[68408:1007] Permission to debug com.company.App was denied. The app must be signed with a development identity (e.g. iOS Developer).
2013-11-28 14:32:56.681 instruments[68408:1007] Recording cancelled : At least one target failed to launch; aborting run
Instruments Trace Error : Error Domain=com.apple.instruments Code=1 "Error Starting Recording" UserInfo=0x7fb15b290560 {NSLocalizedDescription=Error Starting Recording, NSLocalizedRecoverySuggestion=At least one target failed to launch; aborting run}
Instruments Trace Error : Failed to start trace.
這些命令適用於在iOS 6.x的運行iOS的設備,但無法與在先前僅在iOS 7.x版本中出現了錯誤(我嘗試了2個iOS 6.x設備,iPhone 4S和5,並且我嘗試了使用運行iOS 7.x的4個設備)。所以這個問題與iOS 7有關。
如果應用程序是直接用開發人員身份構建的,那麼效果很好,所以我猜測在簽名階段失敗了。我還做了一個協同設計上辭職的應用-d -vvv,它顯示了這個輸出
Executable=/Users/.../App.app/App Identifier=com.company.App
Format=bundle with Mach-O universal (armv7 armv7s)
CodeDirectory v=20100 size=8547 flags=0x0(none) hashes=420+3 location=embedded
Hash type=sha1 size=20 CDHash=f00fac8eabf174e88042f2b875505a6cacdd6b0a
Signature size=4326
Authority=iPhone Developer: john doe (BXX559V2VW)
Authority=Apple Worldwide Developer Relations Certification Authority
Authority=Apple Root CA
Signed Time=28 nov. 2013 11:56:04
Info.plist entries=27
Sealed Resources version=2 rules=5 files=290
Internal requirements count=2 size=708
我看着Xcode的簽署過程,它出口了「CODESIGN_ALLOCATE」變量,我試過了,我並沒有獲得更多的成功。 PS:我讀了一些關於「iOS開發者」的地方,它可能已經取代了證書標題中的「iPhone開發者」,但是我沒有找到關於這方面的更多信息。
這個entitlements.plist文件位於哪裏?我怎麼編輯它? –
Xcode爲你創建它(在編譯期間),除非你自己創建它並將它添加到你的xcode項目 – LiohAu
我得到了Xcode將創建它,但它創建它在哪裏,我的意思是我在哪裏找到它? –