Provisioning profile problems - xamarin.ios

Whn I try to upload my app, I get this error in Application Uploader "Application failed codesign verification. The signature is invalid, contains disallowed entitlements, or it was not signed with an iPhone Distribution Certificate.".
If I open MonoDevelop, properties and select "iPhone bundle signing", then I see a "Provisioning profile", but if I click another topic (eg Crash report) and go back to "Provisioning profile", then it suddenly says "Unknown" and a guid.
How do I tell MonoDevelop to use the correct Provisioning profile?
I deleted some old profiles (in Organizer), but they still show in MonoDevelop.

Unfortunately the "provisioning hell" created by the Apple signature system is made even worse in MonoDevelop.
There is no provisioning manager, no way to setup and associate all the provisioning profiles and the keys to a specific monotouch app. MonoDevelop lacks a wizard to automatically create or guide the user in the creation, download or backup of the right profiles, keys and appIDs.
The best way to know if a profile or a key is wrong, expired, incompatible with an appId, or rejected, is to check all of them manually in the XCode Organizer (you can find it in the XCode "Window" menu).
Once in Organizer, you need to go to click on the LIBRARY -> Provisioning Profiles section on the left, and then click on the Refresh button to synch your profiles with apple server (if you have those on file or you are on another dev computer and you have to install only selected profiles, click on the Import button and manually select the files).
Then you need to attach your ios device and when it appears in the DEVICE->your_iPhone_or_Ipad name.. you need to drag and drop the provisioning profiles that you need from the LIBRARY->Provisioning Profile to the DEVICE->your_iPhone_or_Ipad_name->Provisioning Profiles...
Many things can go wrong anyway, especially mixing old profiles with the new profiles supporting iCloud or some other advanced app features. There is no way to know if a bundle id is valid, if the entitlements are allowed, if a profile or an appID is enabled or not to use iCloud, Notifications, IAP, etc., or if it's registered for Developer, AdHoc or Distribution, and what product id strings it's compatible with. You need to go by trials and errors. Even the simple creation of an ad Hoc version of your app enabled for a trusted remote tester is a long and perilous road. There is no users and testers profiles manager in MonoDevelop, you need to remember what goes with who every time.
If you are on a different developer machine, you also need to install the registered developer keys in the local KeyChain (I suggest to do a backup of those keys somewhere: if you lose those keys, you will be unable to update your app in the future!!).
Let us hope that Xamarin will add a profiles and keys manager soon.

