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

با مجموعه‌ها، منظم بمانید ذخیره و دسته‌بندی محتوا براساس اولویت‌های شما.

مراحل این راهنما را برای دانلود Places SDK برای iOS، افزودن کتابخانه و وابستگی های آن به برنامه خود و دریافت یک کلید API بدون هزینه دنبال کنید.

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

مرحله 1: آخرین نسخه Xcode را دریافت کنید

برای ساختن یک پروژه با استفاده از Places SDK برای iOS، شما نیاز دارید:

  1. Xcode نسخه 13.0 یا بالاتر.
  2. کوکوپودها یا کارتاژ .

مرحله 2: SDK را نصب کنید

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

از کوکوپود استفاده کنید

Places SDK برای iOS به‌عنوان یک غلاف CocoaPod ، GooglePlaces در دسترس است که شامل همه عملکردهای مکان‌ها است.

CocoaPods یک مدیر وابستگی منبع باز برای پروژه های Swift و Objective-C Cocoa است. اگر از قبل ابزار CocoaPods را ندارید، با اجرای دستور زیر از ترمینال، آن را روی macOS نصب کنید. برای جزئیات، به راهنمای شروع به کار CocoaPods مراجعه کنید.

sudo gem install cocoapods

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

  1. اگر هنوز پروژه Xcode ندارید، اکنون یکی را ایجاد کرده و آن را در دستگاه محلی خود ذخیره کنید. اگر در توسعه iOS جدیدتر هستید، یک پروژه جدید ایجاد کنید و الگوی برنامه iOS را انتخاب کنید.
  2. یک فایل به نام Podfile در دایرکتوری پروژه خود ایجاد کنید. این فایل وابستگی های پروژه شما را تعریف می کند.
  3. فایل Podfile را ویرایش کنید و وابستگی های خود را به همراه نسخه های آنها اضافه کنید. در اینجا یک مثال است که نام هدف برنامه شما و نام غلاف GooglePlaces را مشخص می کند:
    source 'https://github.com/CocoaPods/Specs.git'
    
    platform :ios, '13.0'
    
    target 'YOUR_APPLICATION_TARGET_NAME_HERE' do
      pod 'GooglePlaces', '7.3.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 به آخرین نسخه به روز می شوند.

از کارتاژ استفاده کنید

Places SDK برای iOS برای استفاده با Carthage ، یک مدیر وابستگی ساده و غیرمتمرکز برای پروژه‌های Swift و Objective-C Cocoa در دسترس است.

  1. کارتاژ را نصب کنید. روش های مختلفی وجود دارد، بنابراین برای اطلاع از مراحل دقیق، فایل Carthage README را ببینید .
  2. اگر هنوز پروژه Xcode ندارید، اکنون یکی را ایجاد کرده و آن را در دستگاه محلی خود ذخیره کنید. اگر در توسعه iOS جدیدتر هستید، یک پروژه جدید ایجاد کنید و الگوی برنامه iOS را انتخاب کنید.
  3. یک فایل به نام Cartfile در دایرکتوری پروژه خود ایجاد کنید. این فایل وابستگی های پروژه شما را تعریف می کند.
  4. Cartfile را ویرایش کنید و وابستگی های خود را به همراه نسخه های آنها اضافه کنید:
     binary "https://dl.google.com/geosdk/GooglePlaces.json" == 6.2.1
    مطمئن شوید که به طور منظم carthage outdated را اجرا کنید تا تشخیص دهید که نسخه جدیدتری وجود دارد تا مطمئن شوید که همیشه از آخرین نسخه استفاده می کنید.
  5. کارت کارت را ذخیره Cartfile .
  6. در یک پنجره ترمینال، به دایرکتوری حاوی Cartfile :
    cd <path-to-project>
  7. دستور carthage update را اجرا کنید. این API های مشخص شده در Cartfile را به همراه وابستگی هایی که ممکن است داشته باشند نصب می کند.
  8. در Finder، در فهرست پروژه خود، به فایل های فریمورک دانلود شده در Carthage/Build/iOS بروید.
  9. بسته‌های زیر را به پروژه خود بکشید (در صورت نیاز، کپی موارد را انتخاب کنید):
    • GooglePlaces-5.xx/Frameworks/GooglePlaces.framework
  10. در پروژه خود روی GooglePlaces.framework کلیک راست کرده و Show In Finder را انتخاب کنید.
  11. GooglePlaces.bundle را از پوشه Resources به پروژه خود بکشید. هنگامی که از شما خواسته شد، مطمئن شوید که موارد کپی در پوشه گروه مقصد انتخاب نشده است.
  12. پروژه خود را از Project Navigator انتخاب کنید و هدف برنامه خود را انتخاب کنید.
  13. تب Build Phases را باز کنید و در لینک باینری با کتابخانه ها ، چارچوب ها و کتابخانه های زیر را اضافه کنید:
    • CoreGraphics.framework
    • CoreLocation.framework
    • libc++.tbd
    • libz.tbd
    • QuartzCore.framework
    • UIKit.framework
  14. پروژه خود را به جای یک هدف خاص انتخاب کنید و تب Build Settings را باز کنید.

  15. در بخش Other Linker Flags ، -ObjC را اضافه کنید. اگر این تنظیمات قابل مشاهده نیستند، فیلتر موجود در نوار تنظیمات ساخت را از Basic به All تغییر دهید.

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

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

