変更はサーバーなしでの再コンパイルを伴iPhoneアいかがですか?

StackOverflow https://stackoverflow.com/questions/1649945

  •  22-07-2019
  •  | 
  •  

質問

私は開発のiPhoneアプリケーションに私を取得データから、webサービスの現地ローカルサーバーにあります。

現在は、取得データに位置し、ローカルサーバのurlのようなこと:

http:\192.168.0.150\service\service.asmx\dataFetchingMethod

今後は、う場合のurlは変更すeサーバーのようなこと:

http:\www.anotherDomain.com\service\service.asmx\dataFetchingMethod

http:\www.anotherURL.com\service\service.asmx\dataFetchingMethod

それでは、どうすれば変更することができます動的に?

現在、私はハードコードされたurlを申し上げます。※

役に立ちましたか?

解決

適用設定されたこ

- (BOOL) getDataFromWebserver
{
    NSString *url = [[NSUserDefaults standardUserDefaults] stringForKey:@"dataUrl"];

    if(url == nil)
    {
        [self setDefaultPrefs];
        url = [[NSUserDefaults standardUserDefaults] stringForKey:@"dataUrl"];
    }
    [self fetchData:url];//to implement
}

- (void)setDefaultPrefs
{
    NSDictionary *appPrefs = [NSDictionary dictionaryWithObjectsAndKeys:
                                   @"hardCodedUrl", @"dataUrl", nil];

    [[NSUserDefaults standardUserDefaults] registerDefaults:appPrefs];
    [[NSUserDefaults standardUserDefaults] synchronize];        
}

もっと読む

他のヒント

ファイル(plistなど)からプロパティを読み取るクラスを作成する必要があります。

そのようにして、アプリが実行されるたびに、plistから構成を読み取り、指定されたサービスURLを呼び出します。これは、アプリを再コンパイルせずに変更できます。

変更しないリソースまたは非常にまれに変更するリソースに接続する必要があります。いくつかの異なるアプローチがあります。


プロキシアプローチ

リクエストをプロキシするマスターサーバー( http://masterurl.com/ )をセットアップできます。別のサーバー。ここでの考え方は、マスターサーバーは変更されないが、プロキシするマシンはいつでも変更される可能性があるということです。例:

iPhoneアプリが http://masterurl.com/ に接続すると仮定します:

  1. へのすべてのリクエスト http://masterurl.com/ http://someotherurl.com/

  2. 将来のある時点で、あなたは 交換する必要があります http://someotherurl.com/ ://snazzynewurl.com/ "rel =" nofollow noreferrer "> http://snazzynewurl.com/ 。

  3. これで変更できます http://masterurl.com/ "http://snazzynewurl.com/" rel = "nofollow noreferrer"> http://snazzynewurl.com/ 。

アプリケーションのユーザーに何も変更はなく、アプリを更新してレビューのために再送信する必要はありません。


ロケーションファイルアプローチ

txtファイルやxmlファイルなどのファイルから場所を取得できます。

ファイルが http://someurl.com/location.txt とそのコンテンツに存在すると仮定しますシンプルです:

inside location.txt:

http://someotherbaseurl.com/

アプリはこのテキストファイルを読み取り、 http://someotherbaseurl.com/ をベースとして使用します。アプリの残りのURL。 URLを変更する必要がある場合は、テキストファイルを更新するだけです。

ロケーションファイルアプローチを採用している場合は、コンテンツ配信ネットワーク上のURLでテキストファイルを使用できるように、Amazon S3またはRackspace Cloud Filesを使用してファイルをホストすることをお勧めします。

これに取り組む方法は他にもあるはずです。いずれにしても、決してまたはほとんど変更されないマスターURLが必要になります。そうしないと、アプリを再コンパイルして再送信しなければならない状況に陥ります。

これはまさにDNSの目的ではありませんか?好きな場所にリダイレクトする単一のドメイン名を指定します...ドメインをセットアップする前にデバッグするのはあまり役に立ちませんが、今すぐセットアップして、好きな場所にリダイレクトしてください。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top