pods_root和其他PODS ENV变量编译离子应用程序未设置



我构建了一个使用Intercom(第三方扩展程序)的离子2应用程序。对Intercom是使用Cocoapods安装的。

编译我的应用程序时,我会出现错误:

diff: /Podfile.lock: No such file or directory
diff: /Manifest.lock: No such file or directory
error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.

这是由构建阶段[CP] Check Pods Manifest.lock生成的:

diff "${PODS_PODFILE_DIR_PATH}/Podfile.lock" "${PODS_ROOT}/Manifest.lock" > /dev/null
if [ $? != 0 ] ; then
    # print error to STDERR
    echo "error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation." >&2
    exit 1
fi
# This output is used by Xcode 'outputs' to avoid re-running this script phase.
echo "SUCCESS" > "${SCRIPT_OUTPUT_FILE_0}"

我尝试从上面的脚本中输出STDERROR echo中的环境变量PODS_PODFILE_DIR_PATHPODS_ROOT,两者都是空白的。我可能会通过自己修改这些道路来解决这个特定的错误,但是显然还有其他更基本的事情被打破了,因此我需要解决实际问题本身。

为什么这些变量空白?

我还有[CP] Copy Pods Resources[CP] Embed Pods Frameworks的其他构建阶段,该阶段运行了一些Shell脚本。我尝试在没有运气的情况下更改这些顺序。

我的podfile.lock and podfile(无论如何是自动生成的)似乎都不错:

podfile:

# DO NOT MODIFY -- auto-generated by Apache Cordova
platform :ios, '8.0'
target 'niix' do
    project 'niix.xcodeproj'
    pod 'Intercom', '~> 3.2.2'
end

podfile.lock:

PODS:
  - Intercom (3.2.12)
DEPENDENCIES:
  - Intercom (~> 3.2.2)
SPEC CHECKSUMS:
  Intercom: 3119e8ebf76d3da425bab717a08067398fcabfe6
PODFILE CHECKSUM: f99283bb8a4e56cb037a02390d2fbc4e76c97db9
COCOAPODS: 1.3.1

运行pod install时没有错误,我希望所有文件都存在。

我已经尝试过的事情:

  • 运行pod install(当然)
  • 运行pod deintegrate,运行产品>在Xcode中清洁,重新运行pod install
  • 手动删除Podfile.lockPods目录,在Xcode中运行清洁,然后重新运行pod install
  • 晚上睡个好觉,第二天早上进行了另一次尝试!

要注意的事情:

  • 我从project.xcworkspace跑步project.xcodeproj
  • 我正在运行Xcode 8.3.3的最新稳定版本
  • 我正在运行最新版本的Cocoapods 1.3.1

我花了很长时间尝试解决这个问题而无处可去。该应用是使用离子2构建的,因此实际的源代码存储在其他地方并内置在本机Xcode应用程序中。

因此,我决定删除整个Xcode目录。.xcodeproj.xcworkspace,一切。然后我从Ionic重建。

在第二个构建中,我看到了Pods目录在那里,一切都应该。我可以第一次编译和运行而没有任何问题。

我的假设是,第一个构建失败了,因为我没有安装Cocoapods,因此离子在设置时默默未能运行pod install命令。我猜这与传统设置有些不同,这就是为什么我之后不能运行pod install

因此,简而言之,这是通过删除iOS项目来解决的:

ionic cordova platform rm ios

并重新添加它:

ionic cordova platform add ios

然后建造:

ionic cordova run ios --device

,但请确保您首先在系统上安装了Cocoapods。

最新更新