手动更改自定义框架的 info.plist 是否会在设备上安装时产生问题?

Will changing the info.plist of custom framework manually create problems in installing on device?

我通过加入模拟器和 iphone 架构框架,使用 lipo -create 命令从带有“example.com.a”包标识符的 xcode 项目创建了一个自定义框架。所以默认情况下,它在 info.plist 文件中有一个包标识符“example.com.a”。我可以在我的应用程序中使用这个框架,并且我的应用程序安装在设备上没有任何错误

现在,当我尝试通过手动编辑框架文件夹内的 info.plist 而不是 xcode 项目,将自定义框架的包标识符更改为类似“myapp.custom.framework”的东西时。

这样做我无法在设备中安装 .ipa。它显示“无法安装应用程序”。

所以我的问题是

1) 手动更改包标识符或将键添加到自定义框架的 info.plist 会影响自定义框架功能吗?

2) 要更改自定义框架的包标识符,我们是否需要在主 xcode 项目中更改它?现在我正在框架文件夹中的 info.plist 中更改和添加密钥。

经过长时间的研究和试验,我发现如果我们在自定义框架文件夹中更改 info.plist 中的包标识符,在添加示例项目时会产生错误,而我们需要更改包标识符从框架的 XCode 项目,然后生成 iPhone 和模拟器 .framework 并使用 lipo -create output 将它们组合并创建一个通用库。

步骤如下:

构建和分发 universal/fat 框架: 在框架项目中:

  1. 为模拟器构建xcode框架项目并为设备构建,这将在派生数据文件夹中生成两个框架。

  2. 找到项目的派生数据路径。查找文件夹 Build->Products。里面应该是'-iphoneos'和'-iphonesimulator'。每个里面都有一个 .framework 文件夹。将其中一个 ose 复制到某个不错的文件夹。从每个 ose .frawework 文件夹中,将其中的二进制文件复制到一个文件夹中。

在终端中:

  1. 在终端 运行 中输入命令 lipo -create -output <outputName> <binaryFromiphoneos> <binaryFromiphonesimulator>。这将为模拟器和设备创建一个包含所有架构的胖二进制文件。将复制的.framework目录下的替换成新生成的最好在iPhone platform framework文件夹下。

  2. 运行 lipo -info <framework path> 在终端中了解框架的架构。例如:X86 表示模拟器,arm64,arm7 表示 iphone 设备。

要在另一个应用程序中使用该框架:

  1. Select 项目导航器中的 Project,select 目标和 select General 选项卡。
  2. 将 .framework 文件夹拖到显示 'Add embedded binaries here' 的位置。
  3. 在目标的构建设置中,将.framework文件夹的路径添加到'Framework Search Paths'。
  4. 使用#import 在您的源代码中导入文件<frameworkName/frameworkName.h>