به صورت دستی نصب کنید

این راهنما نشان می دهد که چگونه به صورت دستی چارچوب GooglePlaces را به پروژه خود اضافه کنید و تنظیمات ساخت خود را در Xcode پیکربندی کنید.

  1. دانلود فایل های منبع SDK: GooglePlaces-7.3.0
  2. فایل های منبع را باز کنید.
  3. Xcode را راه اندازی کنید و یک پروژه موجود را باز کنید یا یک پروژه جدید ایجاد کنید. اگر در توسعه iOS جدیدتر هستید، یک پروژه جدید ایجاد کنید و الگوی برنامه iOS را انتخاب کنید.
  4. بسته‌های Maps را از نسخه‌های قبلی از پروژه خود حذف کنید.
  5. بسته‌های زیر را به پروژه خود بکشید (در صورت نیاز، کپی موارد را انتخاب کنید):
    • GooglePlaces-5.xx/Frameworks/GooglePlaces.framework
  6. در پروژه خود روی GooglePlaces.framework کلیک راست کرده و Show In Finder را انتخاب کنید.
  7. GooglePlaces.bundle را از پوشه Resources به پروژه خود بکشید. هنگامی که از شما خواسته شد، مطمئن شوید که موارد کپی در پوشه گروه مقصد انتخاب نشده است.
  8. پروژه خود را از Project Navigator انتخاب کنید و هدف برنامه خود را انتخاب کنید.
  9. تب Build Phases را باز کنید و در لینک باینری با کتابخانه ها ، چارچوب ها و کتابخانه های زیر را اضافه کنید:
    • CoreGraphics.framework
    • CoreLocation.framework
    • libc++.tbd
    • libz.tbd
    • QuartzCore.framework
    • UIKit.framework
  10. پروژه خود را به جای یک هدف خاص انتخاب کنید و تب Build Settings را باز کنید.

  11. در بخش Other Linker Flags ، -ObjC را اضافه کنید. اگر این تنظیمات قابل مشاهده نیستند، فیلتر موجود در نوار تنظیمات ساخت را از Basic به All تغییر دهید.

XCFramework را نصب کنید

XCFramework یک بسته باینری است که می‌توانید در چندین پلتفرم، از جمله ماشین‌هایی که از چیپست M1 استفاده می‌کنند، برای نصب Places SDK برای iOS استفاده کنید. این راهنما نشان می دهد که چگونه XCFramework حاوی Places SDK برای iOS را به پروژه خود اضافه کنید و تنظیمات ساخت خود را در Xcode پیکربندی کنید.

با کارتاژ

