我的苹果开发者即将在5天后过期。续订后,我希望将我的设备数量恢复到100,但同时我想将所有当前添加的设备导出为备份供将来使用,这些是87台设备。
在新的苹果开发者部分,我没有看到任何导出所有设备的选项,我也不想复制粘贴所有87个设备:(
注意: 我想以Apple要求的格式导出多个设备插入设备。
答案 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更改了格式。但是完美的工作是:
答案 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)
您可以运行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);
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