How do I make Fastlane Deliver work for tvOS? - continuous-integration

Upload to iTunesConnect fails with the following error:
"Invalid Provisioning Profile. This provisioning profile is not compatible with iOS apps."
+-----------------------+---------------------------------------+
| deliver 2.26.1 Summary |
+-----------------------+---------------------------------------+
| username | iosdev#inspirato.com |
| ipa | /Users/vagrant/deploy/InspiratoTV.ipa |
| skip_screenshots | true |
| skip_metadata | true |
| force | true |
| app_identifier | com.inspirato.travel.InspiratoTV |
| screenshots_path | ./screenshots |
| metadata_path | ./metadata |
| app_version | 1.0 |
| edit_live | false |
| platform | ios |
| skip_binary_upload | false |
| submit_for_review | false |
| automatic_release | false |
| overwrite_screenshots | false |
+-----------------------+---------------------------------------+
It appears that the platform is stuck on "ios" even though I don't have an iOS related app for this bundle ID. I've tried adding "--platform tvOS" to the end of the $ fastlane deliver ... command with no luck.

Deliver uses the notation "appletvos" for the tvOS platform.
Add that to the end of the $ fastlane deliver command:
$ fastlane deliver ... ... "--platform" "appletvos"
Or add it to your .Deliver file like so:
deliver(platform: "appletvos")

If you use upload_to_testflight, please, specify appletvos as an app platform
upload_to_testflight(app_platform: "appletvos")
And don't forget to set build(include_bitcode: true) during the build.
If you use match for signing specify a platform parameter:
match(platform: "tvos")
If you use a repository for match add a _tvos suffix to your provisioning profile name. For example, file
profiles/appstore/AppStore_com.yourcompany.youproject.mobileprovision
must be renamed to
profiles/appstore/AppStore_com.yourcompany.youproject_tvos.mobileprovision
This is necessary to avoid an error with match/sigh.

Related

how to use pywinauto to get checkbox in treeview

some UI list like this have some button or check box in treeview
| | GroupBox - '' (L807, T366, R1257, B746)
| | ['GroupBox']
| |
| | TreeView - '' (L815, T382, R1249, B732)
| | ['TreeView']
| | child_window(auto_id="1176", control_type="Tree")
| | |
| | | CheckBox - 'Intrusion Prevention' (L839, T384, R957, B402)
| | | ['CheckBox', 'Intrusion PreventionCheckBox', 'Intrusion Prevention', 'CheckBox0', 'CheckBox1']
| | | child_window(title="Intrusion Prevention", control_type="CheckBox")
| | |
| | | CheckBox - 'USB Malware Protection' (L874, T402, R1010, B420)
| | | ['USB Malware ProtectionCheckBox', 'CheckBox2', 'USB Malware Protection']
| | | child_window(title="USB Malware Protection", control_type="CheckBox")
| | |
| | | TreeItem - 'Network Virus Protection' (L858, T420, R996, B438)
| | | ['Network Virus Protection', 'Network Virus ProtectionTreeItem', 'TreeItem', 'TreeItem0', 'TreeItem1']
| | | child_window(title="Network Virus Protection", control_type="TreeItem")
I can use TreeView to see Treeitems like this
dlg = app.top_window()
a = dlg.TreeView
b = a.print_items()
i can see b have tree item (ex:Network Virus Protection) but no checkbox (ex:Intrusion Prevention) so how can i get checkbox ele from treeview?
i know can use child_window("title") to get check box , but i need get this ele and check it text, so use title are not better
you can try this extension,
https://marketplace.visualstudio.com/items?itemName=ClickCorp.clicknium
it includes one automation library, and can recorde the checkbox and do check or uncheck operation:
ui(locator.notepad.checkbox).check()

Laravel - How to run schedule in multiple packages

