Flutter-geolocator: فشل الإنشاء لنظام iOS: لم يتم العثور على ملف "geolocator / geolocator-Swift.h"

تم إنشاؤها على ٢٦ يونيو ٢٠١٨  ·  12تعليقات  ·  مصدر: Baseflow/flutter-geolocator

تشغيل flutter build ios - تحرير:

=== إنشاء هدف firebase_messaging لحجرات المشروع مع إصدار التكوين ===
/ Users / * * / development / flutter / .pub-cache / hosting / pub.dartlang.org / geolocator-0.0.1 / ios / Classes / GeolocatorPlugin.m: 2: 9: خطأ فادح: 'geolocator / geolocator-Swift ملف .h 'غير موجود

يستورد

ناتج طبيبي:
ملخص الطبيب (لمشاهدة كافة التفاصيل ، قم بتشغيل flutter doctor -v):
[✓] رفرفة (مطور القناة ، v0.5.5 ، في نظام التشغيل Mac OS X 10.13.3 17D102 ، الإعدادات المحلية pt-PT)
[✗] Android toolchain - تطوير لأجهزة Android
✗ غير قادر على تحديد موقع Android SDK.
قم بتثبيت Android Studio من: https://developer.android.com/studio/index.html
عند التشغيل الأول ، سيساعدك في تثبيت مكونات Android SDK.
(أو قم بزيارة https://flutter.io/setup/#android-setup للحصول على إرشادات مفصلة).
إذا تم تثبيت Android SDK على موقع مخصص ، فقم بتعيين $ ANDROID_HOME لهذا الموقع.
[✓] سلسلة أدوات iOS - تطوير لأجهزة iOS (Xcode 9.2)
[✗] Android Studio (غير مثبت)
[!] رمز VS (الإصدار 1.14.2)
[!] الأجهزة المتصلة
! لا توجد أجهزة متاحة

bug

التعليق الأكثر فائدة

mvanbeusekom أجرى للتو بعض الاختبارات في تطبيق رفرفة نظيف

أيضًا ، قمت للتو بتحميل إصدار إلى متجر التطبيقات (لا يزال الإصدار التجريبي) ولكن كل شيء سار بسلاسة.
image

AFAIK ، على الأقل بالنسبة لي ، تم حل المشكلة.

ال 12 كومينتر

@ manuelgomes2 شكرًا جزيلاً على تواصلك معنا.

قمنا بتحليل المشكلة وتمكنا من إعادة إنتاجها ونعمل على إصلاحها (انظر PR # 18)

@ manuelgomes2 بعد الاتصال بـ Google ، يبدو أن هناك مشكلة في الوقت الحالي مع تطبيقات Flutter التي تم إنشاؤها باستخدام Objective-C (وهو الإعداد الافتراضي) التي تستهلك مكونات Swift الإضافية. راجع أيضًا التعليقات التي تلقيتها على سؤالي في Stack Overflow .

الحل الآن هو إنشاء تطبيقك لاستخدام Swift على iOS (على سبيل المثال باستخدام أمر Flutter CLI flutter create -i swift my_app ، لاحظ مفتاح التبديل السريع -i ). يجب أن أحذرك مع ذلك من أن هذا سيؤدي إلى زيادة كبيرة في حجم التطبيق.

في غضون ذلك ، سنعمل على ترجمة المكون الإضافي من Swift إلى Objective-C بحيث لا تكون هناك حاجة إلى الحل أعلاه ولا يؤثر أيضًا على حجم التطبيق بطريقة سلبية.

شكرًا لك على الوقت ، ولكن "flutter create -i swift my_app" ليس هو الحل - لقد قمت بإنشاء تطبيق ios الخاص بي باستخدام "-i swift" من البداية ، لكن المشكلة استمرت ...

شيء غريب واحد ، عندما أقوم بفتح GeneratedPluginRegistrant.m في XCode ، يظهر المكون الإضافي الخاص بك بلون مختلف (أرجواني) لجميع المكونات الإضافية الأخرى ، وهو الوحيد الذي لا يبدأ بـ "FLT" في الاسم - آسف لجهلي ، لكن هل تعرف لماذا وإذا كان هذا مرتبطًا بطريقة ما؟ هل يظهر لك نفس الشيء إذا فتحت هذا الملف في XCode؟

شكرا لك.

(ملاحظة في لقطة الشاشة):
image

mvanbeusekom تحديث آخر ، لقد تمكنت من إنشاء التطبيق أخيرًا: تم التعليق على السطر التالي على ملف podfile الخاص بي:
use_frameworks!
Uncommented السطر والتطبيق يجمع باستخدام المكون الإضافي الخاص بك. يتعطل التطبيق الآن عند البدء ، لكنني سأبحث في ذلك (ربما يلزم بعض الإعداد لهذا التطبيق لاستخدام خدمات الموقع على iOS)
أتمنى أن يساعدك هذا.

mvanbeusekom أجرى للتو بعض الاختبارات في تطبيق رفرفة نظيف

أيضًا ، قمت للتو بتحميل إصدار إلى متجر التطبيقات (لا يزال الإصدار التجريبي) ولكن كل شيء سار بسلاسة.
image

AFAIK ، على الأقل بالنسبة لي ، تم حل المشكلة.

@ manuelgomes2 هذه أخبار رائعة ، شكرًا جزيلاً لك على التعليقات.

فقط للتأكد ، السبب المحتمل لتعطل تطبيقك عند البدء مرتبط بحقيقة أن إذن استخدام الخدمات المستندة إلى الموقع مفقود في ملف Info.plist (الوثائق التي يجب إضافة أذونات عليها هي في ملف README.md ).

بعد البحث في Google ، وجدت الخيط التالي الذي قد يكون مفيدًا (سأضيف هذا أيضًا إلى ملف README الخاص بنا): https://github.com/flutter/flutter/issues/16049

أهلا!

عند رؤية هذه المشكلة ، أرى أنه في البداية كان @ manuelgomes2 يستخدم firebase_messaging و geolocator ، وكان يواجه المشكلات.

في وقت لاحق ، أنشأ تطبيقًا جديدًا على ما يبدو بدون firebase_messaging ، وتمكن من إنشائه.

مانويل ، هل تمكنت من مزجهما معًا في نفس المشروع؟

هذه هي مشكلتي حاليًا . على ما يبدو ، عند استخدام مكونات Firebase الإضافية ، لا يمكن دمجها مع مكون إضافي آخر يستخدم رمز Swift ، لأن FB يتطلب use_frameworks! لتكون بالخارج ، وتتطلب إضافات كود Swift use_frameworks! لتكون في! : - /

(في الواقع أتوقع أن يكون هذا خطأ)

ffeu على سؤال SO المرتبط الذي ذكرت أنك واجهت الخطأ التالي:

The “Swift Language Version” (SWIFT_VERSION) build setting must be set to a supported value for targets which use Swift. This setting can be set in the build settings editor.

بالنسبة لي ، يبدو أنك بحاجة إلى تحديد إصدار Swift في Podfile عن طريق إضافة السطر التالي:

config.build_settings['SWIFT_VERSION'] = '4.1'

يجب أن يكون جزءًا من كتلة post_install ، مثل هذا:

post_install do |installer|
  installer.pods_project.targets.each do |target|
    target.build_configurations.each do |config|
      config.build_settings['ENABLE_BITCODE'] = 'NO'
      config.build_settings['SWIFT_VERSION'] = '4.1'
    end
  end
end

لست متأكدًا من أن هذا سيعمل لأنني لم أختبره ، لكن الأمر يستحق المحاولة. واسمحوا لي أن أعرف إذا كان ذلك يساعد.

ملاحظة: لقد قمت أيضًا بنشر ما ورد أعلاه كإجابة على Stack Overflow.

مرحبًا موريتس ، لقد نجحت !! \ س /

لقد اختبرت ذلك سابقًا ، ولكن مع "3.2" فقط! عملت مع كل من 4.0 و 4.1.

شكرا جزيلا!

لقد اختبرته باستخدام 3.2 و 4.0 و 4.1 و 4.2 ولكن لا يزال XCode يظهر الخطأ
'geolocator/geolocator-Swift.h' file not found هذا هو الكود الموجود في ملفي

#import "GeolocatorPlugin.h"
#import <geolocator/geolocator-Swift.h> // this line causes error

<strong i="8">@implementation</strong> GeolocatorPlugin
+ (void)registerWithRegistrar:(NSObject<FlutterPluginRegistrar>*)registrar {
  [SwiftGeolocatorPlugin registerWithRegistrar:registrar];
}
<strong i="9">@end</strong>

يمكن لأي شخص أن يرشدني؟

أعتقد أنه إصدار Xcode الخاص بك.

تحقق من سؤال SO هذا.

هل كانت هذه الصفحة مفيدة؟
0 / 5 - 0 التقييمات

القضايا ذات الصلة

prasant10050 picture prasant10050  ·  6تعليقات

Sammius picture Sammius  ·  4تعليقات

estevez-dev picture estevez-dev  ·  6تعليقات

hectorAguero picture hectorAguero  ·  5تعليقات

seakmengc picture seakmengc  ·  3تعليقات