昨天我收到了谷歌发来的一封电子邮件说我可以访问ios的地图api,我从应用控制台生成了我的密钥,我按照https://developers.google.com/maps/documentation/ios/start的步骤进行操作,但xcode会抛出此错误。
#import <GoogleMaps/GoogleMaps.h> //file not found
感谢您的支持。
出现Headers可执行文件而不是文件夹是正常的吗?
解决!
答案 0 :(得分:19)
最后,我找到了解决问题的方法:
1 在版本中提取子文件夹A,然后将其重命名为
GoogleMaps.framework
2 将此文件夹复制到项目文件夹。
3 将其添加到项目中的Frameworks组
4 导入AppDelegate为#import "GoogleMaps/GoogleMaps.h"
我会为有相同问题的人编辑图像。
感谢所有帮助过我的人。
答案 1 :(得分:10)
确保您使用了解符号链接的内容解压缩SDK。
GoogleMaps.framework/Headers
是指向GoogleMaps.framework/Versions/A/Headers
的符号链接。
当我在Mac上解压缩时,符号链接设置正确。但是当我在我的PC上解压缩它而不是符号链接时,我得到的文本文件只包含路径(例如Versions/Current/Headers
)。
如果您在PC上解压缩然后将文件夹复制到Mac(或使用其他一些不创建符号链接的方法解压缩),那么您将收到错误。
答案 2 :(得分:8)
试试这个:
将 GoogleMaps.framework 捆绑包拖到项目的Frameworks组中。出现提示时,选择将项目复制到目标组的文件夹中。
您必须将解压缩的文件夹“ GoogleMaps.framework ”复制到 XCode 。
然后按照步骤3&amp; 4
3.右键单击项目中的 GoogleMaps.framework ,然后选择Show In Finder。
4.从Resources文件夹中将 GoogleMaps.bundle 拖到您的项目中。我们建议将其放在Frameworks组中。出现提示时,确保未选中将项目复制到目标组的文件夹中。
如果仍无效,请尝试在Build Phases选项卡中手动添加GoogleMaps.framework - &gt; Link Binary 与库
答案 3 :(得分:3)
以下是您需要的前几个步骤:
GoogleMaps-iOS-1.1.0.zip
GoogleMaps-iOS-1.1.0
文件夹GoogleMaps.framework
文件夹。GoogleMaps.framework
文件夹复制或移动到项目文件夹内(在Finder中)。GoogleMaps.framework
文件夹拖到Xcode中的Frameworks
组。(请注意,您也可以通过不将其复制到项目文件夹并选中“将项目复制到目标组的文件夹”来执行此操作.Xcode将复制文件夹本身。)
< / LI>使用#import "GoogleMaps/GoogleMaps.h"
导入。尖括号通常也可以工作,但在这种情况下它应该使用引号。
你应该得到一个黄金工具箱图标:
使用带尖括号的#import
应该搜索系统框架,然后搜索项目文件夹,但为了安全起见,请使用引号进行尝试。
答案 4 :(得分:1)
GoogleMaps框架可能不在Library文件夹中,而是与所有其他项目文件在同一目录中。在这种情况下,您必须撰写#import "GoogleMaps/GoogleMaps.h
或#import "GoogleMaps.h"
答案 5 :(得分:1)
我几个小时一直在努力解决这个问题;我正在使用CocoaPods,Swift和Xcode 6.1.1。我仔细考虑了将GoogleMaps包含在我的项目中的所有步骤,尝试了许多不同的操作,例如删除下载的包中的符号链接或在构建阶段手动链接二进制文件或尝试#include "GoogleMaps.h"
,#include "GoogleMaps/GoogleMaps.h"
和{{1在我的桥文件中,没有一个工作...最后使用CocoaPods而不是自己包括框架,它工作!希望它可以帮助那里的人:
在Podfile中:
"#include <GoogleMaps/GoogleMaps.h>
在您的Bridge文件中:
pod 'Google-Maps-iOS-SDK', '~> 1.9.2'
答案 6 :(得分:0)
确保升级到最新的sdk。 v1和v3是不同的。 难以让v1上班
答案 7 :(得分:0)
这个答案对你也有帮助。经过很长一段时间我发现这样的
后,上述所有答案都不适合我private final class LogoutListener implements PendingRequestListener<String> {
@Override
public void onRequestFailure(SpiceException spiceException) {
Log.e(TAG, spiceException.getMessage());
}
@Override
public void onRequestSuccess(String result) {
// nothing special
}
@Override
public void onRequestNotFound() {
Log.w(TAG, "Not found");
}
}
private void Alarm_Logout(boolean exit) {
Logout request = new Logout(url);
spiceManager.execute(request, new LogoutListener());
this.finish();
}
这样使用它肯定能解决你的问题
答案 8 :(得分:0)
Maybe you've forgot after change Podfile, you have to run
pod update
then rerun react-native run-ios
答案 9 :(得分:0)
它更好的安装Pod谷歌地图,只需将谷歌地图添加到pod。 请注意,如果您的项目文件夹中没有pod文件,请执行以下步骤 pod init
在您的pod文件中添加以下代码
platform :ios, '9.0'
target 'YourAppTarget' do
pod 'GoogleMaps' # <~~ remove this line if you do not want to support GoogleMaps on iOS
end
# pre_install do |installer|
# copied from https://github.com/CocoaPods/CocoaPods/issues/2926
# workaround for https://github.com/CocoaPods/CocoaPods/issues/3289
# def installer.verify_no_static_framework_transitive_dependencies; end
# end
target 'YourAppTarget-tvOS' do
end
不要忘记将AirGoogleMaps添加到您的项目目录中 node_modules /反应天然-地图/ LIB / IOS
答案 10 :(得分:-1)
如果您未在iOS上使用Google Maps,则只需删除它提到Google Maps库的行即可将其禁用。
将以下脚本添加到您的 package.json 脚本中,然后再次安装您的依赖项,它应该可以正常运行,并且您不必担心安装对应用程序无用的依赖项。 / p>
"postinstall": "sed -i '' '/Google.*\\.[h|m]/d' node_modules/react-native-maps/lib/ios/AirMaps.xcodeproj/project.pbxproj"
有关this github issue的更多详细信息。