Как автоматически прикреплять информацию об устройстве к новому письму с помощью MFMailComposeViewController

Если вы используете TestFlight для отправки отзыва о бета-версии, он автоматически прикрепляет файл с именем device_information.txt, который содержит некоторую основную информацию об устройстве.

Я хочу сделать кнопку поддержки в своем приложении и использую MFMailComposeViewController для создания нового электронного письма. Как я могу получить (или создать) файл device_information.txt, а затем прикрепить его к новому электронному письму?

Это пример того, что будет содержать файл device_information.txt:

App Information:
App Name: [App Name Here]
App Version: 1.0
Installed App Version: 1.0

Device Information:
Device: iPhone6,2
iOS Version: 12.1.2
Language: en-AU (English)
Carrier: [Carrier Here]
Timezone: [Timezone Here]
Architecture: N/A
Connection Status: Cellular data
Paired Apple Watch: N/A

Как TestFlight достигает этого? Это должно быть возможно, поэтому, если кто-нибудь может направить меня в правильном направлении, я был бы очень признателен.


person Aaron    schedule 25.01.2019    source источник
comment
В чем именно ваша проблема? Прикрепить файл к письму? Получить некоторые из этих данных?   -  person Larme    schedule 25.01.2019
comment
Файл device_information.txt, кажется, скомпилирован TestFlight. Я хотел бы знать, можно ли получить тот же файл, а затем прикрепить его к новому письму. ИЛИ получить некоторые данные и создать свой собственный текстовый файл, а затем прикрепить его к новому электронному письму.   -  person Aaron    schedule 25.01.2019
comment
Я бы сказал, вам придется сделать свой собственный файл.   -  person Larme    schedule 25.01.2019
comment
Хорошо, вы знаете, как я мог бы 1. создать собственный файл на основе информации об устройстве. 2. прикрепите это к новому электронному письму.   -  person Aaron    schedule 25.01.2019
comment
Есть вопрос о StackOverflow для каждой из строк (отдельно), я думаю, а также о том, как прикрепить файл к почте.   -  person Larme    schedule 25.01.2019


Ответы (1)


Вы можете найти большую часть этой информации в классе UIDevice https://developer.apple.com/documentation/uikit/uidevice

Затем вы можете добавить необходимую информацию к тексту письма следующим образом:

   MFMailComposeViewController *controller = [[MFMailComposeViewController alloc] init];
   controller.mailComposeDelegate = self;
   [controller setMessageBody:"your message here" isHTML:NO];

или используя вложение, подобное этому:

    [controller addAttachmentData:data mimeType:@"text/plain" fileName:@"test.txt"];

в Свифте:

let controller = MFMailComposeViewController()
controller.mailComposeDelegate = self
controller.setMessageBody("My message", isHTML:false)
controller.addAttachmentData(data as Data, mimeType: "text/plain", fileName: "test.txt")
person Mosbah    schedule 25.01.2019
comment
Идеально, именно то, что мне было нужно. Не могли бы вы также предоставить addAttachmentData для Swift? - person Aaron; 25.01.2019