因此,在寻找解决方案后,我找到了以下答案:
如果要将MyEmbeddedFramework.framework添加到应用程序中,请执行以下操作:
- 在选项卡“General > Embedded Binaries”中删除 MyEmbeddedFramework.framework。
- 如果“Build Phases”中有MyEmbeddedFramework.framework,请删除复制阶段“Frameworks”。
- 清除构建文件夹。
- 将MyEmbeddedFramework.framework移动到void Embedded Frameworks部分。
- 您现在会发现XCode6创建了一个新的Build Phase > Embedded Frameworks(不是您,而是自动完成的)。
- 如果您达到了第5步,则应该可以运行而无需出现错误。
因此,为了使其正常工作,您应在以下位置看到MyEmbeddedFramework.framework:
A) General > Embedded Binaries
![General > Embedded Binaries](https://istack.dev59.com/oqUOV.webp)
B) Build Phase > Embedded Frameworks
![Build Phase > Embedded Frameworks](https://istack.dev59.com/R64DV.webp)
在 iPhone5/iOS8 上它可以正常工作,但不适用于 iPhone4S/iOS7,在那里我遇到了如下问题:
dyld: Library not loaded: @rpath/ObjectiveLyricsTouch2.framework/ObjectiveLyricsTouch2
Referenced from: /var/mobile/Applications/739D9C44-3B91-4D4F-805B-83BE66C9CBCA/musiXmatch.app/musiXmatch
Reason: no suitable image found. Did find:
/private/var/mobile/Applications/739D9C44-3B91-4D4F-805B-83BE66C9CBCA/musiXmatch.app/Frameworks/ObjectiveLyricsTouch2.framework/ObjectiveLyricsTouch2:
不兼容的cpu-subtype: 0x0000000B 在 /private/var/mobile/Applications/739D9C44-3B91-4D4F-805B-83BE66C9CBCA/musiXmatch.app/Frameworks/ObjectiveLyricsTouch2.framework/ObjectiveLyricsTouch2中。
问题出在嵌入式框架上。我需要:
1)将体系结构设置为默认值
2)将有效体系结构设置为:armv7、armv7s和armv64(如苹果建议,需要armv64才能使嵌入式框架正常工作)。
然后我就能在以下设备上运行带有嵌入式框架的应用程序:
- iPhone5S/iPhone5C iOS8
- iPhone5S/iPhone5C iOS7
- iPod 5th gen / iOS7
- iPhone4S / iOS7
- iPhone4 / iOS7
但无论如何当提交到iTunesConnect时,我都会得到一些关于最低要求版本的错误:
- 框架“...”的MinimumOSVersion无效。最小值是iOS 8.0;
- 无效体系结构:包括应用扩展和框架的应用程序必须支持arm64;
![Embedded Framework Issues](https://istack.dev59.com/e5qbl.webp)