تشغيل 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)
[!] الأجهزة المتصلة
! لا توجد أجهزة متاحة
@ 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؟
شكرا لك.
(ملاحظة في لقطة الشاشة):
mvanbeusekom تحديث آخر ، لقد تمكنت من إنشاء التطبيق أخيرًا: تم التعليق على السطر التالي على ملف podfile الخاص بي:
use_frameworks!
Uncommented السطر والتطبيق يجمع باستخدام المكون الإضافي الخاص بك. يتعطل التطبيق الآن عند البدء ، لكنني سأبحث في ذلك (ربما يلزم بعض الإعداد لهذا التطبيق لاستخدام خدمات الموقع على iOS)
أتمنى أن يساعدك هذا.
mvanbeusekom أجرى للتو بعض الاختبارات في تطبيق رفرفة نظيف
أيضًا ، قمت للتو بتحميل إصدار إلى متجر التطبيقات (لا يزال الإصدار التجريبي) ولكن كل شيء سار بسلاسة.
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 الخاص بك.
التعليق الأكثر فائدة
mvanbeusekom أجرى للتو بعض الاختبارات في تطبيق رفرفة نظيف
أيضًا ، قمت للتو بتحميل إصدار إلى متجر التطبيقات (لا يزال الإصدار التجريبي) ولكن كل شيء سار بسلاسة.
AFAIK ، على الأقل بالنسبة لي ، تم حل المشكلة.