How to install *.app file to real device by script? - ios

Get device list
xcrun xctrace list devices
=> 'Simson’s iPhone 11 (14.4.2) (00008030-00122CD62291802E)'
Install app file
xcrun simctl install 00008030-00122CD62291802E app/ios/test.app
Then I get error:
stderr: 'Invalid device: 00008020-00151D0101A1002E'
code: 148
FYI,
Other simulator device
iPhone 11 (14.2) (8C7A8554-23D2-4E89-BC42-99A87D550067)
iPhone 11 Pro (14.2) (BE017979-0F60-4C0E-A203-B94951969071)
If I replace 00008020-00151D0101A1002E by 8C7A8554-23D2-4E89-BC42-99A87D550067 or BE017979-0F60-4C0E-A203-B94951969071 will work.
Please help.

Related

How to specify Cordova build target in build.json

I'm having an error when I execute cordova build.
xcodebuild: error: Unable to find a destination matching the provided destination specifier:
{ platform:iOS Simulator, OS:latest, name:iPhone 11 Pro Max }
Since my app only builds on iPad, I think I need to set a build target to an iPad, but I'm not sure how to do this.
Versions
XCode: Version 11.1 (11A1027)
Cordova: cordova#9.0.0
MacOS: 10.15 Catalina
My config.xml has these tags to specify iPad only:
<preference name="target-device" value="tablet" />
<preference name="deployment-target" value="10.3" />
The full error:
Reading build config file:
No simulator found for ". Falling back to the default target.
Building for "iPhone 11 Pro Max" Simulator (com.apple.CoreSimulator.SimDeviceType.iPhone-11-Pro-Max, iPhone-11-Pro-Max).
Building project: /Users/lucaban/.ghq/github.com/mesqueeb/sokketsu/src-cordova/platforms/ios/Sokketsu.xcworkspace
Configuration: Debug
Platform: emulator
Target: iPhone 11 Pro Max
Running command: xcodebuild -workspace Sokketsu.xcworkspace -scheme Sokketsu -configuration Debug -sdk iphonesimulator -destination platform=iOS Simulator,name=iPhone 11 Pro Max build CONFIGURATION_BUILD_DIR=/Users/lucaban/.ghq/github.com/mesqueeb/sokketsu/src-cordova/platforms/ios/build/emulator SHARED_PRECOMPS_DIR=/Users/lucaban/.ghq/github.com/mesqueeb/sokketsu/src-cordova/platforms/ios/build/sharedpch
Build settings from command line:
CONFIGURATION_BUILD_DIR = /Users/lucaban/.ghq/github.com/mesqueeb/sokketsu/src-cordova/platforms/ios/build/emulator
SDKROOT = iphonesimulator13.1
SHARED_PRECOMPS_DIR = /Users/lucaban/.ghq/github.com/mesqueeb/sokketsu/src-cordova/platforms/ios/build/sharedpch
xcodebuild: error: Unable to find a destination matching the provided destination specifier:
{ platform:iOS Simulator, OS:latest, name:iPhone 11 Pro Max }
Available destinations for the "Sokketsu" scheme:
{ platform:iOS Simulator, id:B90FC025-F8EB-40B3-90C5-E9094C0FFD17, OS:13.1, name:iPad Air (3rd generation) }
{ platform:iOS Simulator, id:3131A6AD-3C4E-4CEA-8889-9C7E22EAF816, OS:13.1, name:iPad Pro (9.7-inch) }
{ platform:iOS Simulator, id:A8055BC4-F95C-43FA-8B28-7FACBD3D57B6, OS:13.1, name:iPad Pro (11-inch) }
{ platform:iOS Simulator, id:7FAD7B1C-70DD-407A-AC99-3ACAD2670726, OS:13.1, name:iPad Pro (12.9-inch) (3rd generation) }
Ineligible destinations for the "Sokketsu" scheme:
{ platform:iOS, id:dvtdevice-DVTiPhonePlaceholder-iphoneos:placeholder, name:Generic iOS Device }
{ platform:iOS Simulator, id:dvtdevice-DVTiOSDeviceSimulatorPlaceholder-iphonesimulator:placeholder, name:Generic iOS Simulator Device }
xcodebuild: Command failed with exit code 70
You need to set the target-device to universal and then change it back to tablet in Xcode when finished.
config.xml
<preference name="target-device" value="universal" />
PS: This issue started probably around cordova-ios version 5.0.1 when running cordova build ios command.
You can solve this issue by sending the device name as a buildFlag
If you are using cordova use below command
cordova build ios --buildFlag="-destination platform=iOS Simulator,name=iPad Pro (11-inch)"
For me, I was using this in an Ionic project.
ionic cordova build ios -- --buildFlag="-destination platform=iOS Simulator,name=iPad Pro (11-inch)"
You can choose any device name you want from the list Available destinations listed in your error
As you can see in terminal it says:
xcodebuild: error: Unable to find a destination matching the provided destination specifier:
{ platform:iOS Simulator, OS:latest, name:iPhone 11 Pro Max }
You can follow below steps:
Go to Xcode
Under simulator target click 'Add Additional Simulators'
Once this screen pops up, click on + icon on bottom left corner
It will display a screen to add new simulator: Add the one for which your build is failing , in this case:iPhone 11 Pro Max, Select Device type as(iPhone 11 Pro Max) and latest OS version.
Go to terminal and try build command again.

