Apple的iOS配置门户中添加了导出设备

时间:2013-04-17 06:11:20

标签: iphone iphone-developer-program

我的苹果开发者即将在5天后过期。续订后,我希望将我的设备数量恢复到100,但同时我想将所有当前添加的设备导出为备份供将来使用,这些是87台设备。

在新的苹果开发者部分,我没有看到任何导出所有设备的选项,我也不想复制粘贴所有87个设备:(

注意: 我想以Apple要求的格式导出多个设备插入设备。

10 个答案:

答案 0 :(得分:31)

如果您正在寻找一个不需要额外软件,录音或摆弄正则表达式的选项,这里有一个JavaScript代码段,您可以在Chrome(或我认为,任何其他浏览器的)JavaScript控制台中运行获取格式正确的设备列表:

var ids = ["Device ID"];
var names = ["Device Name"];
$("td[aria-describedby=grid-table_name]").each(function(){
    names.push($(this).html());
});
$("td[aria-describedby=grid-table_deviceNumber]").each(function(){
    ids.push($(this).html());
});

var output = "";
for (var index = 0; index < ids.length; index++) {
    //output += names[index] + "\t" + ids[index] + "\n";    //original
    output += ids[index] + "\t" + names[index] + "\n";      //post September 2016
}
console.log(output);

完整导出将记录到控制台,此时您只需将其复制/粘贴到空文本文档中,然后可以随时将其重新导入Apple。

这与Apple目前的开发者网站布局一致,截至2015年4月。显然,如果他们改变了东西,它可能会破裂。

答案 1 :(得分:9)

打开list of devices safari,chrome或firefox&amp; firebug。打开Web检查器(safari中的opt-cmd-i),进入仪器选项卡(ctrl + 3)。按“开始录制”按钮并刷新页面。

在出现的列表的最底部找到“listDevices.action”并选择它。在Web检查员副本的右栏中。粘贴完整URL并下载带有设备列表的JSON文件。然后,用一个简单的正则表达式(即/ \“name \”:\“([^ \”] +)\“,\ n \ s * \”deviceNumber \“:\”([^ \“] +)\ “/)您可以获取设备的名称和号码。

Apple接受上传的格式为

Device ID   Device Name
A123456789012345678901234567890123456789    NAME1
B123456789012345678901234567890123456789    NAME2

更新:
啊! Apple现在在“iOS设备”页面上提供了完整的设备编号,因此它使整个过程更容易。复制粘贴列表,例如,Sublime文本,并按正确顺序放置设备的名称和编号:

找到:/^(。*)+([^ \ n] +)\ n /
替换:\ 2 \ t \ 1 \ n

答案 2 :(得分:4)

以上都不适合我,很可能是因为Apple更改了格式。但是完美的工作是:

  • 复制/粘贴Apple设备页面中的所有项目
  • 粘贴到Numbers中,设备ID和名称被识别为2个不同的列
  • 拖动列顺序,因此设备是第一个而不是名称
  • 将所有行复制/粘贴到文本文件中
  • 上传到Apple,您已完成

答案 3 :(得分:3)

您可以使用命令工具调用Spaceship,它会公开Apple Developer Center和iTunes Connect API

以下是我将所有设备从Apple Developer帐户迁移到第二个帐户的方法。

spaceship1 = Spaceship::Launcher.new("account1@email.com", "password")
spaceship2 = Spaceship::Launcher.new("account2@email.com", "password")

#Get all devices from the Apple Developer account 1.
devices = spaceship1.device.all

#Loop through all devices from account 1 and then add/create them in account2.
devices.each do |device| spaceship2.device.create!(name: device.name, udid: device.udid) end

注意:要在您的终端中快速使用太空船启动irb并执行“太空飞船”。

答案 4 :(得分:3)

从2019年9月开始,我创建的此代码段(上面T.Nhan的答案和Apple的上传格式指南的混合)通过仅将输出保存为.txt文件并上传而可以立即使用:< / p>

var data = document.querySelectorAll(".infinite-scroll-component .row");

var deviceListString = "Device ID\tDevice Name\tDevice Platform\n"
for (var i = 1; i < data.length; i++) {
  deviceListString += (data[i].childNodes[1].innerText + "\t" + data[i].childNodes[0].innerText + "\t" + (data[i].childNodes[2].innerText == "iPhone" || data[i].childNodes[2].innerText == "iPad" || data[i].childNodes[2].innerText == "Apple Watch" ? "ios" : "mac") + "\n");
}

console.log(deviceListString);

答案 5 :(得分:1)

查看Mattt's命令行界面工具Cupertino

您可以运行ios devices:list来获取帐户中的设备列表。

它可能不是Apple的导入程序的确切格式,但它应该让你很好,还有ios devices:add可以让你从命令行重新添加你的设备。

答案 6 :(得分:1)

如今,Apple不再拥有JQuery。我们可以使用此查询来获取

var data = document.querySelectorAll(".infinite-scroll-component .row");
for(var i = 0 ; i < dencho.length; i++){
  var name =  data[i].childNodes[0];
  var id =  data[i].childNodes[1]
  console.log(name.innerText + "\t" +  id.innerText  + "\n");
}

答案 7 :(得分:1)

自最新回应以来,网页结构似乎已被编辑了一点。我的新代码段还将输出格式设置为CSV,因此您可以保存输出并使用Numbers / Excel打开并共享。

var data = document.querySelectorAll(".infinite-scroll-component .row");
var csvOutput = "Name, Identifier, Type\n"

for (var i = 1; i < data.length; i++) {
    let name = data[i].childNodes[0].childNodes[0].textContent;
    let identifier = data[i].childNodes[1].childNodes[0].textContent;
    let type = data[i].childNodes[2].childNodes[0].textContent;
    let device = [name, identifier, type].join(", ") + "\n";
    csvOutput += device;
}

console.log(csvOutput);

答案 8 :(得分:0)

我的解决方案是创建新的配置文件here 并添加所有设备。然后下载并使用vim(或任何其他编辑器)打开。该文件将包含一些二进制样式和plist(xml)以及所有设备,我猜这可以解析,但我只是c&amp; p设备列表。 Smth喜欢:

<key>ProvisionedDevices</key>
   <array>
       <string>device1 udid</string>
       ....
       <string>deviceN udid</string>
   </array>

如果您之后不需要,请删除您的配置文件。

答案 9 :(得分:0)

就我而言,我还想获取设备型号(例如,iPhone X、iPhone 8....) 您可以使用对象 var object = JSON.parse(this.responseText);

获取基于 UDID 的任何设备信息
var data = document.querySelectorAll(".infinite-scroll-component .row");
var deviceListString = ""
var databody = JSON.stringify({
  teamId: 'XXXXXXXX' // your team id here
})

for (var i = 1; i < data.length; i++) {
    var xhr = new XMLHttpRequest()
    xhr.withCredentials = true
    xhr.addEventListener('readystatechange', function() {
        if (this.readyState === this.DONE) {
            var object = JSON.parse(this.responseText);
            deviceListString += object.data.attributes.name + "\t" + object.data.attributes.model + "\t" +object.data.attributes.udid + "\n";
        }
    })

    var rowID = data[i].getAttribute('data-id');
    var url = `https://developer.apple.com/services-account/v1/devices/${rowID}?fields[devices]=name,udid,platform,model,status,devicePlatformLabel`
    xhr.open('POST', url);
    xhr.setRequestHeader('content-type', 'application/vnd.api+json');
    xhr.setRequestHeader('x-http-method-override', 'GET');
    xhr.send(databody);
}

当你输入 enter 时,结果存储在 deviceListString 中 所以只要得到那个值

deviceListString

这是截图: enter image description here