یک پروژه Xcode راه اندازی کنید

پس از فعال کردن صورتحساب و ایجاد یک کلید API، آماده راه اندازی پروژه Xcode هستید که برای توسعه برنامه خود استفاده می کنید.

یادداشت های انتشار برای هر نسخه در دسترس هستند.

مرحله 1: نرم افزار مورد نیاز را نصب کنید

برای ساختن یک پروژه با استفاده از Maps SDK برای iOS، باید دانلود و نصب کنید:

  • Xcode نسخه 14.0 یا بالاتر

مرحله 2: پروژه Xcode را ایجاد کرده و Maps SDK را برای iOS نصب کنید

مدیر بسته سوئیفت

Maps SDK برای iOS را می توان از طریق Swift Package Manager نصب کرد. برای افزودن SDK، مطمئن شوید که نقشه های SDK موجود برای وابستگی های iOS را حذف کرده اید.

برای افزودن SDK به یک پروژه جدید یا موجود، مراحل زیر را دنبال کنید:

  1. project یا workspace Xcode خود را باز کنید، سپس به File > Add Package Dependencies بروید.
  2. https://github.com/googlemaps/ios-maps-sdk را به عنوان URL وارد کنید، Enter را فشار دهید تا بسته را وارد کنید و روی «افزودن بسته» کلیک کنید.
  3. برای نصب یک version خاص، قسمت Dependency Rule را روی یکی از گزینه های مبتنی بر نسخه تنظیم کنید. برای پروژه های جدید، توصیه می کنیم آخرین نسخه را مشخص کنید و از گزینه "نسخه دقیق" استفاده کنید. پس از تکمیل، روی "افزودن بسته" کلیک کنید.
  4. از پنجره انتخاب محصولات بسته ، تأیید کنید که GoogleMaps ، GoogleMapsBase و GoogleMapsCore به هدف main تعیین‌شده شما اضافه می‌شوند. پس از تکمیل، روی "افزودن بسته" کلیک کنید.
  5. برای تأیید نصب خود، به صفحه General هدف خود بروید. در Frameworks، Libraries و Embedded Content باید بسته های نصب شده را ببینید. همچنین می‌توانید برای تأیید بسته و نسخه آن، بخش «وابستگی‌های بسته» در «ناوبر پروژه» را مشاهده کنید.

برای به روز رسانی package برای یک پروژه موجود، این مراحل را دنبال کنید:

  1. از Xcode، به "File > Packages > Update To Latest Package Versions" بروید.
  2. برای تأیید نصب خود، به بخش Package Dependencies در Project Navigator بروید تا بسته و نسخه آن را تأیید کنید.

برای حذف Maps SDK موجود برای وابستگی‌های iOS اضافه شده با استفاده از CocoaPods ، این مراحل را دنبال کنید:

  1. فضای کاری Xcode خود را ببندید. ترمینال را باز کنید و دستور زیر را اجرا کنید:
    sudo gem install cocoapods-deintegrate cocoapods-clean 
    pod deintegrate 
    pod cache clean --all
  2. اگر از آنها برای چیزی غیر از CocoaPods استفاده نمی کنید، Podfile ، Podfile.resolved و workspace Xcode را حذف کنید.

برای حذف Maps SDK موجود برای iOS که به صورت دستی نصب شده است، این مراحل را دنبال کنید:
  1. از تنظیمات پیکربندی پروژه Xcode خود، Frameworks، Libraries و Embedded Content را پیدا کنید. برای حذف چارچوب زیر از علامت منفی (-) استفاده کنید:
    • GoogleMaps.xcframework
    • GoogleMapsBase.xcframework
    • GoogleMapsCore.xcframework
  2. از دایرکتوری سطح بالای پروژه Xcode خود، بسته GoogleMaps را حذف کنید.

CocoaPods

Maps SDK برای iOS به عنوان یک CocoaPods در دسترس است. CocoaPods یک مدیر وابستگی منبع باز برای پروژه های Swift و Objective-C Cocoa است.

اگر از قبل ابزار CocoaPods را ندارید، با اجرای دستور زیر از ترمینال، آن را روی macOS نصب کنید. برای جزئیات، به راهنمای شروع به کار CocoaPods مراجعه کنید.

