Hi Devendra.
Firstly, don't use the Sample Servers. Those are for supporting samples only. They will not support a production app.
Secondly, there are two types of basemaps. Raster Basemaps (with pre-baked pixel-based tiles) and Vector Basemaps (which are rendered on the fly in the client app). When you take them offline, Raster Basemaps will generate a .TPK file and Vector Basemaps will generate a .VTPK file.
Thirdly, we have separate "For Export" raster basemaps and vector basemaps (see here - look at the descriptions to see which are vector). In the case of Raster basemaps, we have separate "For Export" versions to ensure that the performance of our standard basemaps is not impacted by requests to package them up to TPK files. In the case of Vector basemaps, you can generate a .VTPK from the standard or "For Export" versions, and the difference is that the "For Export" versions have fewer fonts embedded so make for a smaller file (usually about 75Mb smaller), though you might not get as rich global labeling so be sure to evaluate the suitability for your needs.
Now, to your issue:
Our basemaps are free but we require authentication to take them offline for measuring usage.
One way to authenticate (which you mention) is with a named user. But another way, which will work in your scenario, is App ID authentication (note that at this time you cannot use App ID authentication to access any private data of yours hosted by us, but that's not relevant in this case). To use App ID you need to obtain a token by hitting the HTTPS token rest endpoint with a POST, passing in client_id, client_secret, a grant_type of "client_credentials", and optionally a duration. See this Swift example. And this documentation.
Using the token you get back from the above REST call, you can create a new Credential which you can use with the calls to take the basemaps offline.
To get the client_id and client_secret above, you must sign up for a free developers account over at ArcGIS for Developers then, in your dashboard, create a new Application. You can get Client ID and Client Secret from the new Application's summary page. Be aware that if someone gets hold of your Client ID and Client Secret, they effectively have access to your account to use up all your credits and manipulate your content so make sure you embed them securely in any app you distribute (if you suspect they've ever leaked, you can just create a new app, but that might involve deploying again).
Note, you can do all that for free as long as you don't make any revenue from your app. If you do make revenue from the app, you will have to sign up for a Builder Plan which allows for commercial app deployment.
Hope this helps.
Nick.