无法使用Xcode 7和带有Podfile的GoogleMaps将IOS应用上传到iTunes

我有一个使用Xcode 7重build的应用程序。这个应用程序一直在使用GoogleMaps IOS SDK。 同时(很大的错误),我正在更新代码到Xcode 7(用于IOS 9支持),我决定升级到最新版本的GoogleMaps API。 该版本要求项目使用Podfiles。

我有多个目标,让Podfiles工作是一个痛苦,但我得到它的工作。 该应用程序在模拟器中编译并运行良好。 当我归档项目并尝试将应用程序上传到App Store时,问题就出现了。 我得到以下错误:

在这里输入图像说明

我不知道该怎么做。 我似乎无法find有关此错误的任何信息。 这里是我的Podfile的副本:

# Podfile source 'https://github.com/CocoaPods/Specs.git' platform :ios, '7.0' # Common Pods def common_pods pod 'GoogleMaps' end # Target List target 'app1' do common_pods end target 'app2' do common_pods end target 'app3' do common_pods end 

由于我不控制Google API,我无法更改他们的Info.plist文件。 我错过了什么吗?

经过大量的研究,我得出结论,这实际上是使用Pods和Xcode 7编译的GoogleMaps API for IOS的​​一个错误。

问题是在2个不同的包下的info.plist文件有一个非法的值。 解决办法是删除这个非法值。 这是一个手动操作的痛苦。 我find了一个有部分解决scheme的人。 我已经扩展了他们的解决scheme来包含两个plist文件。

解决方法是将以下代码添加到Podfile的末尾:

 # Patch GoogleMaps' bundle to avoid iTunes connect submission error post_install do |installer| `/usr/libexec/PlistBuddy -c "Delete :CFBundleSupportedPlatforms" ./Pods/GoogleMaps/Frameworks/GoogleMaps.framework/Resources/GoogleMaps.bundle/Info.plist` `/usr/libexec/PlistBuddy -c "Delete :CFBundleSupportedPlatforms" ./Pods/GoogleMaps/Frameworks/GoogleMaps.framework/Resources/GoogleMaps.bundle/GMSCoreResources.bundle/Info.plist` end 

此代码从plist文件中删除非法值,并在模拟器和物理设备上工作。 一旦这个新的脚本存档,该应用程序可以提交给iTunes没有问题。

希望这可以帮助。