我使用C#,Xamarin 6.1.3。,iOS 10.2,iPhone 6s Plus,Xcode 8.2,OS X El Capitan 10.11.6编写移动自动测试。 我尝试使用以下命令在模拟器上启动测试:
IApp iApp = ConfigureApp.iOS.AppBundle(path_to_app / Application.app).StartApp();
我收到了以下错误:
Calabash.XDB.Core.Exceptions.DeviceAgentException : Failed to install app /Volumes/Win7 Ultim/Framework/Atom.app
ExitCode: 1
app: /Volumes/Win7 Ultim/Framework/Atom.app/PlugIns/AtomTests.xctest
identity: #<CodesignIdentity: - : AdHoc>
/usr/bin/xcrun codesign -d --entitlements :- /Volumes/Win7 Ultim/Framework/Atom.app/PlugIns/AtomTests.xctest
/usr/bin/xcrun codesign --verbose=4 --verify /Volumes/Win7 Ultim/Framework/Atom.app/Atom
/Volumes/Win7 Ultim/Framework/Atom.app
/Volumes/Win7 Ultim/Framework/Atom.app/PlugIns/AtomTests.xctest
device UDID: 9E44D0FE-A3F9-4FC1-8635-20FB8AD20BA4
Device UDID: 9E44D0FE-A3F9-4FC1-8635-20FB8AD20BA4
ERROR: Error Domain=sh.calaba.iOSDeviceManger Code=5 "Code signing failed" UserInfo={NSLocalizedDescription=Code signing failed, NSLocalizedFailureReason=There was a problem code signing. Please check the logs.}
Path to bundle: /Volumes/Win7 Ultim/Framework/Atom.app
Could not extract entitlements from app:
with command:
-a,--app-bundle <path/to/app-bundle.app> Path .app bundle (for .ipas, unzip and look inside of 'Payload')
-c,--codesign-identity <codesign-identity> [OPTIONAL] Identity used to codesign app bundle [device only] DEFAULT=
-d,--device-id <device-identifier> iOS Simulator GUIDs
-u,--update-app <true-or-false> [OPTIONAL] When true, will reinstall the app if the device contains an older version than the bundle specified DEFAULT=1
install
/Volumes/Win7 Ultim/Framework/Atom.app/Atom: code object is not signed at all
/Volumes/Win7 Ultim/Framework/Atom.app/PlugIns/AtomTests.xctest: code object is not signed at all
=== STDERR ===
=== STDERR ===
Could not find any Provisioning Profiles suitable for resigning
Could not resign app bundle at path:
Error resigning sim bundle
In architecture: x86_64
with command:
所以我没有应用程序源代码,但我需要登录我拥有的.app或.ipa文件,以便能够在应用程序上运行测试。有可能吗?
答案 0 :(得分:1)
@Kent.Green对this answer的解决方案也可以解决您的问题:
您可以使用的一个选项是使用Xamarin测试记录器注入Calabash并重新签署您的IPA:https://developer.xamarin.com/guides/testcloud/testrecorder/
将IPA加载到测试记录器后,它将在与原始IPA相同的位置创建一个新的,重新签名的IPA,其名称前缀为“xtr-”,如下所示:
myAwesomeApp.ipa
(原始IPA)xtr-myAwesomeApp.ipa
(IPA,重新签名,注入Calabash)IPA重新签名 - 执行辞职的Mac需要在其钥匙串中安装有效的签名身份和配置文件,包括应用使用的任何权利。
任何包含Calabash的IPA都将被iOS应用商店拒绝 - 无论使用何种方法将Calabash添加到IPA,都是如此,但重要的是要记住。在上面的示例中,您将使用xtr-myAwesomeApp.ipa
进行测试并将myAwesomeApp.ipa
本身提交到应用商店。