如何在iOS模拟器中获取虚假联系人?是否有我可以使用的shell脚本或我的联系人的编辑器?
编辑:我使用React Native所以我不能在那里抛出一些Swift项目 - 是否有一个命令行工具或方法将iOS模拟器连接到我的Mac上的Contacts应用程序?
答案 0 :(得分:25)
您可以 download this generated VCF file ,然后将其拖放到您的模拟器中以导入(1000)虚假联系人。我使用模拟数据生成网站Mockaroo创建了此测试数据。
这是使用一个小Node.js脚本创建的,该脚本采用CSV并将其转换为一个单独的VCF文件 - 然后您可以将其拖放到iOS模拟器中。这是导入联系人的最简单方法,无需代码或GitHub需要安装应用程序(正如其他答案所暗示的那样)。此CSV解析器假设您在文件顶部有三列(名字,姓氏和电话号码。如果您想添加更多列/变量以进行导入,只需根据{{修改您的CSV和解析器。 3}}
将以下脚本保存为" mock.js"并使用node mock
运行它(这里是GitHub vCard spec)。这假定下面的脚本以及您的CSV文件(例如" MOCK_DATA.csv")位于同一目录中。运行此脚本的输出将是名为" vcards.vcf"的文件。
const fs = require('fs');
const csv = fs.readFileSync('./MOCK_DATA.csv', 'utf8');
const records = csv.split('\n').slice(1);
const VCARDS = [];
records.forEach(function(record, i) {
const data = record.split(',');
const VCARD = [
'BEGIN:VCARD',
'VERSION:4.0',
`N:${data[1]};${data[0]};;;`,
`FN:${data[0]} ${data[1]}`,
`TEL;type=HOME:${data[2]}`,
'END:VCARD'
].join('\n');
VCARDS.push(VCARD);
});
fs.writeFileSync(`./vcards.vcf`, VCARDS.join('\n'));
答案 1 :(得分:2)
比特清洁版niftylettuce的回答,包含Faker数据,图片和额外数据,用于均匀编号的联系人:
答案 2 :(得分:1)
如果您正在寻找一种编程的方式来做这种事情,那么simctl是一个不错的工具-
/usr/bin/xcrun simctl addmedia booted ~/path/to/contact.vcf
NSHipster的文章很棒:https://nshipster.com/simctl/
我忽略的关键一件事是,必须先“启动”模拟器,然后才能进行编程交互。
我主要是为了能够使用fastlane截屏,而我在该通道的开头运行此bash脚本。
它1.列出所有ios 13.4设备2.抓住UUID,并3.循环遍历每个模拟器以启动它,添加vcf并关闭它
运行需要几分钟,但是对我来说,打开所有模拟器并拖动VCF还是很不错的。我还清除了模拟器数据,因为这里没有重复数据删除。
#!/bin/bash
xcrun simctl list devices 'iOS 13.4' \
| grep -E -o -i "([0-9a-f]{8}-([0-9a-f]{4}-){3}[0-9a-f]{12})" \
| while read line ; do
xcrun simctl boot $line
/usr/bin/xcrun simctl addmedia booted PathTo.vcf
xcrun simctl shutdown $line
done
答案 3 :(得分:0)
我在寻找同样的事情时发现了这一点。这是我最终做的事情:
for i in {0..100}
do
echo "BEGIN:VCARD\n
VERSION:4.0\n
PRODID:-//BBros.us llc//bvCard.com//EN\n
N:User"$i";TEst;;;\n
FN:TEst User"$i"\n
EMAIL:test.user"$i"@domain.com\n
ORG:Great Business\n
END:VCARD" > "File$(printf "%03d" "$i").vcf"
done
在终端我改为测试文件夹,然后在那里运行这个脚本。它创建了VCard文件,然后我将它们拖动到正在运行的模拟器窗口并将它们放在模拟器上。这导致模拟器打开联系人并导入它们。
我希望这会有所帮助。
*更新* 所以一旦我更新了Xcode,我现在只能一次导入一个联系人,这并不理想。这引出了另一个解决方案:
https://github.com/cristianbica/CBSimulatorSeed-Swift
这是一款可以构建的快速应用程序。在模拟器中运行,为您播种许多联系人。