我可以将音乐库添加到 Xcode iOS 模拟器吗?

Can I add a music library to the Xcode iOS Simulator?

我正在尝试为 iPhone 和 iPad 创建音乐播放器。 我让它在我的 iPhone 和 iPad 上完美运行,因为它们实际上有一个音乐库。但是我想在测试中使用 fastlane 和其他一些工具,所以我需要能够 see/add 一个音乐库到我的模拟器。

我已导航到我的模拟器文件夹。 /Users/x/Library/Developer/CoreSimulator/Devices/8A14CCDB../Data
但是我不知道去哪里看,也不知道我是否应该看这里来添加音乐。

我希望有人能帮我解决这个问题。我已经搜索过了,但似乎已经有一段时间没有人问过这个问题了。所以这意味着要么每个人都放弃了,要么有可能,但我似乎不知道该怎么做。

so I need to be able to see/add a music library to my simulator as well

你不能这样做。 MPMediaLibrary API 在模拟器上不起作用。

您可以在模拟器上测试您的接口,方法是编写位于您的代码和 MPMediaLibrary API 之间的存根方法,但实际 访问只能在设备上访问用户的音乐库。

尽管人们普遍认为这是不可能的,但由于提到的 link @BaSha,我找到了解决方法。

我在上面写了一些 How To 以便遇到相同问题或认为不可能的每个人都能够让它工作。

要了解它的要点,您需要做一些事情。

  1. 一个 iOS 实际有音乐的设备
  2. iFunBox 或类似的东西
  3. 您要使用的模拟器id

要获取您要测试的设备的 ID,您可以 运行

xcrun simctl list

这将为您提供所有可用模拟器的列表,选择您要使用的模拟器并复制 ID,您将需要它。

现在导航到您刚刚选择的模拟器的目录。

[yourHD] -> Users -> [yourusername] -> Library -> Developer -> CoreSimulator -> Devices -> [the ID you obtained in the previous step] -> data -> Media -> iTunes_Control -> iTunes

现在您必须打开 iFunBox(将带有音乐库的 phone 连接到您的电脑)。在iFunBox中,selectRaw File System。在这里你会发现一个名为 iTunes_Control 的目录,你需要从该目录中复制一些文件和目录到你之前打开的模拟器目录中。即:

Music
iTunes/Artwork
iTunes/MediaLibrary.sqlitedb
iTunes/MediaLibrary.sqlitedb-shm
iTunes/MediaLibrary.sqlitedb-wal

如果您曾经购买过音乐,您还应该获取以下目录 Raw File System/Purchases