#Emanuale mentions alot, but he is going the long route on a lot of these.
There is a simpler way to go about everything. Here is the cut and dry approach:
Login to the provisioning portal on the web
Create an App ID for your company as "com.yourcompanyname.*"
Create a provisioning profile for this app ID for both development and distribution
(I would also recommend to delete any profiles you don't need)
Open XCode->My Organizer, and press the refresh button in the bottom right corner (you will see all your profiles from online appear)
Deploy your app to the device from MonoDevelop (make sure your bundle ID is com.yourcompanyname.yourappname)
This is the simplest way to go about this. No need to mess with provisioning profile settings in MonoDevelop, the defaults should work.
The only gotcha is if you need to support push notifications. The com.yourcompanyname.* profile won't work, you will have to make a profile specific to each app in this case.

Great answer jonathanpeppers! Just a 2c, now XCode->My Oganizer is Preferences->Accounts

If the accepted response doesn't help, you should also ensure that your Signing Identity matches the Provisioning Profile you're using, and that it has a private key. These can be switched up if you have multiple Signing Certificates installed, and you won't be able to tell the difference from Xamarin Studio. See
https://stackoverflow.com/a/37856762/660194

Related

Publish a new version of a Chrome Extension to just testers (initially)

I have an unlisted extension published through the Chrome web store which is already being used. I have a new version which I would like to release just to testers initially, before a full roll out to everyone. Can this be done?
The same thing has been asked here but it was almost 9 years ago, and the answers disagree on whether it's possible or not:
How to publish new version of Chrome Extension only to testers
The short answer is "No, it can't be done for a published extension".
According to Chrome Web Store visibility descriptions, you must unpublish an extension before it can be published to trusted testers. Users who already have it installed will get updated to the new version.
In your case, you have to create a new extension with the new code, and a different name like "MyApp Beta" and publish it privately to the list of trusted testers.
Maybe you already know this, but you can install a chrome extension manually.
Go to chrome://extensions/ and check the box for Developer mode in the top right.
Click "Load unpacked exention"
Select the folder where your unzipped extension resides in.
So, you can send a zip/rar to your testers, let them follow the procedure and test the extension. Might be that you have to give it another name so as to not conflict with your earlier eversion, or you could ask your testers to delete the existing extension to avoid conflicts.
Well, the simplest way is to pack a .crx file of the tester-only extension then link to it via some cloud-hosting service like Google Drive. There is no way to do this through the Web Store. You could release a different extension as a beta channel though.
Not strictly related to publishing a full extension, but ... you could use feature toggling to control the visibility of new functionality? So wrap the new functionality in toggle checks and only turn the feature on based on some criteria you can decide in a custom roll-out strategy. See enter link description here for an open-source implementation of a feature toggle control system.
If you have a developer account and want to publish it on the chrome web store privately to just testers this is what you have to do:
Go to the Pricing and Distribution page of the extension during the publishing process
Click "Private"
Go to your developer account settings, and in the "Management" section, you can add trusted tester accounts.
You can change the status to public whenever your extension is ready.

Actions on Google - My alpha tester could not access my action

Initially, I built up a test agent on DialogFlow console according to the document, and it works well on the Actions On Google which is a simulator of Google Assistant on mobile devices.
Then, I deployed it through the Release in the left menu as you can see the pic attached.
deployed successfully
After that, I added some Alpha Testers including my colleague and sent my opt-in link to my colleague, besides, I granted them all the viewer permission in IAM.
However, problem appeared. It didn't work well on my testers’ phone(IOS 10+) but only worked well on developer's account(mine). When they opened the link I sent to them, and clicked send to devices, then clicked the notification on top of the screen.
send to device
The result is shown as below.
Google Assistant didn't respond to "Talk to mytest app"
In my case the command was set as "Talk to hello qad", and it did work well on my phone used the developer account.
developer account works well
If my tester input the text "Talk to hello qad", it just replied some direct searching results not hello qad diaglog.
To recap:
My action has already been in "deployed" status for couple of days
I've added the tester accounts in whitelist and give them "Viewer" permission in IAM
Testers could see the action directory page in devices by open opt-in link, but they couldn't see the "I'm In" button and couldn't access the action
Appreciate for any help or advice
During my project development, I also faced a similar issue. This is how managed to do testing:
Made sure all Google Accounts were created with the US as the country.
Through IAM, share AoG project with the tester's Google accounts.
All testers to open the shared simulator link in their browsers. This is important!
Test the app on browser first using the simulator.
Once tested, use any device with the whitelisted Google Accounts.
US country was required for my use case as I was having Transaction API in my Assistant. I had to also mock my location to the US on mobile for testing US specific features.
See if the above steps help you.
I contacted Google and this is what they said:
You have to copy the link to the notes app, and then click it and in the prompt, choose “Open in Assistant”.
Full text:
Please ensure that the opt-in link is opened in Google Assistant app and not in a browser. At this time, Google Assistant app is only available in USA. For opening an opt-in link in iPhone or any iOS device, please follow the steps below:
1. Download the Assistant App in App Store
2. Log in using the included account for Beta testing
3. Copy the opt-in URL to Notes app
4. Hold press the opt-in link then select 'Open in "Assistant"'. Google Assistant and App page in the Assistant Directory will be displayed.
5. Scroll down the page until you see the "Become a Beta tester" section
6. Click the I'M IN button
7. Test the Action
This does not work for me, probably because I am not in the US. However, the app is of course available here.
I ran into a similar issue with Google Actions/Dialog Flow. Here is how I resolved it...
Share the app from within DialogFlow to the test user
Copy the current DialogFlow URL from the address bar
Launch an Incognito Window
Paste the DialogFlow URL from Step 2 in the address bar
Log into DialogFlow using the test account
At the Standard Google Account Access Prompt Allow the access so your Google Action can talk to DialogFlow.
I couldn't find this documented anywhere and wasted about 8 hours figuring it out.
For me it only worked after I shared with the user the link to test on desktop that look likes: https://console.actions.google.com/project/XXX/simulatorcreate?isDeepLink the one you can get the the console menu on the sharing icon.
I asked him to login with same google email he has opted-in in Google Assistant and
to verify if when mouse over on the devices icon on the menu he would see "Testing on Device: Enabled
You currently are able to test your Actions on all
Assistant devices connected to "xxxx#gmail.com". "
Then he could invoque almost right away the alpha version of the BOT.
All that considering that he has already clicked on the opt-in link, I had added his emails as a Alpha tester and I had also added him as a Viewer on Permissions at the console admin https://console.cloud.google.com/iam-admin.
If you are a developer of the project, the test version is enabled by default on your device. If you want to access the alpha and beta versions, make sure to disable the ‘Testing on device’ option on the Actions Console simulator.
Add users before deploying alpha release
I feel obligated to copy dedman's comment on your question here, since his solution worked for me and is the only one directly addressing the problem at hand: an alpha release is not available to testers you have added after deploying the release.
As stated in question, you first deployed the test version and then added alpha testers. You might have to publish new alpha version "after adding the testers" and then wait till you get "deployed" status on the new alpha release too... – dedman
I was encountering this exact problem with the Alpha release of my Action, i.e. assistant not responding on alpha users devices, even though I had deployed the release, shared the opt-in link with users and had them click on it to opt-in. Deploying a new alpha release after users had clicked the opt-in link solved the problem and the action is now responding correctly for all users.
IAM Viewer status is not mandatory
By the way, I can also confirm your suspicion that "Viewer" permission in IAM is not needed for alpha users to have access to your release - they only need to opt-in before you deploy a new release.

Force install Microsoft Edge extension enterprise environment

I am trying to automatically install a Microsoft Edge Extension in an enterprise managed environment: Google Chrome allow this behavior (check this post for further information), but it seems impossible to do the same for Edge (the Edge extension policy states that "The installation must be initiated and completed by the user, using only the user experience provided by Microsoft Edge and the Microsoft Store").
Edit 5/8/20
The new Microsoft Edge based on Chromium supports GPOs (cfr. https://learn.microsoft.com/en-us/deployedge/microsoft-edge-policies#extensioninstallforcelist)
I've been able to forcefully install an extension in a managed environment using this guide.
Unfortunately, when the user open Edge for the first time after the extension has been configured a popup shows up, asking him if he wants to turn the extension on or not, and right now there is no way to forcefully enable the extension.
As you've said, I think it's not yet possible. You may check this thread which also stated that installation of extensions for Microsoft Edge must be initiated and completed by the user. However, there's a suggestion to try Add-AppxPackage which adds a signed app package (.appx) to a user account. Just make sure that package is signed because otherwise Add-AppxPackage would not work.

Xamarian deploying to device

I have never deployed an app for texting in a real iOS device, only on an iPhone 7 plus simulator. I've watched some tutorials on how to do it and this is what I have done so far.
I have made an iOS Development Certificate. I made an App id, connected a device and entered the UDID. Then created a new device and at last I have made a Provisioning Profile with the iPhone 7 Device connected. The iOS development certificate connected and the App ID connected. After I did all of that, I continued to watch all the tutorials but there seems to be a change which I can't figure out.
As you can see, in the picture above there is a view detail button which you click then download your Provisioning Profile to your XCode, but for me there is no View Detail button. Instead it looks something like this.
So unfortunately, I don't know what to do from here. I tried going to Xcode > Window > Devices then right clicked on my device then it looks something like this.
So I click Show Provisioning Profiles, press "add" then add my Provisioning Profile. The next thing I did was go back to Xamarian went to info.plist, double clicked it and then entered my Bundle Identifier.
Then right clicked the 2 Calculator file, went down to Options and then set everything up, as you could see in the picture. Then I press run but it doesn't seem to work
This error message comes up:
I am pretty sure I have done everything right, but there seems to still be an error. The only possible bit I think may have gone wrong is when there wasn't the "view detail" button, so I did it a another way. Maybe the problem is I downloaded the Provisioning Profile on the iOS Device, but not in the Xcode mac or something?
I don't have a clue what I did wrong and have tried everything about 5 times but it still didn't work. It will be great if someone could help.
These are all the Certificate and stuff I did in the App development section.
Not enough reputation to comment, so I am going to take a shot in the dark here. My question to you is, did you download the certificate to your MacBook before or after you added your mobile device to it? Your Mac has to know of which devices you have allowed to develop on, so you need to make sure your .mobileprovision on your Mac has that UDID in it.
You can check if your .mobileprovision is added by looking in "~/Library/MobileDevice/Provisioning Profiles" and sorting by "Date Modified" to see if you have a fresh one updating after you downloaded it from developer.apple.com. Xcode will assign a GUID to the name so the provisioning profile will not have the name displaying on the website.
Also, the error possibly looks certificate related. Is the certificate valid and trusted in your keychain? I noticed no mention of adding the certificate to the "Keychain Access" application.

How do third party installer install addons in our browser?

My question is how do third party installer installs addons in the browser like toolbars and able to set homepage and other browser properties??
I want to make an addon which get installed in browser in same way..
is it possible??
In principle, installing extensions along with other software is possible. I'm describing the procedure for Windows.
The following conditions have to be met:
You must be able to write to the HKLM registry subtree (needs Admin rights)
The extension must be published on Chrome Web Store
The machine must be able to download the extension from Web Store
If those conditions are met, you can do it according to the procedure described here. Basically, the installer must create a registry key that will trigger Chrome to download the extension on next launch.
That said, Google has gone to great pains to prevent silent installs and avoid browser settings hijack. Such setting overrides are a weapons race and Chrome is tightening its defenses. Ask yourself whether it's ethical to install your extension this way.
It will probably annoy your users and will flag your extension for more meticulous checks by Google. Remember that Google can disable any extension hosted by the Web Store if it violates its policies.
Also, be mindful of the single purpose policy. A toolbar that also overrides search/homepage/settings will be frowned upon. At a minimum it should be separated into several extensions, at a maximum - don't do it.
An extension can override, say, a homepage, but it's very restrictive. The extension must be in the Web Store as above, and any override pages must be verified for ownership for the Web Store developer account. All in the name of security and comfort of the users.

Resources