currently, i'm working with project that has some modules which need to run schedule job.
I want to take schedule job into Kernel of each module (not Kernel in app/Console directory).
I did like this Laravel 5 Package Scheduled Tasks but it only run on 1 module. The others did not run.
Can anybody please help me! Thanks
My source code has structure like this:
app
| Console
| | Commands
| | | Command.php
| | Kernel.php
bootstrap
...
Module
| Module 1
| | Console
| | | Commands
| | | | Command11.php
| | | | Command12.php
| | | Kernel.php
| Module 2
| | Console
| | | Commands
| | | | Command21.php
| | | | Command22.php
| | | Kernel.php

Advisable to remove the Session/Keepalive log data coming from Applications to Azure App Insights

We have a web-application hosted on Azure and it sends Telemetry to App Insights and the Dev team is asking if it is ok to Turn off sending the SESSION/KEEPALIVE data thats being posted from web-application. Will this affect any functionality like User Flows etc in Application Insights?
Any guidance on this?
Following is sample data:-
timestamp | id | source | name | url | success | resultCode | duration | performanceBucket
-- | -- | -- | -- | -- | -- | -- | -- | --
2019-09-25T16:00:31.8191577Z | \|Ac34D.9fIx+.4c3e0b35_ | POST session/keepalive | http://XXXXXXXXXXXXXX.com/session/keepalive | TRUE | 200 | 15.8274 | <250ms
2019-09-25T16:00:42.7423811Z | \|Ac34D.FqSNy.83ee6e0d_ | POST session/keepalive | http://XXXXXXXXXXXXXX.com/session/keepalive | TRUE | 200 | 38.3679 | <250ms
2019-09-25T16:00:48.716939Z | \|Ac34D.h8kwN.34c0b012_ | POST session/keepalive | http://XXXXXXXXXXXXXX.com/session/keepalive | TRUE | 200 | 16.0359 | <250ms
2019-09-25T16:00:54.1607213Z | \|Ac34D.v2qfF.4c3e0b36_ | POST session/keepalive | http://XXXXXXXXXXXXXX.com/session/keepalive | TRUE | 200 | 15.2518 | <250ms
Views in Applications Insights typically target a specific set of telemetry item types.
For instance, user flows UI leverages PageView and CustomEvent telemetry types. Therefore, if keep alive is reported as one of those types it will be displayed in that UI.
However, if the example above is Dependency telemetry, then that view won't be affected.
In general, if you'd like to drop some of the telemetry before it reaches AI and is processed for storage, you'd use TelemetryProcessor (in case of Java Script SDK, TelemetryInitializer) to filter it out:
var telemetryInitializer = (envelope) => {
if (envelope.data.someField == 'keepalive') return false;
};
appInsights.addTelemetryInitializer(telemetryInitializer);

Fastlane is getting provisioning profiles with wrong account

This is my output on console:
+---------------+---------------------------------------------------+
| Summary for cert 2.96.1 |
+---------------+---------------------------------------------------+
| development | false |
| force | false |
| username | correctappleid#gmail.com |
| team_id | CSCORRECTTEAMID |
| keychain_path | /Users/bartek/Library/Keychains/login.keychain-db |
| platform | ios |
+---------------+---------------------------------------------------+
[09:01:23]: Starting login with user 'correctappleid#gmail.com'
[09:01:27]: Successfully logged in
[09:01:28]: Certificate 98TLCZS7BR (iOS Distribution) can't be found on your local computer
[09:01:29]: Found the certificate 6K5C2MFHUL (iOS Distribution) which is installed on the local machine. Using this one.
[09:01:30]: Verifying the certificate is properly installed locally...
[09:01:30]: Successfully installed certificate 6K5C2MFHUL
[09:01:30]: Use signing certificate '6K5C2MFHUL' from now on!
[09:01:30]: --------------------------------------
[09:01:30]: --- Step: get_provisioning_profile ---
[09:01:30]: --------------------------------------
+-------------------------------------+-------------------------------------------+
| Summary for sigh 2.96.1 |
+-------------------------------------+-------------------------------------------+
| adhoc | false |
| development | false |
| skip_install | false |
| force | false |
| app_identifier | my.app.identifier |
| username | wrongname#company.com |
| team_id | CSTEAMID |
| ignore_profiles_with_different_name | false |
| cert_id | 6K5C2MFHUL |
| skip_fetch_profiles | false |
| skip_certificate_verification | false |
| platform | ios |
| readonly | false |
+-------------------------------------+-------------------------------------------+
[09:01:30]: Starting login with user 'wrongname#company.com'
-------------------------------------------------------------------------------------
Please provide your Apple Developer Program account credentials
The login information you enter will be stored in your macOS Keychain
You can also pass the password using the `FASTLANE_PASSWORD` environment variable
See more information about it on GitHub: https://github.com/fastlane/fastlane/tree/master/credentials_manager
Why fastlane try to fetch provisionings with wrong user account?
How can I force it to change it?
Where it is defined?
Have you tried setting the user account directly?
https://docs.fastlane.tools/actions/upload_to_app_store/#parameters
https://docs.fastlane.tools/actions/sigh/#parameters

