我该如何在iOS模拟器中获取虚假联系人?是否有我可以使用的shell脚本或编辑器来添加我的联系人?
编辑:我使用React Native,所以我不能只是在其中添加一些Swift项目 - 是否有一种命令行工具或将iOS模拟器连接到我的Mac上的联系人应用程序的方法?
我该如何在iOS模拟器中获取虚假联系人?是否有我可以使用的shell脚本或编辑器来添加我的联系人?
编辑:我使用React Native,所以我不能只是在其中添加一些Swift项目 - 是否有一种命令行工具或将iOS模拟器连接到我的Mac上的联系人应用程序的方法?
您可以下载此生成的VCF文件,然后将其拖放到模拟器中以导入(1000)个虚假联系人。我使用Mockaroo创建了这些测试数据。
这是使用一个小的Node.js脚本创建的,它将CSV转换为一个单一的VCF文件 - 您可以将其拖放到iOS模拟器中。这是导入联系人的最简单方法,无需编写代码或安装GitHub上的应用程序(正如其他答案所暗示的那样)。此CSV解析器假定您在文件顶部有三列(名字、姓氏和电话号码)。如果您想添加更多列/变量以进行导入,请根据vCard规范修改您的CSV和下面的解析器。
将下面的脚本保存为 "mock.js",并使用 node mock
运行它(这里是 GitHub gist of it)。假设以下脚本和您的 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'));
如果您正在寻找一种编程的方法来完成这样的事情,simctl是一个不错的工具 -
/usr/bin/xcrun simctl addmedia booted ~/path/to/contact.vcf
NSHipster有一篇很好的文章:https://nshipster.com/simctl/
我忽略了一个重要的事情,那就是必须在编程交互之前“启动”模拟器。
我主要是为了能够使用fastlane进行截屏,所以我在该流程开始时运行此bash脚本。
它会 1.列出所有iOS 13.4设备 2.grep UUIDs并且 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
以下是niftylettuce的答案的更简洁版本,包含Faker数据、图片和额外数据以便生成偶数联系人:
我在寻找相同的解决方案时发现了这个。这是我最终采取的做法:
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
https://github.com/cristianbica/CBSimulatorSeed-Swift
这是一个快速应用程序,您可以在模拟器中构建和运行,为您提供许多联系人。