name from Images.xcassets

  • LaunchImage-700@2x~iphone
  • LaunchImage-700-568h@2x~iphone
  • LaunchImage-700-Portrait~ipad
  • LaunchImage-700-Portrait@2x~ipad
  • LaunchImage-700-Landscape~ipad
  • LaunchImage-700-Landscape@2x~ipad
  • AppIcon72x72@2x
  • AppIcon72x72
  • AppIcon60x60@2x
  • AppIcon50x50@2x
  • AppIcon50x50
  • AppIcon29x29@2x
  • AppIcon29x29

IOS 7.1 drop box download

reference

upload your app.plist to dropbox
get shared link of app.plist, like https://www.dropbox.com/s/qgknrfngaxazm38/app.plist
replace www.dropbox.com with dl.dropboxusercontent.com in the link, likehttps://dl.dropboxusercontent.com/s/qgknrfngaxazm38/app.plist
write your download.html like INSTALL!!
upload the download.html to dropbox
get shared link of download.html, like https://www.dropbox.com/s/gnoctp7n9g0l3hx/download.html
replace www.dropbox.com with dl.dropboxusercontent.com in the second link as well, likehttps://dl.dropboxusercontent.com/s/gnoctp7n9g0l3hx/download.html
Now, visit https://dl.dropboxusercontent.com/s/gnoctp7n9g0l3hx/download.html in your device, you can install the app like before.

WHAT A WONDERFUL WORLD!

百度地图SDK2.1 bug

error occur at;

_mapManager = [[BMKMapManager alloc]init];

error message:

-[__NSCFString stringFromMD5]: unrecognized selector sent to instance 0x145925d0

resolve:

other linker flags 添加 -Objc 或者-all_load
Project ->build settings ->linking->Other Linker flags

Ad hoc 教程 3 ==> ipa 的远程安装

Ad hoc 是苹果的内测机制,可以给所有注册的device 安装内测ipa。

  • 首先申请ad hoc 证书
  • 在dev center 加入设备udid
  • 设备下载 mobleprovision文件
  • 生成ipa,并安装(安装可以用itunes,安装或者远程安装) 注意打包时不能连接手机!特别是5s 不然会出现5s可以安装,其他设备不能安装的bug,原因是5s 是64位

生成证书参考:Ad hoc 教程 1 ==> 生成证书

用itunes安装参考:Ad hoc 教程 2==> 通过itunes安装ipa

ipa 的远程安装

主要是使用苹果的itms协议
通过safari打开
itms-services://?action=download-manifest&url=https://10.0.0.23:8000/srp.plist

或者应用内调用

1
[[UIApplication sharedApplication]openURL:[NSURL URLWithString:@"itms-services://?action=download-manifest&url=https://10.0.0.23:8000/srp.plist"]];

iOS7 以上必须使用https 服务器存放plist

标准plist

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN"
"http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<!-- array of downloads. -->
<key>items</key>
<array>
<dict>
<!-- an array of assets to download -->
<key>assets</key>
<array>
<!-- software-package: the ipa to install. -->
<dict>
<!-- required. the asset kind. -->
<key>kind</key>
<string>software-package</string>
<!-- optional. md5 every n bytes. -->
<!-- will restart a chunk if md5 fails. -->
<key>md5-size</key>
<integer>10485760</integer>
<!-- optional. array of md5 hashes -->
<key>md5s</key>
<array>
<string>41fa64bb7a7cae5a46bfb45821ac8bba</string>
<string>51fa64bb7a7cae5a46bfb45821ac8bba</string>
</array>
<!-- required. the URL of the file to download. -->
<key>url</key>
<string>http://www.example.com/apps/foo.ipa</string>
</dict>
<!-- display-image: the icon to display during download. -->
<dict>
<key>kind</key>
<string>display-image</string>
<!-- optional. icon needs shine effect applied. -->
<key>needs-shine</key>
<true/>
<key>url</key>
<string>http://www.example.com/image.57×57.png</string>
</dict>
<!-- full-size-image: the large 512×512 icon used by iTunes. -->
<dict>
<key>kind</key>
<string>full-size-image</string>
<!-- optional. one md5 hash for the entire file. -->
<key>md5</key>
<string>61fa64bb7a7cae5a46bfb45821ac8bba</string>
<key>needs-shine</key>
<true/>
<key>url</key>
<string>http://www.example.com/image.512×512.jpg</string>
</dict>
</array><key>metadata</key>
<dict>
<!-- required -->
<key>bundle-identifier</key>
<string>com.example.fooapp</string>
<!-- optional (software only) -->
<key>bundle-version</key>
<string>1.0</string>
<!-- required. the download kind. -->
<key>kind</key>
<string>software</string>
<!-- optional. displayed during download; -->
<!-- typically company name -->
<key>subtitle</key>
<string>Apple</string>
<!-- required. the title to display during the download. -->
<key>title</key>
<string>Example Corporate App</string>
</dict>
</dict>
</array>
</dict>
</plist>

需要配置的 字段

  • bundle-identifier ==> bundle identifier

  • bundle-version ==> bundle version

  • title ==> 安装的时候显示的title

  • software-package ==> ipa url #必须

  • display-image ==> 144 * 144 icon url

  • full-size-image ==> 512 * 512 icon url

vb based browser

参考视频教学 youtube

需要两个三方库 sourceCode
ChromeBasedWebBrowser.rar
,xulrunner-1.9.en-US.win32.zip

1,新建一个class 继承 Skybound.Gecko.GeckoWebBrowser

Imports Skybound.Gecko
Public Class FasterBrowser
    Inherits GeckoWebBrowser
End Class

2,在ui 上加入 new class

3,

Imports Skybound.Gecko

Public Class Form1

    Sub New()
        InitializeComponent()

        Xpcom.Initialize(Environment.CurrentDirectory + "lrunner")


    End Sub

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        FasterBrowser1.Navigate("http://www.zmaitech.com")
    End Sub

End Class

ios unlimited args method

- (void)showErrorWithTitle:(NSString *)title message:(NSString *)message
     cancelButtonTitle:(NSString *)cancelButtonTitle
     otherButtonTitles:(NSString *)otherButtonTitles, ... {

    UIAlertView *alert = [[UIAlertView alloc] initWithTitle:title
                                                message:message
                                               delegate:nil
                                      cancelButtonTitle:cancelButtonTitle
                                      otherButtonTitles:nil];

    va_list args;
    va_start(args, otherButtonTitles);
    for (NSString *arg = otherButtonTitles; arg != nil; arg = va_arg(args, NSString*))
        {
         [alert addButtonWithTitle:arg];
        }
    va_end(args);

    [alert show];
    [alert release];}