मुझे लगता है कि आप अपने खुद के सर्वर जो आप अपने GIDSignin के साथ एक serverclientID शामिल करने के लिए की आवश्यकता है साथ GIDSignin उपयोग कर रहे हैं ग्रहण करने के लिए जा रहा हूँ। यह मेरे ऐप को वेबव्यू या यहां तक कि ब्राउज़र खोलने के बजाय लॉग इन करने के लिए यूट्यूब या Google प्लस का उपयोग करने का प्रयास करेगा। यह एक GIDSigninError = -1 "संभावित रूप से पुनर्प्राप्त करने योग्य त्रुटि .." लौटाएगा और उपयोगकर्ता को लॉग इन करने की अनुमति नहीं देगा।
जिस तरह से मैंने इसे हल किया था, वह यूआईपीप्लिकेशंस को ओवरराइड करके खोले जाने से पहले Google या यूट्यूब से यूआरएल को अवरुद्ध कर रहा था canOpenURL समारोह। मैं UIApplication उपवर्गीकरण और इस तरह canOpenURL को लागू करने से ऐसा किया:
@interface MyApp : UIApplication
- (BOOL)canOpenURL:(NSURL *)url;
@end
@implementation MyApp
- (BOOL)canOpenURL:(NSURL *)url
{
if ([[url scheme] hasPrefix:@"com-google-gidconsent"] || [[url scheme] hasPrefix:@"com.google.gppconsent"]) {
return NO;
}
return [super canOpenURL:url];
}
@end
int main(int argc, char * argv[]) {
@autoreleasepool {
return UIApplicationMain(argc, argv, NSStringFromClass([MyApp class]), NSStringFromClass([AppDelegate class]));
}
}
सूचना है कि आमतौर पर वहाँ argv के बाद एक शून्य होगा, लेकिन यह वह जगह है जहाँ आप UIApplication के अपने उपवर्ग डाल दिया। यह भी है कि आप ऐपडिलेगेट के अपने उप-वर्ग का उपयोग कैसे कर सकते हैं।
अन्य समाधान UIApplication पर एक वर्ग है कि canOpenURL ओवरराइड करता है बना सकते हैं और swizzling उपयोग अपने कस्टम canOpenURL भीतर मूल कार्यान्वयन कॉल करने के लिए होगा। यह swizzling पर एक अच्छा लेख है: https://blog.newrelic.com/2014/04/16/right-way-to-swizzle/
हालांकि मैं आपको चेतावनी देता चाहिए, इन दो समाधान हैक्स कर रहे हैं और यदि आप ऐसा करने आपके आवेदन पर हो सकता है दुष्प्रभाव के बारे में वास्तव में सावधान रहना होगा। मुझे यकीन नहीं है कि सेब ठीक रहेगा।
स्रोत
2015-09-03 04:03:43
कोई भाग्य? मैं इसे काम करने के लिए नहीं मिल सकता .. – Chicken
मुझे भी एक ही समस्या का सामना करना पड़ रहा है, अगर आपको वह जवाब मिल गया है तो कृपया मुझे यह बताएं कि इसे कैसे हल किया जाए। –