sudo gem install cocoapods

یک Podfile برای Maps SDK برای iOS ایجاد کنید و از آن برای نصب API و وابستگی های آن استفاده کنید:

  1. اگر هنوز پروژه Xcode ندارید، اکنون یکی را ایجاد کرده و آن را در دستگاه محلی خود ذخیره کنید. اگر در توسعه iOS تازه کار هستید:
    1. یک پروژه جدید ایجاد کنید.
    2. iOS > قالب برنامه را انتخاب کنید.
    3. در صفحه گزینه های پروژه:
      1. نام پروژه را وارد کنید.
      2. مقدار فیلد شناسه Bundle را ثبت کنید. می توانید از این مقدار برای محدود کردن کلید API خود در زیر استفاده کنید.
      3. Interface پروژه را روی Storyboard قرار دهید.
      4. زبان را روی Swift یا Objective-C قرار دهید.
  2. یک فایل به نام Podfile در دایرکتوری پروژه خود ایجاد کنید. این فایل وابستگی های پروژه شما را تعریف می کند.
  3. Podfile را ویرایش کنید و وابستگی های خود را به همراه نسخه های آنها اضافه کنید. در اینجا یک مثال است که شامل وابستگی مورد نیاز برای Maps SDK برای iOS است:
    source 'https://github.com/CocoaPods/Specs.git'
    
    platform :ios, '15.0'
    
    target 'YOUR_APPLICATION_TARGET_NAME_HERE' do
      pod 'GoogleMaps', '8.4.0'
    end
    
    مطمئن شوید که به‌طور منظم pod outdated اجرا می‌کنید تا تشخیص دهید که نسخه جدیدتری وجود دارد تا مطمئن شوید که همیشه آخرین نسخه‌ها را دارید. در صورت لزوم، به آخرین نسخه ارتقا دهید .
  4. Podfile ذخیره کنید.
  5. یک ترمینال را باز کنید و به دایرکتوری حاوی Podfile بروید:

    cd <path-to-project>
  6. دستور pod install را اجرا کنید. این API های مشخص شده در Podfile را به همراه وابستگی هایی که ممکن است داشته باشند نصب می کند.

    pod install
  7. Xcode را ببندید و سپس فایل .xcworkspace پروژه خود را باز کنید (دوبار کلیک کنید) تا Xcode راه اندازی شود. از این زمان به بعد باید از فایل .xcworkspace برای باز کردن پروژه استفاده کنید.

برای به روز رسانی API برای یک پروژه موجود، این مراحل را دنبال کنید:

  1. یک ترمینال را باز کنید و به فهرست پروژه حاوی Podfile بروید.
  2. دستور pod update را اجرا کنید. با این کار همه API های مشخص شده در Podfile به آخرین نسخه به روز می شوند.

نصب دستی