Fastlane testing tries to boot another device

I'm starting project unit tests via fastlane.
I have 2 devices for testing: iPad Air 2 and iPhone 6 plus.
But in console I can see next lines:
SimDevice: iPhone 6 Plus (<device code removed>, iOS 11.4, Booted)
(11.4 (15F79))
2018-11-16 14:34:45.608 xcodebuild[42659:1368186]
iPhoneConnect: ## Unable to mount developer disk image,
(Error Domain=com.apple.dtdevicekit Code=601 "Could not
locate device support files." UserInfo={DeviceType=iPhone9,3,
NSLocalizedDescription=Could not locate device support files.,
NSLocalizedRecoverySuggestion=This iPhone 7 (Model 1660, 1778, 1779, 1780)
is running iOS 12.0 (16A366), which may not be supported by this version of Xcode.})
The question is for which tasks does it try to mount disk image and boot iPhone 7 for tests? Btw it loops on this.
What does it mean?
Note: I have 2 XCode's - 9 and 10. Maybe it affects somehow.
Edit 1.
I do start tests via scan (it is alias) command:
scan(
workspace: "Name.xcworkspace",
scheme: "Name",
clean: false,
devices: devices_for_testing
)
Btw, tests finally completed, but I want to know, why has this output appeared.

Flutter.io (dart) app fails to launch on iOS simulator

