TFS 2017 nuget feed "Payment Required" - tfs

I have a TFS 2017 server set up with a Nuget feed for my local packages. All of my developers have been using it without any issue. However, I added a new developer today and he is not. When he attempts to connect, he gets the error message "402 Payment Required." He is set up with the same permissions and group memberships and my other developers and can access all other parts of the TFS server. Any idea what would be going on here?

At any point, you can have 5 users in your account using the 5 free Package Management licenses. You can check the items below:
Go to http://tfsserver:8080/tfs/DefaultCollection/_admin/_userHub to make sure the user have assigned a Package Management license.
As users with a VS Enterprise subscription (http://tfsserver:8080/tfs/_admin/_licenses) automatically have access to Package Management, while users 6+ (that don't have VS Enterprise) need a license. You need to check whether other users have VS Enterprise subscription.
Clean TFS cache which usually locates in %TfsData%ApplicationTier\_fileCache.

From the documentation:
Get started with the first 5 users free! Additional users will need to
purchase Package Management to consume (i.e. nuget restore or npm
install) or produce (i.e. nuget push or npm publish) packages.

Related

How do I create a provisioning profile that allows developers on my team or clients to use early-stage builds of an unreleased app?

Context: We're an app development agency that has recently enrolled in the (paid) Apple Developer Program as an organization.
Problem: We'd like to both
a.) easily share WIP iOS projects with other team members so that they can test the software on their own iPhones or iPads
b.) easily share WIP iOS projects with clients so they can give feedback on next steps.
Our current process is that we get the device UDIDs for every work device of every developer on our team and also for our clients. Once we have those UDIDs, we create a brand new provisioning profile and then compile (or "archive" in Xcode terminology) the WIP app using this profile.
But this has downsides:
code that we've already compiled must be recompiled when the client sends us a new device (e.g. adding the iPhone UDID of a new project manager on their team)
despite every developer on our own team being connected to our organization as a developer-class user in App Store Connect > Users, I don't know of any way to compile (/
"archive") an IPA such that anyone on my team can run it on their phone.
Does anyone have any ideas on how to solve this pair of problems? Any pointers are highly appreciated.
Our org has an “enterprise” profile, used to archive a daily IPA which is published as a “Beta” build via a pipeline. Anybody in the org (without being devs) can just install the app, like you'd do from the App Store.
For hosting the app/build, you can use MS App Centre, which should solve your use case (and it also offers a free tier, to experiment and get a hang of it).

How can I get developer builds of an iOS app on team members devices remotely?

I am working on a remote team. I am the only developer, and the other members of the team are generally non-technical roles (design and management). I am developing the app in flutter, and have very limited experience deploying on iOS.
I want to be able to get development builds (not feature complete or fully functional) of the app on team members devices remotely (I can not just plug their phone into my machine).
Is this possible some way? The amount of people I need to distribute to is only a couple, and they could all be team members to the development account. But ideally the amount of interaction they would need with developer tools should be limited.
Well, you scared off a correct answer. But it was still correct, so I will repeat it.
Add the users emails as internal testers and upload your build to TestFlight. Then they can install and test your app.
No review is done for a build that goes only to internal testers.
I can assure you that this works. Professional Agile development houses use this technique to distribute even very early incomplete builds to clients and QA.

Organizational Licensing

We are getting ready to release the iOS version of our application in the app store. The current model is a free, limited functionality base version with additional functionality unlocked with an in-app purchase or, alternatively, with a code that the customer received when they purchased the software on a different platform.
However, we also have institutional customers who purchase site licenses directly from us and are given access to our software on all of our supported platforms (Windows, macOS, etc). Once the iOS version is released, we also want to allow them to install it to their iOS devices using their current MDM system.
In the Microsoft store we were able to distribute a signed license file to the organizations IT group, who was then able to include that file with the app when it was pushed out to their devices. The license file contained the domain identifier for the organization, so the device had to be connected to their domain in order to be able to run the application. Is there something similar in iOS for devices that are managed by an organization (i.e. an identifier that apps can access that says if they are being managed by a specific organization)? And can MDM systems specify a file or other data that is included with an app?
As a second potential option, I see in App Store Connect we can specify specific organizations to give the app to. I suppose we could create a second, free, unlocked version of the app that only specific organizations can access. However, it seems like a bit of a nightmare to manage long term (especially when it comes to things like time limited site licenses). Apple's documentation says that this options is only available before the app is approved. Does that mean that organizations can't be added or removed at will once the app has been released?
Any guidance on how to handle this situation would be greatly appreciated!
Most major MDM solutions support the AppConfig.org standards that allow you to distribute an XML file as part of a managed configuration. This XML file can be read through UserPreferences.
Presumably you could supply your license as a base 64 encoded cryptographic object that the client could add to the managed configuration. Your app can then check for this value, decode it and provide the appropriate functionality.

What Apple iOS Developer user types can create new provisioning files?

For iTunes we create technical users which manage all tasks regarding handling app from testing to publishing.
Can I create a similar user in Apple iOS Developer console which can access only provisioning part to create provisioning profiles, add devices, etc. ?
Only a team agent can work in the provisioning portal...
I had to use the team agent user of a client of mine when we released an app recently.
Normally I just use the team agent user anyway, or sit beside the team agent and guide him/her through each step. But that recent client Didn't give me access to team agent (at first) but gave me a technical user, or admin, I cannot remember. But I requested the team agent after failing to access the provisioning portal.
The team agent is the only user authorized to do provisioning, unless something in Apple policy or Xcode behavior has changed since the last time I looked it up.

Irrelevant iOS Team Agent License Agreement message

I am a member of two development teams in the Developer Portal. One team is no longer in existence and is not being maintained by the team's "Agent".
Now herein lies my problem. I am trying to refresh my provisioning profiles in Xcode, but continually get a message telling me to have the team agent for the non-existent team to agree to current terms. Again, that team is no longer active, the developer no longer works for the company, etc., etc.
On the other hand, the team for which I am trying to do work has all agreements current. Is there any workaround for getting past this message then?
This is happening because your Apple ID is associated with more than one developer account. The refresh operation first hits the developer portal and runs refresh on each developer program that it finds you associated with. Unfortunately, if the un-maintained account lists first then it will fail the entire refresh operation.
Now given that the agent is not maintaining the program, I'd hazard a guess that getting in touch with that individual to remove you from the program is also off the table. Your next best bet is to contact Apple Developer Support and let them know that the Team Agent is not reachable and as a result you are unable to remove yourself from that un-maintained account which is causing you pain when it comes to Xcode Organizer operations. Once you get removed from that account, that should resolve the problem with the refresh operation as it will then only find your single maintained account to refresh. It would also be a good idea to remove any stray Certificates and Provisioning Profiles associated with the unmaintained account so that Xcode doesn't have an opportunity to spaz over not being authorized for the un-maintained account.
In the interim, your only option is to use the Certificates, Identifiers, and Profiles tool to download provisioning profiles manually. When you download new files, take an extra moment to delete the old ones to minimize confusion between older and newer versions of the profiles.

Resources