Places SDK برای iOS برای استفاده با Carthage ، یک مدیر وابستگی ساده و غیرمتمرکز برای پروژه‌های Swift و Objective-C Cocoa در دسترس است.

  1. کارتاژ را نصب کنید. روش های مختلفی وجود دارد، بنابراین برای اطلاع از مراحل دقیق، فایل Carthage README را ببینید .
  2. اگر هنوز پروژه Xcode ندارید، اکنون یکی را ایجاد کرده و آن را در دستگاه محلی خود ذخیره کنید. اگر در توسعه iOS جدیدتر هستید، یک پروژه جدید ایجاد کنید و الگوی برنامه iOS را انتخاب کنید.
  3. یک فایل به نام Cartfile در دایرکتوری پروژه خود ایجاد کنید. این فایل وابستگی های پروژه شما را تعریف می کند.
  4. Cartfile را ویرایش کنید و وابستگی های خود را به همراه نسخه های آنها اضافه کنید:

    binary "https://dl.google.com/geosdk/GooglePlaces.json" == 6.2.1-beta
  5. کارت کارت را ذخیره Cartfile .
  6. در یک پنجره ترمینال، به دایرکتوری حاوی Cartfile :

    cd <path-to-project>
  7. دستور carthage update را اجرا کنید. این API های مشخص شده در Cartfile را به همراه وابستگی هایی که ممکن است داشته باشند نصب می کند.
  8. در Finder، در فهرست پروژه خود، به فایل های فریمورک دانلود شده در Carthage/Build بروید.
  9. XCFramework زیر را به داخل پروژه خود در بخش Frameworks, Libraries, and Embedded Content بکشید. حتماً Do Not Embed را انتخاب کنید:
    • GooglePlaces-xxx/GooglePlaces.xcframework
  10. روی GooglePlaces.xcframework در پروژه خود کلیک راست کرده و Show In Finder را انتخاب کنید.
  11. GooglePlaces.bundle را از پوشه ios-arm64/GooglePlaces.framework/Resources به فهرست سطح بالای پروژه Xcode خود بکشید. هنگامی که از شما خواسته شد، مطمئن شوید که موارد کپی در پوشه گروه مقصد انتخاب نشده است.
  12. پروژه خود را از Project Navigator انتخاب کنید و هدف برنامه خود را انتخاب کنید.
  13. تب Build Phases را باز کنید و در لینک باینری با کتابخانه ها ، چارچوب ها و کتابخانه های زیر را اضافه کنید:
    • CoreGraphics.framework
    • CoreLocation.framework
    • libc++.tbd
    • libz.tbd
    • QuartzCore.framework
    • UIKit.framework
  14. پروژه خود را به جای یک هدف خاص انتخاب کنید و تب Build Settings را باز کنید.

  15. در بخش Other Linker Flags ، -ObjC را اضافه کنید. اگر این تنظیمات قابل مشاهده نیستند، فیلتر موجود در نوار تنظیمات ساخت را از Basic به All تغییر دهید.

به صورت دستی

این راهنما نشان می دهد که چگونه به صورت دستی Maps SDK برای iOS را به پروژه خود اضافه کنید و تنظیمات ساخت خود را در Xcode پیکربندی کنید.

  1. فایل های منبع SDK را بارگیری کنید: GooglePlaces-7.3.0 .
  2. فایل های منبع را باز کنید. برای دسترسی به XCFramework به پوشه Frameworks بروید.
  3. Xcode را راه اندازی کنید و یک پروژه موجود را باز کنید یا یک پروژه جدید ایجاد کنید. اگر در iOS تازه کار هستید، یک پروژه جدید ایجاد کنید و الگوی برنامه iOS را انتخاب کنید.
  4. XCFramework زیر را به داخل پروژه خود در بخش Frameworks, Libraries, and Embedded Content بکشید. حتماً Do Not Embed را انتخاب کنید:
    • GooglePlaces-xxx/GooglePlaces.xcframework
  5. روی GooglePlaces.xcframework در پروژه خود کلیک راست کرده و Show In Finder را انتخاب کنید.
  6. GooglePlaces.bundle را از پوشه ios-arm64/GooglePlaces.framework/Resources به فهرست سطح بالای پروژه Xcode خود بکشید. هنگامی که از شما خواسته شد، مطمئن شوید که موارد کپی در پوشه گروه مقصد انتخاب نشده است.
  7. پروژه خود را از Project Navigator انتخاب کنید و هدف برنامه خود را انتخاب کنید.
  8. تب Build Phases را باز کنید و در لینک باینری با کتابخانه ها ، چارچوب ها و کتابخانه های زیر را اضافه کنید:
    • CoreGraphics.framework
    • CoreLocation.framework
    • libc++.tbd
    • libz.tbd
    • QuartzCore.framework
    • UIKit.framework
  9. پروژه خود را به جای یک هدف خاص انتخاب کنید و تب Build Settings را باز کنید.

  10. در بخش Other Linker Flags ، -ObjC را اضافه کنید. اگر این تنظیمات قابل مشاهده نیستند، فیلتر موجود در نوار تنظیمات ساخت را از Basic به All تغییر دهید.

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

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

