无法使用 Xcode 7 将 IOS 应用程序上传到 iTunes 并使用 Podfile 将 GoogleMaps 上传
Can't upload IOS app to iTunes with Xcode 7 and GoogleMaps with Podfile
我有一个使用 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
由于我无法控制 Google API,因此我无法更改他们的 Info.plist 文件。我错过了什么吗?
经过大量研究,我得出结论,这实际上是使用 Pods 和 Xcode 编译时 IOS 的 GoogleMaps API 的错误7.
问题是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。
希望对您有所帮助。
我有一个使用 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
由于我无法控制 Google API,因此我无法更改他们的 Info.plist 文件。我错过了什么吗?
经过大量研究,我得出结论,这实际上是使用 Pods 和 Xcode 编译时 IOS 的 GoogleMaps API 的错误7.
问题是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。
希望对您有所帮助。