I have up-to-date OSX Sierra, up-to-date XCode with applicable plugins, and an iPhone 6 simulator open and ready.
I have followed all the directions at https://flutter.io/setup-macos/#ios-setup.
When I "flutter run" from Terminal, the app fails to install on the simulator with message:
Could not build the application for the simulator.
Error launching application on iPhone 6.
Here is what Terminal said...
Launching lib/main.dart on iPhone 6 in debug mode...
Running pod install... 8.5s
Running Xcode build... 24.1s
Failed to build iOS app
Error output from Xcode build:
↳
2017-11-22 13:13:38.122 xcodebuild[47659:25935636] DVTAssertions: Warning in /Library/Caches/com.apple.xbs/Sources/IDEXcode3ProjectSupport/IDEXcode3ProjectSupport-13510/Xcode3Core/LegacyProjects/Frameworks/DevToolsCore/DevToolsCore/BuildSystem/Runtime/PBXTargetBuildContext.mm:757
Details: unexpected successful exit code from cancelled command <C0009:'CpResource app.flx':P12>
Object: <PBXTargetBuildContext: 0x7fccf1235200>
Method: -createCommandInvocationRecordFromInvocation:
Thread: <NSThread: 0x7fccf2847ea0>{number = 16, name = (null)}
Please file a bug at http://bugreport.apple.com with this warning message and any useful information you can provide.
** BUILD FAILED **
The following build commands failed:
CopyPlistFile /Users/deborah/Desktop/chq_emulator/build/ios/Debug-iphonesimulator/Runner.app/GoogleService-Info.plist Runner/GoogleService-Info.plist
(1 failure)
Xcode's output:
↳
Build settings from command line:
ARCHS = x86_64
BUILD_DIR = /Users/deborah/Desktop/chq_emulator/build/ios
ONLY_ACTIVE_ARCH = YES
SDKROOT = iphonesimulator11.1
=== CLEAN TARGET leveldb-library OF PROJECT Pods WITH CONFIGURATION Debug ===
... list of subsidiary infomation ...
Could not build the application for the simulator.
Error launching application on iPhone 6.
Anyone else out there with advice for how to get Flutter going on the simulator?
Try running your Xcode first and make sure that it's up-to-date. Open the {flutter_project}/ios build on Xcode then try to run the iOS project on the Simulator from there.
If you're still having issues, you can run this command on your Terminal. This should set the path for the active developer directory.
sudo xcode-select --switch /Applications/Xcode.app/Contents/Developer

Running Cucumber on device, app immediately crashes, error: "Error while writing to fifo. RunLoop::Fifo::NoReaderConfiguredError"

