emreheper

  • Dec 12, 2023
  • Joined Jul 2, 2022
  • rvm kullanarak Ruby’nin güncel versiyonunu kullanıcı klasörüne yükleyerek cocoapods u kurabildim. flutter doctor ile kontrolde de yüklenmiş olarak görüldü. yapmak isteyen için adımları yazıyorum.
    Benim cihazım MacBook Air 15″ M2 macOS Ventura 13.6 cihaz yeni olduğu için kurulumda genelde sıkıntı yaşanmış. Sorunu çözmek için bende 2 gün uğraştım.
    1.Homebrew i GitHub üzerinden kurulum dosyasını indirip kuruyoruz. (Terminal üzerinden komut ile kurulumda hata alındığı için dosya olarak indirip kurmak daha garanti.)

    1. Terminalde bash kabuğu ayarlı iken; rvm install 3.2.2 (burada 3.2.2 şuan en son versiyon. Yüklemek istediğiniz güncel Ruby versiyonunu yazmanız gerekli) komutunu yazıp enter a basıyoruz. size şifre sorabilir. macinizin şifresini gireceksiniz. (şifre girdiğiniz esnada ekranda herhangi bir karakter yazmayacaktır.)
    2. Ruby yüklemesi için terminalde size soru yöneltecek. enter’a basarsanız sistem klasörüne yüklemeye çalışacak. Ancak burada yazma izni olmadığı için hata alacaksınız. belgelerde yada farklı klasörde (Ruby kuracağınız klasörü oluşturup sağ tık ile bilgi ver seçeneğini açtığınızda dosya yolunu alacaksınız. ör. /Users/emre/Documents/Ruby ) oluşturduğunuz klasör yolunu terminalde size soru sorduğu alana yapıştırıp, enter a basıyoruz.
    3. Ruby yüklemesi başarılı olduğunu bildirir bir yazı yazacak. Son adımda terminale cocoapods yüklemesini bu komutla yapıyoruz. sudo gem install cocoapodskomutu yazıp entera bastığınızda şifre isteyebilir. macinizin şifresini gireceksiniz.
    4. yükleme başarılı olduğunda yine terminale flutter doctor yazıp entera bastığınızda Xcode altında cocoapods yüklemesinin yapıldığını göreceksiniz.
  • MacOs Ventura 13.6 versiyonunda flutterı kurdum ancak terminalde flutter doctor komutunu yazdığımda Cocoapods kurulu olmadığını söylüyor. sudo gem install cocoapods komutu ile yüklemek istiyorum ancak ruby sürümünün eski olmasından dolayı güncellenmesi gerektiği ve yazma izni olmadığı için güncellemediğini bildiriyor. internette yapmadığım şey kalmadı hala çözemedim. Homebrew üzerinden ruby güncelleme yapılması yönünde birçok makale var ancak Homebrew ruby desteğini kaldırdığı için onun üzerinden de olmuyor. Terminalde şuan cocoapods yüklemek istediğimda aşağıdaki çıktıyı alıyorum.
    ERROR: While executing gem … (Gem::FilePermissionError)
    You don’t have write permissions for the /System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/gems/2.6.0 directory.
    /Library/Ruby/Site/2.6.0/rubygems/installer.rb:715:pre_install_checks’te /Library/Ruby/Site/2.6.0/rubygems/installer.rb:303:install’da ‘ / Library /Ruby/Site /2.6.0/rubygems/request_set.rb:195:her birinde’ /Library/Ruby/Site/2.6.0/rubygems/request_set.rb:183:ininstall_gem’de ‘ /Library/Ruby/Site/2.6.0/rubygems /commands/install_command.rb:231:her birinde’ /Library/Ruby/Site/2.6.0/rubygems/commands/install_command.rb:224:yürütmede ‘ /Library/Ruby/Site/2.6.0/rubygems/command .rb:328: invoke_command’ /Library/Ruby/Site/2.6.0/rubygems/command_manager.rb:193:çalışırken ' /Library/Ruby/Site/2.6.0/rubygems/gem_runner.rb:52:in <ana>‘verify_gem_home’
    /Library/Ruby/Site/2.6.0/rubygems/installer.rb:905:in
    install’
    /Library/Ruby/Site/2.6.0/rubygems/resolver/specification.rb:105:in
    block in install’
    /Library/Ruby/Site/2.6.0/rubygems/request_set.rb:183:in
    install’
    /Library/Ruby/Site/2.6.0/rubygems/commands/install_command.rb:215:in
    block in install_gems’
    /Library/Ruby/Site/2.6.0/rubygems/commands/install_command.rb:224:in
    install_gems’
    /Library/Ruby/Site/2.6.0/rubygems/commands/install_command.rb:170:in
    invoke_with_build_args’
    /Library/Ruby/Site/2.6.0/rubygems/command_manager.rb:253:in
    process_args’
    /Library/Ruby/Site/2.6.0/rubygems/command_manager.rb:151:in
    run’
    /usr/bin/gem:21:in
    Bu durumu nasıl çözeceğiz?

    • Sanırım hata yazılan kod ile ilgili değil, flutter local notification eklentisi kaynaklı. Çünkü marketten indirdiğim farklı bir uygulamada benzer bir bildirim özelliği denk geldi. onda denedim onda da benim aldığım hatanın aynısı mevcut..

    • Denedim elimde samsung 7.0, huawei 9.0 ve huawei 11.0 sürümü olan 3 farklı cihaz var. Plugin 8.0 altındaki sürümlerde hata veriyor. Yanlış okumadıysam eksta bi kodlama yapmak gerektiği yazıyordu. ona henüz odaklanamadım. ama diğer cihazlarda aynı sorunla karşılaşıyorum.

    • Flutter vermiş olduğunuz kodda her dakika, saatlik, günlük, haftalık seçenekleri mevcut. İstediğim bu değil. Hatta yazdığım kod zaten bu periyodik koddaki günlük seçeneği gibi çalışıyor. Garip bir durum çözemedim.

    • Flutter öncelikle ilginiz için teşekkür ederim. Aslında kod çalışıyor. Aşağıda yazdığım kodu sizinle paylaştım. Benim istediğim, kullanıcı bir tarih ve bildirim almak istediği günü girecek, o istediği gün bildirim verilecek. Ancak kodda sanki “periodicallyShow” “RepeatInterval.daily” özelliği vermişim gibi günlük bildirim veriyor, tarihi görmüyor.

        List<tz.TZDateTime> scheduledDateTimes = [];
        DateTime startDate = DateTime.now();
        Duration offsetTime= DateTime.now().timeZoneOffset;
      
        Future<void> kurulum() async{
          var androidAyari = const AndroidInitializationSettings("@mipmap/ic_launcher");
          var iosAyari = const DarwinInitializationSettings();
          var kurulumAyari= InitializationSettings(android: androidAyari,iOS: iosAyari);
          await flp.initialize(kurulumAyari, onDidReceiveNotificationResponse: bildirimSecilme);
        }
      
        Future<void> bildirimSecilme(NotificationResponse notificationResponse) async{
          var payload = notificationResponse.payload;
          if(payload != null){
            debugPrint('notification payload: $payload');
          }
           print("bildirim tıklandı");
        }
      
      Future<void> bildirimOlustur(simdikiYil, ay, gun, secilenBildirimGunu) async {
          var androidBildirimDetay = const AndroidNotificationDetails(
              "kanal adı",
              "kanal içerik",
              channelDescription: "kanal açıklama",
              priority: Priority.high,
              importance: Importance.max);
          var iosBildirimDetay = const DarwinNotificationDetails();
          var bildirimDetay = NotificationDetails(android: androidBildirimDetay, iOS: iosBildirimDetay);
          var dateTime = DateTime((simdikiYil + 1), ay, (gun - secilenBildirimGunu), 10, 0,0,0,0);
      
          tz.initializeTimeZones();
      
          await flp.zonedSchedule(
              0,
              "Bildirim başlığı",
              "Bildirim mesaj içeriği",
              tz.TZDateTime.from(dateTime, tz.local),
              bildirimDetay,
              uiLocalNotificationDateInterpretation: UILocalNotificationDateInterpretation.absoluteTime,
              androidAllowWhileIdle: true,
              matchDateTimeComponents: DateTimeComponents.time,
              payload: "Payload zamanlı içerik");
      
        }
    • Merhabalar, geliştirmek istediğim uygulamada planlı (tarih saat girilerek) bildirim göndermek istiyorum. flutter local notifications eklentisi ile ne yaptıysam başarılı bir sonuç alamadım. Anlık ve zamanlı bildirim gönderebiliyorum ancak datetime ile bir türlü verilmli olamıyor. schedule özelliği güncel eklentide kaldırılmış yerine zoneSchedule kullanılması tavsiye ediliyor. Kullanıyorum olmuyor, internette yapılan uygulamaların birebir aynısını yapsam da olmuyor. Sonuç olarak bir önerisi olan var mı? farklı bir eklenti ya da kod gibi. Teşekkürler.

    • Merhabalar, ben Emre. Yıllardır kendi çapımda keyfi olarak herhangi bir ticari amaç gütmeden web tasarımla uğraştım ve son zamanlarda mobil uygulama konusuna merak saldım. Udemy üzerinden, Android Kotlin üzerine 2 farklı ileri seviye eğitimi takip ettim. Şimdi de Flutter üzerine eğitimi takip ediyorum.
      Bu işi tamamen keyfi yapıyorum ve kendimi geliştirmek istiyorum. Türkçe kaynak olacak şekilde bir site kurulması gerçekten sevindirici. Kuranların emeğine sağlık. Umarım hak ettiği yeri bulur.