AppCenter: загрузка файлов сертификатов для конфигурации сборки iOS с использованием API

#c# #.net

#c# #.net

Вопрос:

Центр приложений утверждает, что он может выполнять все этапы сборки и развертывания с помощью API. Файлы сертификатов необходимо загрузить для настройки параметров сборки iOS. (.p12 и .mobileprovision) Существует ссылка, которая описывает это. Но он не содержит примера, и я думаю, что у меня проблема с загрузкой моих файлов. Вот мой код для загрузки файла в appcenter:

         private async Task<string> AppCenterUpload(string filePath, string orgName, string appName)
    {
        var createAssetReq = new RestRequest($"/v0.1/apps/{orgName}/{appName}/file_asset");
        createAssetReq.AddHeader("X-API-TOKEN", apiKey);
        var createAssetRes = await appCenterClient.PostAsync<dynamic>(createAssetReq);
        string assetId = createAssetRes["id"];
        string uploadDomain = createAssetRes["uploadDomain"];
        string urlEncodedToken = createAssetRes["urlEncodedToken"];

        double fileSize = new FileInfo(filePath.ToString()).Length;

        var fileName = filePath.Substring(filePath.LastIndexOf("/")   1);
        var uploadProcessReq = new RestRequest($"{uploadDomain}/upload/set_metadata/{assetId}?file_name={fileName}amp;file_size={fileSize}amp;token={urlEncodedToken}");
        uploadProcessReq.AddHeader("X-API-TOKEN", apiKey);
        var uploadProcessRes = await appCenterClient.PostAsync<dynamic>(uploadProcessReq);
        JsonArray chunkList = uploadProcessRes["chunk_list"];
        long chunkSize = uploadProcessRes["chunk_size"];
        string id = uploadProcessRes["id"];
        
        var item = System.IO.File.ReadAllBytes(filePath);
        int startIndex = 0;
        for(int i =0; i< chunkList.Count(); i  )
        {
            int chunkLength = chunkSize > item.Count() ? item.Count() : (int)chunkSize;
            byte[] buffers = new byte[chunkLength];
            Array.Copy(item, startIndex, buffers, 0, chunkLength);
            startIndex = chunkLength;
            var startUploadReq = new RestRequest($"{uploadDomain}/upload/upload_chunk/{id}?block_number={chunkList[i]}amp;token={urlEncodedToken}");
            startUploadReq.AddJsonBody(buffers);
            await appCenterClient.PostAsync<dynamic>(startUploadReq);
        }

        var latestReq = new RestRequest($"{uploadDomain}/upload/finished/{id}?token={urlEncodedToken}");
        latestReq.AddHeader("X-API-TOKEN", apiKey);
        var resx = await appCenterClient.PostAsync<dynamic>(latestReq);
        bool result = resx["error"];

        if (result) return null;
        return id;
    }
 

Я думаю, что у меня проблема с загрузкой фрагментов байтов при передаче их в качестве тела запроса. Есть ли у вас какие-либо идеи для решения этой проблемы? Или, может быть, я ошибаюсь.