2014年7月8日星期二

IOS - ENTERPRISE PROGRAM

適用對象:
  • 公司想開發In-House App發送公司內部員工使用
  • 公司必須有Dun & Bradstreet (D-U-N-S) Number鄧白氏編碼
  • 例如:BBC自己開發給BBC記者專用的App
幾項大重點:
  • 申請的等待時間可長可短,目前有聽說有人申請了半年才收到Apple回音。
  • 不能把App上架到Apple App Store
  • Ad-Hoc Distribution的Provisioning File:
    • 把App安裝到iOS裝置上做測試使用。
    • Developer帳號一年只能發送App到至多100台iOS裝置。
  • In-House Distribution的Provisioning File
    • 則沒有iOS裝置數量限制
    • 權限可說是無限大。只要把這個Provisioning File綁在App的.ipa檔案裡面,可以在任何一台iOS裝置上安裝,而不須像Ad Hoc一樣必須事先把裝置登記到Provisioning File中(在http://developer.apple.com中的Devices頁面)。
發佈App方式:
  • 法一:用Ad-Hoc Distribution,把.ipa檔燒進有登記到Provisioning File的iOS裝置中。
  • 法二:把ipa檔案,綁上In-House Distribution的Provisioning File,用email發佈給公司員工,透過iTunes來安裝App。
  • 法三:透過OS X Lion Server的Profile Manager,綁上In-House Distribution的Provisioning File,用推播訊息(Push Notification)無線通知使用者下載安裝。
  • 法四:Over-The Air:綁上In-House Distribution的Provising File,架一個只有讓公司員工可以連上的網頁,把App放在網頁中供人下載安裝。
  • 法五:用第三方MDM(Mobile Device Management) Solution。
控管:
參考資料:
  1. http://developer.apple.com/support/ios/enterprise.html
  2. http://images.apple.com/iphone/business/docs/20110801_In-house_App_Accelerator_Guide.pdf
  3. http://www.apple.com/iphone/business/integration/mdm/
  4. http://developer.appcelerator.com/question/88651/developingdistributing-inhouse-apps
  5. http://www.prnewswire.com/news-releases/distributing-in-house-apps-now-a-snap-for-apple-iphones-88806962.html
  6. http://developer.apple.com/library/ios/#featuredarticles/FA_Wireless_Enterprise_App_Distribution/Introduction/Introduction.html
  7. images.apple.com/iphone/business/docs/iPhone_MDM.pdf
  8. 申請D-U-N-S Number:https://eupdate.dnb.com/requestoptions.asp

IOS - 应用的发布方式有哪些?

App Store Distribution: 最常用的, 需要Apple审核 
Ad-Hoc Distribution: 针对测试设备, 每个应用不能发不到超过100个设备上,发布前需要将每个设备的唯一编码打包进去 
Custom B2B App Distribution: 针对企业用户批量购买,可以进行打折等,仅限美国用户 
In-house Distribution: 针对企业内部用户发布的应用,需要企业开发者账号,然后通过itunes同步、iPhone配置工具、建立私有的应用安装网站等方式进行发布,不需要审核

2014年7月7日星期一

IOS Training - NS***

在IOS开发中,经常会遇到NS开头的对象,这个要从乔帮主历史恩怨说起。当年Steve Jobs 和John Scullery与恩怨,乔帮主当年被人挤兑出苹果,自立门户的时候做了个公司叫做NextStep,里面这一整套开发包很是让一些科学家们喜欢,而现在Mac OS用的就是NextStep这一套函数库。 

这些开发NextStep的人们比较自恋地把函数库里面所有的类都用NextStep的缩写打头命名,也就是NS****了。比较常见的比如: 
NSLog 
NSString 
NSInteger 
NSURL 
NSImage 
… 

你会经常看到一些教学里面会用到: 

NSLog (@"%d",myInt); 

这句话主要是在console里面跟踪使用,你会在console里面看到myInt的值(在XCode里面运行的时候打开dbg窗口即可看到)。 

你还可以看到其他名字打头的一些类,比如CF、CA、CG、UI等等,比如 

CFStringTokenizer 这是个分词的东东 
CALayer 这表示Core Animation的层 
CGPoint 这表示一个点 
UIImage 这表示iPhone里面的图片 

CF说的是Core Foundation,CA说的是Core Animation,CG说的是Core Graphics,UI说的是iPhone的User Interface……还有很多别的,等你自己去发掘了。 

2014年6月19日星期四

phonegap faq

phonegap building faq 

1.xcode-select 

fanfq-macbook:hello fanfangqing$ cordova -d platform add ios 
cordova library for "ios" already exists. No need to download. Continuing. 
Checking if platform "ios" passes minimum requirements... 
Creating ios project... 
Running command: /Users/fanfangqing/.cordova/lib/ios/cordova/3.5.0/bin/create --arc --cli /Users/fanfangqing/MyCode/fanfq-html54mobile/phonegap/hello/platforms/ios com.example.hello HelloWorld 
xcode-select: error: tool 'xcodebuild' requires Xcode, but active developer directory '/Library/Developer/CommandLineTools' is a command line tools instance
Cordova can only run in Xcode version 4.6 or greater.
 
Command finished with error code 2: /Users/fanfangqing/.cordova/lib/ios/cordova/3.5.0/bin/create --arc,--cli,/Users/fanfangqing/MyCode/fanfq-html54mobile/phonegap/hello/platforms/ios,com.example.hello,HelloWorld 
Error: /Users/fanfangqing/.cordova/lib/ios/cordova/3.5.0/bin/create: Command failed with exit code 2
    at ChildProcess.whenDone (/usr/local/lib/node_modules/cordova/node_modules/cordova-lib/src/cordova/superspawn.js:131:23)
    at ChildProcess.emit (events.js:98:17)
    at maybeClose (child_process.js:755:16)
    at Process.ChildProcess._handle.onexit (child_process.js:822:5)
 
fanfq-macbook:hello fanfangqing$ cordova platform ls 

*由于最近新出了个swift的东东所以xcode4跟新到了xcode6beta;macos也从Lion直接跟新到Mavericks,跳过了Mountain Lion由于之前跟新到Mountain Lion要收费,作为很扣的我当然不愿意支付那笔费用,不过这次跟新到Mavericks是免费的,哈哈,窃喜一小下。 
fanfq-macbook:Applications fanfangqing$ sudo xcode-select --switch /Applications/Xcode6-Beta.app/Contents/Developer 

喵哩个咪的问题解决了,在google group中发邮件问题,有专家指出当前phonegap支持xcode最大的版本号是5.1,所以我之前安装的xcode6beta想尝鲜swift所以不得不换成老版本。 
/////////////////////////////////////////////////// 
for android 
fanfq-macbook:hello fanfangqing$ cordova platform add android 
Creating android project... 

/Users/fanfangqing/.cordova/lib/android/cordova/3.5.0/bin/node_modules/q/q.js:126 
                    throw e; 
                          ^ 
Error: ERROR : executing command 'ant', make sure you have ant installed and added to your path. 
    at /Users/fanfangqing/.cordova/lib/android/cordova/3.5.0/bin/lib/check_reqs.js:47:27 
    at ChildProcess.exithandler (child_process.js:651:7) 
    at ChildProcess.emit (events.js:98:17) 
    at maybeClose (child_process.js:755:16) 
    at Socket.<anonymous> (child_process.js:968:11) 
    at Socket.emit (events.js:95:17) 
    at Pipe.close (net.js:465:12) 
Error: /Users/fanfangqing/.cordova/lib/android/cordova/3.5.0/bin/create: Command failed with exit code 8 
    at ChildProcess.whenDone (/usr/local/lib/node_modules/cordova/node_modules/cordova-lib/src/cordova/superspawn.js:131:23) 
    at ChildProcess.emit (events.js:98:17) 
    at maybeClose (child_process.js:755:16) 
    at Process.ChildProcess._handle.onexit (child_process.js:822:5) 
fanfq-macbook:hello fanfangqing$ 

phonegap - CLI (Command-Line Interface)

喵哩个咪的! 
一年多不玩phonegap了,最近项目结束有空再次研究下;发现已经出了3.x版本了,虽然之前的2.0版本还可以使用做一些原型演示,但是发现出了个CLI的东东,貌似很牛逼的样子,经过尝试后发现各种问题,不过觉得这个东西还是很用的,一定要解决这些问题。另外写了篇文章讲诉了我在使用CLI中遇到的各种问题。 

CLI: 
http://docs.phonegap.com/en/edge/guide_cli_index.md.html#The%20Command-Line%20Interface