automatic provisioning profile selection - iphone

I have two Team provisioning profiles which I need.
The automatic selection picks the wrong one for me at the moment.
I can't force it to use a specific one, because that choice gets submitted to svn.
Is there a way to influence the automatic selection?

I figured out that XCode picks the Team Provisioning Profile that was last added.
So, When you need to change the default picked profile, just reinstall it on your machine.

The defaults are chosen based on the bundle identifiers associated with each profile. You might think that the selector would choose the most specific identifier which matches your project, but this is not the case.
The selector chooses any profile which matches your project, with a preference for the most distant expiry date. The selection can therefore be shifted by generating your profiles in a specific order. The most recently generated profile will have a slightly later expiration date, and will therefore be preferred over older matching profiles.
(paraphrased from retrodreamer)

Related

How to specify certain groups to add to TestFlight build

I can't seem to specify only a singular group to a TestFlight build. Is there something else I need to do? There's a plus button in AppStore Connect, but every time I click it it just has me go through the Export Compliance steps and releases to everybody. Doesn't make any sense at all...

New security layer on the library and environment

I have used my pipelines for over a year now and all of a sudden I have to review and permit newly added libraries and environments. This is not derisered as I add more and more libraries and environments over time.
enter image description here
enter image description here
How can I remove the need to explicitly give these permissions?
You can define the pipeline, variable group, and environment permissions in the Manage security tab.
Link: https://learn.microsoft.com/en-us/azure/devops/pipelines/policies/permissions?view=azure-devops#set-pipeline-permissions

Change iteration type to Sprints

​If I create a new project and select the Agile process, my user stories will be grouped in iterations Eg "MyProject/Iteration 1".
However, If I create the project using Basic process and after the project has been created, changes the process to Agile I can group my user stories by Sprint Eg "MyProject/Sprint 1".
The latter is what I want, however as the process was set to Agile when the project was created (not by me), I'm trying to figure out how to change it to use Sprints as default?
Side note:
I cannot create a new project as I lack privileges
I cannot create a new process as I lack privileges
I cannot change to another process because I've already created a bunch or user stories
Although I can create sprints manually, I want it to be default.
Thank you!
From this document, we can know that iteration and sprints represent the same concept in the agile process.
Define Iteration Paths (aka sprints) and configure team iterations
So if you want to visually use Spirits as the default, you can add a new iteration named Spirit in team configuration, or change the name of the existing iteration to the Spirit style. Then set it as Default iteration. As shown in the following figure:
Because your current project is already Aglie process, the initial display must be MyProject/Iteration 1. If you want to display like MyProject/Sprint 1, you have to modify it later.
There are two ways to change the display: changing the process or manually modifying it.According to your Side note, obviously neither is feasible.
If you really want Spirits as default in agile progress project without any manual modification,you could submit a feature request in our Develop Community site. Our PM and product team will kindly review your suggestion.
There is no way to do this without changing the Process of your project.

Sitecore field value is not updated during deploy

I'm having problem with deploying changes to Sitecore item. I've made changes in the template item in Sitecore. All changes of Sitecore items are stored in TDS. During the build TDS generates an update package, then I install this package using Sitecore UpdateInstallationWizard during deployment.
The problem is that I've already deployed several builds, and just found out that changes are not applied to this template item: I've removed one field from the item, but it still appears, also I've changed another field value in the _Standard Values but it does not change after deployment.
Could you please help me to find the cause of this issue? Is there any way to review what items are in the package?
UPD: I've renamed package into zip and was able to find the template item itself and standard values for the item in the addeditems folder. As I understand it right it should mean that the item with all the changes is in package, but for some reason they are not applied.
By default, TDS will NOT remove anything from Sitecore. You need to setup the child item synchronization settings and enable removing/recycling items in the build property page for the target environment. Please see:
http://hedgehogdevelopment.github.io/tds/chapter4.html#deployment-properties
http://hedgehogdevelopment.github.io/tds/chapter4.html#build
http://www.hhogdev.com/help/tds/deploymentproperties
For more information. I recommend that you use the deployment property manager window to make sure your templates are set to "Always". Tell TDS to put items in the recycle bin in the build property page and backup your target database before trying this for the first time. Once you get the hang of the deployment properties, it is pretty easy to manage.
You can review the actions applied from an .update package within the update installation wizard itself, right after applying the package. Click the button labeled "Installation result>" and try filtering the list to look for warnings and errors related to your item.
Another option is to review logs located at ~/temp/__UpgradeHistory/ folder. In particular, I would look at the messages.xml file.