So I started building my local iOS device environment.
I have got my Simulator environment fully set up and running.
I have got my distribution and provisioning profile set up correctly to the app through the iOS developer.
While trying to run the app, I follow these steps:
Connecting my iPhone 4s (iOS 8.4.1) with USB cable to my Mac.
Searching for my device in the Terminal with the following command:
xcrun instruments -s devices
The output is:
Known Devices:
Oved's iMac [2E984C21-8F30-5B90-9844-C49F071F8433]
QA1 (8.4.1) [7640b16200d8c553efda3de85291253e95d229ce]
Apple TV 1080p (9.0) [336265EC-E047-4489-9896-03CB47382325]
iPad 2 (8.4) [12A95700-E253-4CF8-ADA7-D9BD4FBE51A9]
iPad 2 (9.0) [72D123E8-8140-41C6-B80C-31F8DA57DCB7]
iPad 2 (9.1) [7EAA1D9F-C4E7-4232-B754-B5FB10A29DDE]
iPad Air (8.4) [7210E244-F1E2-4BD5-92B6-F57E59B1D988]
iPad Air (9.0) [996AA70D-BFE2-48F3-AF96-98BAA453B43B]
iPad Air (9.1) [46D290BB-B89E-4F96-8134-BDE208EE793E]
iPad Air 2 (9.0) [8EA4A50B-D8A7-44C7-9E94-01DDDF3CC494]
iPad Air 2 (9.1) [77E90261-FB18-4B76-81C6-CDB5D5F0206D]
iPad Pro (9.1) [59474C51-4A80-433F-92FE-4A72E6324EFA]
iPad Retina (8.4) [4A4E0612-3BCC-4D09-9DFB-6CAEBD7A39FE]
iPad Retina (9.0) [BF1499FA-2399-48E0-94BC-D9CB92203656]
iPad Retina (9.1) [5DF2678B-AD5D-4C83-9BCF-500901E82A21]
iPhone 4s (8.4) [D130373E-9BD6-46BB-A119-4D0DB572E2EE]
iPhone 4s (9.0) [54C0853C-A2EB-4056-A6D1-69897F4E129E]
iPhone 4s (9.1) [13AEB071-8DB6-433F-9DEE-7354ACB5DD66]
iPhone 5 (8.4) [764C88BF-6E68-4EFA-B4F3-43CECE650D83]
iPhone 5 (9.0) [A6330DF5-1234-45E4-9C50-8360AD277133]
iPhone 5 (9.1) [E1B14CC6-33AA-430C-8C7D-33285F1854C5]
iPhone 5s (8.4) [0A271188-66AB-45F3-97A9-551EAD033509]
iPhone 5s (9.0) [BDD8A84E-1193-4945-9D75-7C812303BA61]
iPhone 5s (9.1) [F540230C-6CA3-4AC5-83C5-08646A14DBD3]
iPhone 6 (8.4) [60724F5F-F91E-4358-B02C-C3BFFC4E0D45]
iPhone 6 (9.0) [159105BB-0C5B-471A-B0B3-C0F29433D7FC]
iPhone 6 (9.1) [BD8D0506-AD7D-44DE-861F-31AE875540D3]
iPhone 6 Plus (8.4) [0FD52166-86F3-4A42-9B60-0BC4F0AB229F]
iPhone 6 Plus (9.0) [B869364C-9BD4-40EA-B856-E92733256F90]
iPhone 6 Plus (9.1) [76CB8D84-A43C-47EC-ADAB-27AAAFA1EC35]
iPhone 6s (9.0) [AC299644-A221-4258-B61E-98D4C5E2DB01]
iPhone 6s (9.1) [90B8A72B-B98D-497F-B4EE-D3B57B6B4D0B]
iPhone 6s (9.1) + Apple Watch - 38mm (2.0) [6D03FF30-74B9-4DD1-A90B-309353F74B49]
iPhone 6s Plus (9.0) [1D797C85-8848-470B-A0AC-42D081BE2DBF]
iPhone 6s Plus (9.1) [96622DF5-2F94-40F4-9C0C-D30ADF3F0ECB]
iPhone 6s Plus (9.1) + Apple Watch - 42mm (2.0) [D428E666-334B-423A-806B-6775FF8FE7BA]
My physical device is called QA1.
My next step was to build and compile my app on Xamarin for testing.
I have searched the .ipa file in my finder, changed it's extension to .zip and then could see my .app file.
I have got the .app file exported as my app bundle path in this command:
export APP_BUNDLE_PATH="/Users/roishmueli/Mekomi/Mekomi/Mekomi/iOS/bin/iPhone/Testing/2.821/Mekomi/Payload/MekomiiOS.app"
Then I Unlocked my device and ran this command for running the app on the device:
DEBUG=1 BUNDLE_ID="com.kimaia.mekomi" DEVICE_TARGET="7640b16200d8c553efda3de85291253e95d229ce" DEVICE_ENDPOINT=http://192.168.1.40 cucumber
The DEBUG=1 gives me additional output, which is:
/Users/roishmueli/Mekomi/Mekomi/Mekomi/features/step_definitions/calabash_steps.rb:7: warning: Insecure world writable dir /Android/android-sdk-macosx in PATH, mode 040757
Feature: Login
Scenario: Registration # features/1-FirstPage.feature:3
INFO: Using uia strategy: 'host'
DEBUG: Searching for run-loop results with glob: /Users/roishmueli/.run-loop/results/*
DEBUG: Found 6 previous run-loop results
DEBUG: Will delete 1 previous run-loop results
DEBUG: Deleted 1 previous results in 0.001425 seconds
DEBUG: Searching for instruments caches with glob: /Library/Caches/com.apple.dt.instruments/xrtmp__*
DEBUG: Found 5 instruments caches
DEBUG: Will delete 0 instruments caches
DEBUG: Deleted 0 instruments caches in 0.00014 seconds
2015-12-02 11:50:55 +0200 [RunLoop:debug]:
{
:app => "com.kimaia.mekomi",
:args => [],
:bundle_dir_or_bundle_id => "com.kimaia.mekomi",
:bundle_id => "com.kimaia.mekomi",
:device => "com.kimaia.mekomi",
:device_target => "7640b16200d8c553efda3de85291253e95d229ce",
:instruments => #<Instruments 7.1.1>,
:launch_method => :instruments,
:launch_retries => 5,
:log_file => "/Users/roishmueli/.run-loop/results/2015-12-02_11-50-55/run_loop.out",
:no_launch => false,
:no_stop => false,
:relaunch_simulator => true,
:reset => false,
:results_dir => "/Users/roishmueli/.run-loop/results/2015-12-02_11-50-55",
:results_dir_trace => "/Users/roishmueli/.run-loop/results/2015-12-02_11-50-55/trace",
:script => "/Users/roishmueli/.run-loop/results/2015-12-02_11-50-55/_run_loop.js",
:sdk_version => nil,
:udid => "7640b16200d8c553efda3de85291253e95d229ce",
:uia_strategy => :host,
:xcode => "7.1.1",
:xcode_path => "/Applications/Xcode.app/Contents/Developer"
}
EXEC: xcrun instruments -s templates
Starting on 7640b16200d8c553efda3de85291253e95d229ce App: com.kimaia.mekomi
2015-12-02 11:50:56 +0200 [RunLoop:debug]: xcrun instruments -w 7640b16200d8c553efda3de85291253e95d229ce -D /Users/roishmueli/.run-loop/results/2015-12-02_11-50-55/trace -t Automation com.kimaia.mekomi -e UIARESULTSPATH /Users/roishmueli/.run-loop/results/2015-12-02_11-50-55 -e UIASCRIPT /Users/roishmueli/.run-loop/results/2015-12-02_11-50-55/_run_loop.js >& /Users/roishmueli/.run-loop/results/2015-12-02_11-50-55/run_loop.out
2015-12-02 11:50:56 +0200 [RunLoop:debug]: Preparation took 0.877732 seconds
Then every 30 seconds I get this:
2015-12-02 11:51:26 +0200 [RunLoop:debug]: Error while writing to fifo. RunLoop::Fifo::NoReaderConfiguredError
2015-12-02 11:51:26 +0200 [RunLoop:debug]: Failed to launch. Error while writing to fifo. RunLoop::Fifo::NoReaderConfiguredError: Error while writing to fifo. RunLoop::Fifo::NoReaderConfiguredError
I get these logs 5 times and then there is a timeout with this message:
Unable to start. Make sure you've set APP_BUNDLE_PATH to a build supported by this simulator version
Calabash::Cucumber::Launcher::StartError:
"Timed out waiting for UIAutomation run-loop Error while writing to fifo. RunLoop::Fifo::NoReaderConfiguredError.
Logfile: /Users/roishmueli/.run-loop/results/2015-12-03_10-58-35/run_loop.out
2015-12-03 10:58:37.013 instruments[86757:6604129] Failed to start Instruments daemon on 'QA1 (8.4.1)' (The service is invalid.)
Instruments Usage Error : Specified target process is invalid: com.kimaia.mekomi
instruments, version 7.1.1 (59040)
usage: instruments [-t template] [-D document] [-l timeLimit] [-i #] [-w device] [[-p pid] | [application [-e variable value] [argument ...]]]
(Calabash::Cucumber::Launcher::StartError)
/Library/Ruby/Gems/2.0.0/gems/calabash-cucumber-0.16.4/lib/calabash-cucumber/launcher.rb:778:in `new_run_loop'
/Library/Ruby/Gems/2.0.0/gems/calabash-cucumber-0.16.4/lib/calabash-cucumber/launcher.rb:635:in `relaunch'
/Users/roishmueli/Mekomi/Mekomi/Mekomi/features/support/01_launch.rb:27:in `Before'
Then I see the first page # features/step_definitions/calabash_steps.rb:13
Then I press on the verify button # features/step_definitions/calabash_steps.rb:23
Failing Scenarios:
cucumber features/1-FirstPage.feature:3 # Scenario: Registration
1 scenario (1 failed)
2 steps (2 skipped)
2m35.735s
I have enabled my UIAutomation on my Device, through the developer settings and through the instruments.app.
I have tried multiple different APP_BUNDLE_PATHs but none of them seem to fix this.
What am I missing?
Thanks in advance.
+100 for a good report.
APP_BUNDLE_PATH="/Users/roishmueli/Mekomi/Mekomi/Mekomi/iOS/bin/iPhone/Testing/2.821/Mekomi/Payload/MekomiiOS.app"
When testing against physical devices, you don't need to set the APP or APP_BUNDLE_PATH; it will be ignored. Further, I want to make sure that you understand that this .app is only for physical devices; you could not use this .app on a simulator.
Is the .ipa installed on the target device? My guess it is not and that is the cause of this error. Calabash iOS cannot install ipas on devices.
Here is a link to everything you need to know about testing on physical devices.
Testing on Physical Devices
To see more about Environment Variables, see the API Documentation.
If you have an .app and you need to generate a .ipa, we recommend using xcrun ditto - here is an example.

Xamarin.iOS Error: The Apple iOS SDK is not installed. (iOS9, XCode 7 beta)

I have installed XCode 7 beta, Xamarin.iOS 8.99.4 and Xamarin Studio 5.9 on Mac OSX 10.10.5.
I refer this article. https://developer.xamarin.com/guides/ios/platform_features/introduction_to_ios9/ .
If I debug/run a Xamarin.iOS app on iOS Simulator (iOS9), it works well.
But when I debug/run it on my iPhone5s device (iOS9), Xamarin shows this error message.
/Library/Frameworks/Mono.framework/External/xbuild/Xamarin/iOS/Xamarin.iOS.Common.targets: Error: The Apple iOS SDK is not installed. (ex33.iOS)
The "Build Output" window show following message.
__________________________________________________
Project "/Users/username/Projects/ex33/iOS/ex33.iOS.csproj" (Build target(s)):
Target PrepareForBuild:
Configuration: Debug Platform: iPhone
Target _DetectAppManifest:
FindItemWithLogicalName Task
Items:
Info.plist
Entitlements.plist
packages.config
LogicalName: Info.plist
ProjectDir: /Users/username/Projects/ex33/iOS
ResourcePrefix: Resources
Target _DetectSdkLocations:
/Library/Frameworks/Mono.framework/External/xbuild/Xamarin/iOS/Xamarin.iOS.Common.targets: error : The Apple iOS SDK is not installed.
DetectSdkLocations Task
TargetFrameworkIdentifier: Xamarin.iOS
TargetArchitectures: ARMv7, ARM64
SdkVersion: <null>
XamarinSdkRoot: /Library/Frameworks/Xamarin.iOS.framework/Versions/Current
SdkRoot: <null>
SdkDevPath: /Applications/Xcode-beta.app/Contents/Developer
SdkUsrPath: <null>
SdkPlatform: <null>
SdkIsSimulator: False
Task "DetectSdkLocations" execution -- FAILED
Done building target "_DetectSdkLocations" in project "/Users/username/Projects/ex33/iOS/ex33.iOS.csproj".-- FAILED
Done building project "/Users/username/Projects/ex33/iOS/ex33.iOS.csproj".-- FAILED
Build FAILED.
Errors:
/Users/username/Projects/ex33/iOS/ex33.iOS.csproj (Build) ->
/Library/Frameworks/Mono.framework/External/xbuild/Xamarin/iOS/Xamarin.iOS.Common.targets (_DetectSdkLocations target) ->
/Library/Frameworks/Mono.framework/External/xbuild/Xamarin/iOS/Xamarin.iOS.Common.targets: error : The Apple iOS SDK is not installed.
0 Warning(s)
1 Error(s)
---------------------- Done ----------------------
What can I do?
P.S. When I debug/run a app in XCode 7 beta, it works on my iPhone well.
Check the preferences in Xamarin Studio.. you may need to change the Apple SDK path to point to the Beta location.
By default, it should be looking in the default location, but that will only be present if you have the General Release (non Beta) Xcode and iOS SDK installed too.

Resources