在ios主应用和扩展程序

时间:2017-04-15 18:49:13

标签: ios itunesconnect itunes ios-app-extension ios-frameworks

我有一个ios应用及其照片扩展程序。我有一些主应用程序和扩展程序都需要的动态框架。但我正在努力使主应用程序和共享应用程序可以使用动态框架,以便将应用程序上传到iTunes连接。我的应用程序的最终ipa的包装结构看起来像这样:

MyApp.app/Frameworks - 我将此文件夹中所有必需的动态框架复制为复制文件构建阶段的一部分

MyApp.app/Plugins/MyAppPhotoExtension.appex / - 包含扩展程序及其所需的其他资源的可执行文件。

我尝试了以下方法,为扩展程序提供了所需的动态框架:

  1. 在此处创建MyApp.app/Plugins/MyAppPhotoExtension.appex/Frameworks和创建符号链接文件夹到MyApp.app/Frameworks主应用程序中的动态框架。
  2. 这很好用,扩展程序能够在运行时找到框架。但是在将此ipa上传到iTunes时,我会遇到以下错误:

    错误ITMS-90035 :"签名无效。密封的资源缺失或无效

    错误ITMS-90206 :"无效的捆绑包。捆绑在' MyApp.app/PlugIns/MyAppPhotoExtension.appex'包含不允许的文件'框架'。"

    1. 在此处创建一个文件夹MyApp.app/Plugins/MyAppPhotoExtension.appex/Frameworks并复制所需的动态框架。所以ipa中有一些动态框架的副本。但是现在我在将ipa上传到iTunes时遇到以下错误:
    2. 错误ITMS-90685 :" CFBundleIdentifier碰撞。有多个捆绑包含CFBundleIdentifier值' [某些值]'在iOS应用程序' MyApp.app'。"

      错误ITMS-90205 :"无效的捆绑包。捆绑在' MyApp.app/PlugIns/MyAppPhotoExtension.appex'包含不允许的嵌套包。"

      错误ITMS-90206 :"无效的捆绑包。捆绑在' MyApp.app/PlugIns/MyAppPhotoExtension.appex'包含不允许的文件'框架'。"

      有谁能让我知道在主应用程序及其扩展程序之间共享动态框架的正确方法是什么?扩展应该能够在运行时找到所需的动态框架。 有没有人这样做过,并将应用程序成功上传到iTunes?

1 个答案:

答案 0 :(得分:0)

如果你想在你的应用程序和扩展程序中使用相同的框架,你应该在你的Podfile中创建一个新的目标,然后将你的框架挂在那里..在项目的同一个podfile中

providers: [
  GoogleMaps
]