App Extension的target的Build Phases中,在Link Binary With Libraries中添加所需连接framework。
framework若为单独的Xcode项目,其Build Setting中的Require Only App-Extension-Safe API字段要设置为YES。若framework还依赖其他的framework项目,其他的framework项目也要把Require Only App-Extension-Safe API设置为YES。
通过Build Setting中的Mach-O Type可得知framework是动态库还是静态库。若是动态库,需要在主APP的target的Build Phrase中,Embed Frameworks中添加framework,Destination要设置为Frameworks。这样动态库就复制到主app的Framework里。
苹果不允许将framework复制到App Extension的bundle里。
补充说明:
我们在上架App Store的时候,在Validate App操作中得到报错
Invalid Bundle. The bundle at '**.app/PlugIns/**.appex' contains disallowed nested bundles.
Invalid Bundle. The bundle at '**.app/PlugIns/**.appex' contains disallowed file 'Frameworks'
正确设置App Extension连接framework后,问题得到解决。