این راهنما نحوه اضافه کردن دستی XCFrameworks حاوی Maps SDK برای iOS را به پروژه خود و پیکربندی تنظیمات ساخت خود در Xcode نشان می‌دهد. XCFramework یک بسته باینری است که می‌توانید در چندین پلتفرم از جمله ماشین‌هایی که از سیلیکون اپل استفاده می‌کنند استفاده کنید.
  1. فایل های باینری و منبع SDK زیر را دانلود کنید:
  2. برای دسترسی به XCFrameworks و منابع، فایل های فشرده شده را باز کنید.
  3. اگر هنوز پروژه Xcode ندارید، اکنون یکی را ایجاد کرده و آن را در دستگاه محلی خود ذخیره کنید. اگر در توسعه iOS تازه کار هستید:
    1. یک پروژه جدید ایجاد کنید.
    2. iOS > قالب برنامه را انتخاب کنید.
    3. در صفحه گزینه های پروژه:
      1. نام پروژه را وارد کنید.
      2. مقدار فیلد شناسه Bundle را ثبت کنید. می توانید از این مقدار برای محدود کردن کلید API خود در زیر استفاده کنید.
      3. Interface پروژه را روی Storyboard قرار دهید.
      4. زبان را روی Swift یا Objective-C قرار دهید.
  4. تب General را باز کنید. XCFrameworks زیر را به پروژه خود در بخش Frameworks، Libraries و Embedded Content بکشید. مطمئن شوید که برای هر XCFramework گزینه Do Not Embed را انتخاب کنید:
    • GoogleMaps.xcframework
    • GoogleMapsBase.xcframework
    • GoogleMapsCore.xcframework
  5. GoogleMaps.bundle را از GoogleMapsResources که دانلود کرده‌اید در فهرست سطح بالای پروژه Xcode خود کپی کنید. وقتی از شما خواسته شد، مطمئن شوید که موارد کپی در پوشه گروه مقصد را انتخاب کنید.
  6. پروژه خود را از Project Navigator انتخاب کنید و هدف برنامه خود را انتخاب کنید.
  7. تب Build Phases را برای هدف برنامه خود باز کنید. در لینک باینری با کتابخانه ها ، چارچوب ها و کتابخانه های زیر را اضافه کنید:
    • Accelerate.framework
    • Contacts.framework
    • CoreData.framework
    • CoreGraphics.framework
    • CoreImage.framework
    • CoreLocation.framework
    • CoreTelephony.framework
    • CoreText.framework
    • GLKit.framework
    • ImageIO.framework
    • libc++.tbd
    • libz.tbd
    • Metal.framework
    • OpenGLES.framework
    • QuartzCore.framework
    • SystemConfiguration.framework
    • UIKit.framework
  8. پروژه خود را به جای یک هدف خاص انتخاب کنید و تب Build Settings را باز کنید. در بخش Linking - General -> Other Linker Flags ، -ObjC به "Debug" و "Release" اضافه کنید. اگر این تنظیمات قابل مشاهده نیستند، فیلتر را در نوار تنظیمات ساخت از Basic به All تغییر دهید.

  9. برای نصب Places SDK برای iOS XCFramework، به شروع کار با Places SDK برای iOS مراجعه کنید.

مرحله 3: کلید API خود را به پروژه اضافه کنید

در دریافت کلید API ، یک کلید API برای برنامه خود ایجاد کردید. اکنون آن کلید را به پروژه Xcode خود اضافه کنید.

در مثال‌های زیر، YOUR_API_KEY با کلید API خود جایگزین کنید.

برای اطلاعات بیشتر.

سریع

کلید API خود را به صورت زیر به AppDelegate.swift خود اضافه کنید:

  1. عبارت import زیر را اضافه کنید:
    import GoogleMaps
  2. موارد زیر را با استفاده از کلید API خود به روش application(_:didFinishLaunchingWithOptions:) خود اضافه کنید:
    GMSServices.provideAPIKey("YOUR_API_KEY")
  3. اگر از Places API نیز استفاده می‌کنید، کلید خود را دوباره همانطور که در اینجا نشان داده شده است اضافه کنید:
    GMSPlacesClient.provideAPIKey("YOUR_API_KEY")

هدف-C

کلید API خود را به صورت زیر به AppDelegate.m خود اضافه کنید:

  1. عبارت import زیر را اضافه کنید:
    @import GoogleMaps;
  2. با استفاده از کلید API خود:
    [GMSServices provideAPIKey:@"YOUR_API_KEY"];
    موارد زیر را به متد application:didFinishLaunchingWithOptions: خود اضافه کنید
  3. اگر از Places API نیز استفاده می‌کنید، کلید خود را دوباره همانطور که در اینجا نشان داده شده است اضافه کنید:
    [GMSPlacesClient provideAPIKey:@"YOUR_API_KEY"];

مرحله 4: یک نقشه اضافه کنید

سریع

/*
 *   Copyright 2020 Google Inc. All rights reserved.
 *
 *
 *   Licensed under the Apache License, Version 2.0 (the "License"); you may not use this
 *   file except in compliance with the License. You may obtain a copy of the License at
 *
 *   http://www.apache.org/licenses/LICENSE-2.0
 *
 *   Unless required by applicable law or agreed to in writing, software distributed under
 *   the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF
 *   ANY KIND, either express or implied. See the License for the specific language governing
 *   permissions and limitations under the License.
 */

import UIKit
import GoogleMaps

class ViewController: UIViewController {

