PODS_ROOT 和其他 pods 环境变量在编译 Ionic 应用程序时未设置
PODS_ROOT and other pods env variables not set when compiling Ionic app
我构建了一个使用 Intercom(第三方扩展)的 Ionic 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}"
我试过从上面的脚本中输出 PODS_PODFILE_DIR_PATH
和 PODS_ROOT
中的 STDERROR
echo
环境变量,但都是空白。我可能可以通过自己修改这些路径来解决这个特定错误,但显然其他更基本的东西被破坏了,所以我需要自己解决实际问题。
为什么这些变量是空白的?
我有 [CP] Copy Pods Resources
和 [CP] Embed Pods Frameworks
的额外构建阶段,其中 运行 一些 shell 脚本。我试过更改它们的顺序,但没有成功。
我的 Podfile.lock 和 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
, 运行ning 产品 > 在 XCode 中清洁,重新 运行ning pod install
- 手动删除
Podfile.lock
和 Pods
目录,运行在 XCode 中清理,然后重新 运行ning pod install
- 睡个好觉,第二天早上再试一次!
注意事项:
- 我来自
project.xcworkspace
运行,而不是 project.xcodeproj
- 我正在运行宁最新稳定版XCode 8.3.3
- 我正在运行安装最新版本的Cocoapods 1.3.1
我花了很长时间试图解决这个问题,但一无所获。该应用程序是使用 Ionic 2 构建的,因此实际的源代码存储在其他地方并构建到本机 XCode 应用程序中。
因此我决定删除整个 XCode 目录。 .xcodeproj
, .xcworkspace
, 一切。然后我从 Ionic 重建。
在第二个构建中,我看到 Pods
目录在那里,一切都应该如此。我可以编译 运行 第一次没有任何问题。
我的假设是第一次构建失败是因为我没有安装 Cocoapods,所以 Ionic 在设置时默默地 运行 pod install
命令失败。我想它与传统设置有些不同,这就是为什么我之后不能 运行 pod install
。
所以,简而言之,通过删除 iOS 项目解决了这个问题:
ionic cordova platform rm ios
并重新添加:
ionic cordova platform add ios
然后建造:
ionic cordova run ios --device
但请先确保您的系统上已经安装了 Cocoapods。
我构建了一个使用 Intercom(第三方扩展)的 Ionic 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}"
我试过从上面的脚本中输出 PODS_PODFILE_DIR_PATH
和 PODS_ROOT
中的 STDERROR
echo
环境变量,但都是空白。我可能可以通过自己修改这些路径来解决这个特定错误,但显然其他更基本的东西被破坏了,所以我需要自己解决实际问题。
为什么这些变量是空白的?
我有 [CP] Copy Pods Resources
和 [CP] Embed Pods Frameworks
的额外构建阶段,其中 运行 一些 shell 脚本。我试过更改它们的顺序,但没有成功。
我的 Podfile.lock 和 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
, 运行ning 产品 > 在 XCode 中清洁,重新 运行ningpod install
- 手动删除
Podfile.lock
和Pods
目录,运行在 XCode 中清理,然后重新 运行ningpod install
- 睡个好觉,第二天早上再试一次!
注意事项:
- 我来自
project.xcworkspace
运行,而不是project.xcodeproj
- 我正在运行宁最新稳定版XCode 8.3.3
- 我正在运行安装最新版本的Cocoapods 1.3.1
我花了很长时间试图解决这个问题,但一无所获。该应用程序是使用 Ionic 2 构建的,因此实际的源代码存储在其他地方并构建到本机 XCode 应用程序中。
因此我决定删除整个 XCode 目录。 .xcodeproj
, .xcworkspace
, 一切。然后我从 Ionic 重建。
在第二个构建中,我看到 Pods
目录在那里,一切都应该如此。我可以编译 运行 第一次没有任何问题。
我的假设是第一次构建失败是因为我没有安装 Cocoapods,所以 Ionic 在设置时默默地 运行 pod install
命令失败。我想它与传统设置有些不同,这就是为什么我之后不能 运行 pod install
。
所以,简而言之,通过删除 iOS 项目解决了这个问题:
ionic cordova platform rm ios
并重新添加:
ionic cordova platform add ios
然后建造:
ionic cordova run ios --device
但请先确保您的系统上已经安装了 Cocoapods。