【问题标题】:Can't upload IOS app to iTunes with Xcode 7 and GoogleMaps with Podfile无法使用 Xcode 7 将 IOS 应用程序上传到 iTunes 和使用 Podfile 的 GoogleMaps
【发布时间】:2015-12-12 12:33:12
【问题描述】:

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

我有多个目标,让 Podfile 工作很痛苦,但我让它工作了。该应用程序在模拟器中编译并运行良好。当我归档项目并尝试将应用程序上传到 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

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

【问题讨论】:

  • 我也面临同样的问题,但我没有使用 cocoapada

标签: ios xcode google-maps cocoapods


【解决方案1】:

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

问题是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

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

希望这会有所帮助。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-08-13
    • 2018-03-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-09-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多