In RobotFramework, is it possible to run test cases in For-Loop?

So my issues might be of syntactic nature, maybe not, but I am clueless on how to proceed next. I am writing a test case on the Robot Framework, and my end goal is to be able to run ,multiple tests, back to back in a Loop.
In this cases below, the Log to Console call works fine, and outputs the different values passed as parameters. The next call "Query Database And Analyse Data" works as well.
*** Test Cases ***
| For-Loop-Elements
| | #{Items} = | Create List | ${120} | ${240} | ${240}
| | :FOR | ${ELEMENT} | IN | #{ITEMS}
| | | Log To Console | Running tests at Voltage: ${ELEMENT}
| | | Query Database And Analyse Data
But then, when I try to makes a test cases with documentation and tags with "Query Database And Analyse Data", I get the Error: Keyword Name cannot be Empty, which leads me to think that when the file gets to [Documentation tag], it doesn't understand that it is part of a test case. This is usually how I write test cases.
Please note here that the indentation tries to match the inside of the loop
*** Test Cases ***
| For-Loop-Elements
| | #{Items} = | Create List | ${120} | ${240} | ${240}
| | :FOR | ${ELEMENT} | IN | #{ITEMS}
| | | Log To Console | Running tests at Voltage: ${ELEMENT}
| | | Query Database And Analyse Data
| | | | [Documentation] | Query DB.
| | | | [Tags] | query | voltagevariation
| | | Duplicates Test
| | | | [Documentation] | Packets should be unique.
| | | | [Tags] | packet_duplicates | system
| | | | Duplicates
| | | Chroma Output ON
| | | | [Documentation] | Setting output terminal status to ON
| | | | [Tags] | set_output_on | voltagevariation
| | | | ${chroma-status} = | Chroma Output On | ${HOST} | ${PORT}
Now is this a syntax problem, indentation issue, or is it just plain impossible to do what I'm trying to do? If you have written similar cases, but in a different manner, please let me know!
Any help or input would be highly appreciated!
You are trying to use Keywords as Test Cases. This approach is not supported by Robot Framework.
What you could do is make one Test Case with a lot of Keywords:
*** Test Cases ***
| For-Loop-Elements
| | #{Items} = | Create List | ${120} | ${240} | ${240}
| | :FOR | ${ELEMENT} | IN | #{ITEMS}
| | | Log To Console | Running tests at Voltage: ${ELEMENT}
| | | Query Database And Analyse Data
| | | Duplicates
| | | ${chroma-status} = | Chroma Output On | ${HOST} | ${PORT}
*** Keywords ***
| Query Database And Analyse Data
| | Do something
| | Do something else
...
You can't really fit [Tags] anywhere useful. You can, however, fire meaningful fail messages (substituting the [Documentation]) if instead of using a Keyword directly you wrapped it in Run Keyword And Return Status.
Furthermore, please have a look at data driven tests to get rid of the :FOR-loop completely.

Resources