iPhone app id switch resulting in mobile provision madness in Organizer

In the middle of developing an app, I was asked to switch to a different developer account, which resulted in adding a new app ID and creating new provisioning profiles for adhocs on the new account, as well as updating the XCode settings to sign with the new identity.
The problem is that somewhere, somehow XCode is keeping the old provisioning profile around.
I.e. I had a distribution profile "OLD". I created a "NEW". I deleted "OLD" from Organizer in XCode. When I build and archive, "OLD" REAPPEARS in XCode's Organizer, and the adhoc doesn't work for people.
I've tried doing a
grep -r "AD67EE83" *
in the trunk directory for the app, where "AD67EE83" is the profile id in the Organizer. I get a bunch of results in the build directory that look like this:
build/myapp.build/Adhoc-iphoneos/myapp.build/build-state.dat:N/Users/me/Library/MobileDevice/Provisioning Profiles/AD67EE83-BLAB-LABLA-BLAB-LABLABLABLAB.mobileprovision
build/myapp.build/Adhoc-iphoneos/myapp.build/build-state.dat:CProcessProductPackaging "/Users/me/Library/MobileDevice/Provisioning Profiles/AD67EE83-BLAB-LABLA-BLAB-LABLABLABLAB.mobileprovision" /Users/me/Documents/svn/myapp/trunk/build/Adhoc-iphoneos/myapp.app/embedded.mobileprovision
build/myapp.build/Adhoc-iphoneos/myapp.build/build-state.dat:x/Users/me/Library/MobileDevice/Provisioning Profiles/AD67EE83-BLAB-LABLA-BLAB-LABLABLABLAB.mobileprovision
build/myapp.build/Adhoc-iphoneos/myapp.build/build-state.dat:lSLF07#2#192"ProcessProductPackaging "/Users/me/Library/MobileDevice/Provisioning Profiles/AD67EE83-BLAB-LABLA-BLAB-LABLABLABLAB.mobileprovision" build/Adhoc-iphoneos/myapp.app/embedded.mobileprovision303990620#303990620#0(0"0(0#0#108"/Users/me/Documents/svn/myapp/trunk/build/Adhoc-iphoneos/myapp.app/embedded.mobileprovision8628715392#445" cd /Users/me/Docume <com.apple.tools.product-pkg-utility> "/Users/me/Library/MobileDevice/Provisioning Profiles/AD67EE83-BLAB-LABLA-BLAB-LABLABLABLAB.mobileprovision" -o /Users/me/Documents/svn/myapp/trunk/build/Adhoc-iphoneos/m0#p.app/embedded.mobileprovision
(I replaced the actual ID with BLABLA there, in case you wonder about that.)
In any case, OLD is pulled out from somewhere and restored and used. Insane. I deleted in Organizer and searched my disk for that AD... thing and found a few files in /Users/me/Library/MobileDevices/Provisioning Profiles/ which had the same names.
I deleted those and it still pulls them out from somewhere when i Build & Archive. In fact, those files are put back in that directory as well.
I've gone through all the settings trying to find any reference to this AD... profile, but there's none anywhere.
OLD is tied to "com.oldcorp" and NEW is tied to "com.newcorp" -- doing a grep 'newcorp' reveals
myapp-Info.plist: <string>com.newcorp.myapp</string>
Doing a grep 'oldcorp' gives no results.
Any ideas where it might be referring to this old invalid cert? (It's even removed from the developer portal, so I don't think it's possible for it to download it from Apple directly.)
Update: building and archiving ANY project results in the resurrection of the "oldcorp" distribution profile, so it's not related to my project. Problem remains though - adhoc is non-functional.
Solved this by recreating a project and manually putting code in. Long term solution is in answer below.
I create new User accounts on my Mac when dealing with different developer accounts to prevent XCode caching from creating these types of messes.
That might still provide you with a solution. Create a temporary fresh new User account, install only the private keys, certificates and provisions needed for the new developer account in the new User account, make sure not to use any shared user directories in your build settings, check out your project from source control into the new user account, and run Xcode for your Ad Hoc builds there.