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

Jus*_*ain 2 xcode google-maps ios cocoapods

我有一个使用Xcode 7重建的应用程序.此应用程序一直在使用GoogleMaps IOS SDK.同时(大错误),我将代码更新为Xcode 7(支持IOS 9),我决定升级到最新版本的GoogleMaps API.此版本要求项目使用Podfiles.

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

在此输入图像描述

我不知道该怎么做.我似乎无法找到有关此错误的任何信息.这是我的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
Run Code Online (Sandbox Code Playgroud)

由于我无法控制Google API,因此无法更改其Info.plist文件.我错过了什么吗?

Jus*_*ain 7

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

问题是2个不同包下的info.plist文件具有非法值.解决方案是删除该非法值.这是一种手动操作的痛苦.我找到了一个有部分解决方案的人.我已将其解决方案扩展为包含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
Run Code Online (Sandbox Code Playgroud)

此代码从plist文件中删除非法值,并在模拟器和物理设备上均可使用.使用此新脚本存档后,该应用程序可以毫无问题地提交给iTunes.

希望这可以帮助.