سریع

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

  • عبارت import زیر را اضافه کنید:
    import GooglePlaces
  • موارد زیر را به روش application(_:didFinishLaunchingWithOptions:) خود اضافه کنید و YOUR_API_KEY را با کلید API خود جایگزین کنید:
    GMSPlacesClient.provideAPIKey("YOUR_API_KEY")

هدف-C

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

  • عبارت import زیر را اضافه کنید:
    @import GooglePlaces;
  • موارد زیر را به application:didFinishLaunchingWithOptions: YOUR_API_KEY را با کلید API خود جایگزین کنید:
    [GMSPlacesClient provideAPIKey:@"YOUR_API_KEY"];

مرحله 4: شروع به نوشتن کد کنید

نمونه کد زیر نحوه بدست آوردن مکان فعلی را نشان می دهد.

سریع

import GooglePlaces
import UIKit

class GetStartedViewController : UIViewController {

  // Add a pair of UILabels in Interface Builder, and connect the outlets to these variables.
  @IBOutlet private var nameLabel: UILabel!
  @IBOutlet private var addressLabel: UILabel!

  private var placesClient: GMSPlacesClient!

  override func viewDidLoad() {
    super.viewDidLoad()
    placesClient = GMSPlacesClient.shared()
  }

  // Add a UIButton in Interface Builder, and connect the action to this function.
  @IBAction func getCurrentPlace(_ sender: UIButton) {
    let placeFields: GMSPlaceField = [.name, .formattedAddress]
    placesClient.findPlaceLikelihoodsFromCurrentLocation(withPlaceFields: placeFields) { [weak self] (placeLikelihoods, error) in
      guard let strongSelf = self else {
        return
      }

      guard error == nil else {
        print("Current place error: \(error?.localizedDescription ?? "")")
        return
      }

      guard let place = placeLikelihoods?.first?.place else {
        strongSelf.nameLabel.text = "No current place"
        strongSelf.addressLabel.text = ""
        return
      }

      strongSelf.nameLabel.text = place.name
      strongSelf.addressLabel.text = place.formattedAddress
    }
  }
}
      

هدف-C

#import "GetStartedViewController.h"
@import GooglePlaces;

@interface GetStartedViewController ()
// Add a pair of UILabels in Interface Builder and connect the outlets to these variables
@property (weak, nonatomic) IBOutlet UILabel *nameLabel;
@property (weak, nonatomic) IBOutlet UILabel *addressLabel;
@end

@implementation GetStartedViewController {
  GMSPlacesClient *_placesClient;
}

- (void)viewDidLoad {
  [super viewDidLoad];
  _placesClient = [GMSPlacesClient sharedClient];
}

// Add a pair of UILabels in Interface Builder and connect the outlets to these variables.
- (IBAction)getCurrentPlace:(UIButton *)sender {
  GMSPlaceField placeFields = (GMSPlaceFieldName | GMSPlaceFieldFormattedAddress);

  __weak typeof(self) weakSelf = self;
  [_placesClient findPlaceLikelihoodsFromCurrentLocationWithPlaceFields:placeFields callback:^(NSArray<GMSPlaceLikelihood *> * _Nullable likelihoods, NSError * _Nullable error) {
    __typeof__(self) strongSelf = weakSelf;
    if (strongSelf == nil) {
      return;
    }

    if (error != nil) {
      NSLog(@"An error occurred %@", [error localizedDescription]);
      return;
    }

    GMSPlace *place = likelihoods.firstObject.place;
    if (place == nil) {
      strongSelf.nameLabel.text = @"No current place";
      strongSelf.addressLabel.text = @"";
      return;
    }

    strongSelf.nameLabel.text = place.name;
    strongSelf.addressLabel.text = place.formattedAddress;
  }];
}

@end
      

مراحل بعدی

پس از پیکربندی پروژه، می‌توانید برنامه‌های نمونه را کاوش کنید. شما باید Cocoapods v1.6.1 را نصب کنید.