    override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view.
        // Create a GMSCameraPosition that tells the map to display the
        // coordinate -33.86,151.20 at zoom level 6.

        let options = GMSMapViewOptions()
        options.camera = GMSCameraPosition.camera(withLatitude: -33.86, longitude: 151.20, zoom: 6.0)
        options.frame = self.view.bounds

        let mapView = GMSMapView(options: options)
        self.view.addSubview(mapView)

        // Creates a marker in the center of the map.
        let marker = GMSMarker()
        marker.position = CLLocationCoordinate2D(latitude: -33.86, longitude: 151.20)
        marker.title = "Sydney"
        marker.snippet = "Australia"
        marker.map = mapView
  }
}

هدف-C

/*
*   Copyright 2020 Google Inc. All rights reserved.
*
*
*   Licensed under the Apache License, Version 2.0 (the "License"); you may not use this
*   file except in compliance with the License. You may obtain a copy of the License at
*
*   http://www.apache.org/licenses/LICENSE-2.0
*
*   Unless required by applicable law or agreed to in writing, software distributed under
*   the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF
*   ANY KIND, either express or implied. See the License for the specific language governing
*   permissions and limitations under the License.
*/

#import "ViewController.h"
#import <GoogleMaps/GoogleMaps.h>

@interface ViewController()

@end

@implementation ViewController

-   (void)viewDidLoad {
  [super viewDidLoad];
  // Do any additional setup after loading the view.
  // Create a GMSCameraPosition that tells the map to display the
  // coordinate -33.86,151.20 at zoom level 6.
  GMSMapViewOptions *options = [[GMSMapViewOptions alloc] init];
  options.camera = [GMSCameraPosition cameraWithLatitude:-33.8683
                                                        longitude:151.2086
                                                             zoom:6];
  options.frame = self.view.bounds;
  GMSMapView *mapView = [[GMSMapView alloc] initWithOptions:options];

  [self.view addSubview:mapView];

  // Creates a marker in the center of the map.
  GMSMarker *marker = [[GMSMarker alloc] init];
  marker.position = CLLocationCoordinate2DMake(-33.86, 151.20);
  marker.title = @"Sydney";
  marker.snippet = @"Australia";
  marker.map = mapView;
}

@end

مرحله 5 (اختیاری): طرح های URL مورد استفاده توسط API را اعلام کنید

با شروع iOS 9 و Xcode 7، برنامه‌ها می‌توانند طرح‌های URL را که می‌خواهند باز کنند، با مشخص کردن طرح‌ها در فایل Info.plist برنامه، اعلام کنند. Maps SDK برای iOS زمانی که کاربر روی نشان‌واره Google روی نقشه کلیک می‌کند، برنامه تلفن همراه Google Maps را باز می‌کند و بنابراین برنامه شما می‌تواند طرح‌های URL مربوطه را اعلام کند.

برای اعلام طرح‌های URL مورد استفاده توسط Maps SDK برای iOS، خطوط زیر را به Info.plist خود اضافه کنید:

LSApplicationQueriesSchemes googlechromes comgooglemaps

تصویر زیر پیکربندی در رابط کاربری Xcode را نشان می دهد:

پیکربندی LSApplicationQueriesSchemes در Xcode

بدون اعلان بالا، هنگام ضربه زدن کاربر روی لوگوی گوگل روی نقشه، خطاهای زیر ممکن است رخ دهد:

-canOpenURL: برای URL ناموفق: "comgooglemaps://" - خطا: "این برنامه مجاز به پرس و جو برای طرح comgooglemaps نیست" -canOpenURL: برای URL: "googlechromes://" ناموفق - خطا: "این برنامه مجاز نیست برای پرس و جو برای طرح googlechromes"

برای حذف این خطاها، اعلان را به Info.plist خود اضافه کنید.

بعدش چی

اکنون که یک کلید API و یک پروژه Xcode دارید، می توانید برنامه ها را ایجاد و اجرا کنید. Navigation SDK برای iOS آموزش ها و نمونه برنامه های زیادی را ارائه می دهد که می توانند به شما در شروع کار کمک کنند. برای جزئیات بیشتر، نگاه کنید به: