有没有办法导出 Testflight 外部测试人员的电子邮件

Is there a way to export Testflight external tester emails

iTunes connect 似乎没有从 Prerelease > External testers

基本导出用户电子邮件

需要将电子邮件导出为 CSV

有人有脚本或解决方法吗?

谢谢!

还没有。您只能导入一个 csv 文件,而不能从那里的用户创建一个。

您可以复制行,在 TextEdit/Notepad 中按以下格式编辑它们: 名字、姓氏、电子邮件

并将其保存为 csv 文件,以便稍后导入这些电子邮件时使用。

如果他们实现自动执行此操作,或者至少可以选择将更新发送到您可以创建的特定组,那就太好了。

编辑:

下面的方法很简单 - 有一个很棒的 ruby gem 用于管理名为 Fastlane pilot 的试飞测试人员。我会建议改为调查:https://github.com/fastlane/fastlane/tree/master/pilot


找到一个 google chrome 可以完成这项工作的扩展程序:

Table 捕获:https://chrome.google.com/webstore/detail/table-capture/iebpjdmgckacbodjpijphcplhebcmeop/reviews?hl=en

还需要过滤掉重复项,这可以使用 Google 电子表格

我做了一个小控制台 hack,只提取电子邮件。根据您的喜好进行改进:-)

https://gist.github.com/larsparendt/a67d25b1611db67ba67b

只需使用控制台获取电子邮件、名字、姓氏

将其粘贴到控制台 https://gist.github.com/creaoy/80d1092283a5d0fa1070

您可以使用 pilot(来自 Fastlane)来做到这一点:

导出为 CSV 文件:fastlane pilot export

$ fastlane pilot list

+--------+--------+--------------------------+-----------+
|                    Internal Testers                    |
+--------+--------+--------------------------+-----------+
| First  | Last   | Email                    | # Devices |
+--------+--------+--------------------------+-----------+
| Felix  | Krause | felix@krausefx.com       | 2         |
+--------+--------+--------------------------+-----------+

+-----------+---------+----------------------------+-----------+
|                       External Testers                       |
+-----------+---------+----------------------------+-----------+
| First     | Last    | Email                      | # Devices |
+-----------+---------+----------------------------+-----------+
| Max       | Manfred | email@email.com            | 0         |
| Detlef    | Müller  | detlef@krausefx.com        | 1         |
+-----------+---------+----------------------------+-----------+

由于 iTunes Connect 现在是一个 angular 应用程序,因此此页面上的许多答案不再有效。但是 如果您有 Chrome 的 Angular/Batarang 扩展名,您可以将此脚本粘贴到控制台 (cmd+i) 中,它会输出一个 csv。请注意,首先 您必须检查列表中的项目 (cmd + shift + c) 以获得对 $scope 的引用。也不要忘记向下滚动以使页面自动加载整个列表。

var text = ''; 
angular.forEach($scope.filteredTesters, function(val) {
    text += val.firstName.value + ',';
    text += val.lastName.value + ',';
    text += val.emailAddress.value + '\n';
}); 
var a = document.createElement("a"); 
var file = new Blob([text], {type: 'text/csv'});
a.href = URL.createObjectURL(file); 
a.download = name; a.click();

如果您只需要电子邮件并且有一个可以替换正则表达式的文本编辑器,您可以这样做

  1. 滚动到 itunesconnect 中的列表底部,这样您就可以获得所有行
  2. 将所有行复制到您选择的文本编辑器中(我使用的是 sublime text)
  3. ^.*\n\n 替换为 <empty string>。这将删除所有名称
  4. \n\s\n 替换为 ,
  5. \n 替换为 ,

您会得到所有电子邮件的 CSV 文件

经过反复试验(因为我很绝望),我找到了一条出路,低科技之路

转到 Activity > iOS 历史 > 所有构建 > 测试人员

在此页面上,您可以查看所有外部和内部测试人员的电子邮件、姓名、状态、会话、崩溃和设备。 Select 所有行并将它们粘贴到 excel。它将很好地显示每个单元格中的所有信息 :) Select excel 中的第一列,您只有所有电子邮件。

我扩展了 creaoy 的脚本以包含状态 (Notified/Installed x.xx)。今天对我仍然有效。

一直向下滚动,以便加载所有测试人员。然后将其粘贴到 Safari 的错误控制台并按回车键。

var text = ''; 
$('.col-email').each(function(index,el) { 
if (index == 0) {
    text = 'Email, First Name, Last Name, Status\n';
}
else {
    //Email
    text = text + $.trim($(el).find("a").text()) + ',';
    //First Name
    text = text + $.trim($($($($('.col-name')[index]).find("span")[0]).find("span")[0]).text()) + ',';
    //Last Name
    text = text + $.trim($($($($('.col-name')[index]).find("span")[0]).find("span")[1]).text()) + ',';
    //Status
    text = text + $.trim($($($($('.col-status')[index]).find("div")[0]).find("span")[0]).text()) + '\n';
}
}); 
var a = document.createElement("a"); 
var file = new Blob([text], {type: 'text/csv'});
 a.href = URL.createObjectURL(file); 
 a.download = name; a.click();

一些很好的答案,但想添加另一个选项。 BoardingBot 是一个 tool that lets you send TestFlight 自动邀请,以及电子邮件给您的 Beta 测试员。因此,这可能会满足您联系 Beta 测试人员的需要。

免责声明:我是 BoardingBot 的创始人 :)

如果像我一样你也需要日期这是你需要的代码:

var text = ''; 
$('.col-email').each(function(index,el) { 
if (index == 0) {
    text = 'Email, First Name, Last Name, Status, Date\n';
}
else {
    //Email
    text = text + $.trim($(el).find("a").text()) + ',';
    //First Name
    text = text + $.trim($($($($('.col-name')[index]).find("span")[0]).find("span")[0]).text()) + ',';
    //Last Name
    text = text + $.trim($($($($('.col-name')[index]).find("span")[0]).find("span")[1]).text()) + ',';
    //Status
    text = text + $.trim($($($($('.col-status')[index]).find("div")[0]).find("span")[0]).text()) + ',';
 //Date
 text = text + '\"' + $.trim($($($($('.col-status')[index]).find("div")[0]).find("span")[2]).text()) + '\"\n';
}
}); 
var a = document.createElement("a"); 
var file = new Blob([text], {type: 'text/csv'});
 a.href = URL.createObjectURL(file); 
 a.download = name; a.click();

我想出了一个 jQuery 解决方案,可以将这些数据以 CSV 格式输出到控制台。它取决于页面选择器的设置方式,但截至目前(2017 年 9 月),它运行良好。

在浏览器上打开控制台(我使用 Chrome),复制并粘贴此代码,然后按回车键。又快又脏。

编辑

我在这里从guido的回答中借用了一些代码,在点击回车后触发自动下载。

output = "email,first name,last name\n";

jQuery('table.table-itc-testers tr[ng-repeat*="itcUser"]').each(function(){
    row = [];

    //Email Address
    row.push(jQuery(this).find('span a[href*="users_roles"]').text());

    // First and last name
    full_name = jQuery(this).find('td.sorted > span:not(.ng-hide)');

    // If only name is filled out
    if(full_name==""){
        row.push("");
        row.push("");
    } else {
    row.push(full_name.clone().children().remove().end().text().trim());
        row.push(full_name.find('span.lastname').text());
    }

    output += row.join(",") + "\n";
});

var a = document.createElement("a"); 
var file = new Blob([output], {type: 'text/csv'});
a.href = URL.createObjectURL(file); 
a.download = 'external_testers.csv'; a.click();

快速更新新答案:iTunes Connect 现在在页面右侧有一个易于使用的下载按钮!