2012-04-18 31 views
9

Bir soru sordum here ama cevap yeni bir konu açmak için bana rehberlik etti. Kısacası, uygulamamdan Appstore'da ücretsiz bir uygulama başlatmak istiyorum ancak başlatmak istediğim uygulamanın URL Scheme numaralı sürümü var. Diğer sorularımın yorumları, SBSLaunchApplicationWithIdentifier gibi bazı özel API'ları veya UIDocumentInteractionController gibi sınıfları kullanmayı mümkün kılıyor. Biri, başvurumdan bir uygulamanın nasıl başlatılacağı konusunda bana yardımcı olabilir.Uygulamamdan bir uygulamayı başlatmak için özel API

cevap

15

Şimdiden teşekkürler. İlk önce 'un bu yöntemin jailbreak olduğunu söyleyeyim! Apple'ın 'un desteğini destekleyerek gelecekteki bir sürümde istediği zaman özel API kullanıyor! (Veya LaunchServices

[[UIApplication sharedApplication] launchApplicationWithIdentifier:@"com.apple.Preferences" suspended:NO]; 

Ben kök, yararsız görünüşe sıçrama tahtası olarak çalışmıyor bir uygulamadan bu yöntemi çağıran test kadarıyla:

en Başlayalım, bu yöntem [UIApplication launchApplicationWithIdentifier:suspended:] özel bir yöntem kullanır) sadece kök uygulamaların bu yöntemi kullanarak diğer uygulamaları başlatmasına izin ver.

Bu yüzden, önce iPhone'unuzu jailbreak etmeniz gerekiyor, daha sonra uygulamanızın root olarak çalışmasını sağlamanız gerekiyor. Uygulamanızın root olarak çalışmasını sağlamak için, her zamanki/User/Applications/UUID UUID /YourApp.app yerine /Applications/YourApp.app dosyasına yerleştirmeniz gerekir. Üste |

CSS kullanarak OpenSSH'yi yükleyebilir ve telefonunuzun kabuğuna erişmek için SSH kullanabilirsiniz.

Sonra doğru yerde uygulamanızı yaptıktan sonra örneğin, izinlerini ayarlamak gerekir:

enter image description here

Ben Cydia ile aynı olanları kullanmak istiyorsunuz:

chown -R root:wheel /Applications/YourApp.app 

İleri, küçük bir numara.

chmod 4755 /Applications/YourApp.app/YourApp 

Ve son adım için, sıçrama tahtası setuid biraz değil açık uygulamalar yapar, ancak (başka bir uygulamayı açabilirsiniz) bir komut dosyası açılır: İkili setuid bit gerekecek! Bir uygulama var (sadece respring, Şimdi

#!/bin/bash 
CrrDir=$(dirname "$0") 
exec "${CrrDir}"/YourApp_ 

:

mv /Applications/YourApp.app/YourApp /Applications/YourApp.app/YourApp_ 

Ve aşağıdaki komut ile uygulama klasöründe YourApp adlı yeni bir dosya oluşturun: Sadece YourApp_ gibi bir şeye ikili adını değiştirmek Bunun için Cydia) ve gitmeye hazırsınız.

Üzgünüm, bu zor görünüyorsa, öyle değil, nerede öğrendiğimi hatırlamıyorum, ama uzun zaman önceydi. Bu yöntem tüm iOS sürümlerinde iyi çalışır ve sadece iOS 5.1 ile test ettim.

Yine, BU CİHAZ, BU'YI YAPABİLİRSENİZ APPLE ONAYLANMAMALIDIR.

+0

Önceden teşekkürler. Okudum ve şimdi üzerinde çalışacağım.Olursa olsun zor :) – ilhnctn

+0

Np, umarım bu cevap daha fazla insana yardımcı olur, ben bu soruyu SO içinde birçok kez gördüm. – fbernardo

+0

İkinci bir soru olarak, bunları yapmak için aygıtımı jailbreak etmek zorundayım (gibi ... Cydia kullanarak OpenSSH'yi kurun ve telefonunuzun kabuğuna erişmek için SSH kullanın) – ilhnctn

İlgili konular