diff --git a/sdk/android_sdk/sdk/src/com/tesla/tmd/Test.java b/sdk/android_sdk/SDK/src/java/com/wbtech/ums/Test.java similarity index 94% rename from sdk/android_sdk/sdk/src/com/tesla/tmd/Test.java rename to sdk/android_sdk/SDK/src/java/com/wbtech/ums/Test.java index 43c281af..007ba62c 100755 --- a/sdk/android_sdk/sdk/src/com/tesla/tmd/Test.java +++ b/sdk/android_sdk/SDK/src/java/com/wbtech/ums/Test.java @@ -1,9 +1,5 @@ -package com.tesla.tmd; +package com.wbtech.ums; -import org.json.JSONException; -import org.json.JSONObject; - -import junit.framework.Assert; import android.test.AndroidTestCase; public class Test extends AndroidTestCase { diff --git a/sdk/android_sdk/sdk/src/java-templates/com/wbtech/ums/UmsConstants.java b/sdk/android_sdk/SDK/src/java/com/wbtech/ums/UmsConstants.java similarity index 100% rename from sdk/android_sdk/sdk/src/java-templates/com/wbtech/ums/UmsConstants.java rename to sdk/android_sdk/SDK/src/java/com/wbtech/ums/UmsConstants.java diff --git a/sdk/android_sdk/sdk/src/java/com/wbtech/ums/AppInfo.java b/sdk/android_sdk/sdk/src/java/com/wbtech/ums/AppInfo.java index 1082f7c2..8a9c0274 100755 --- a/sdk/android_sdk/sdk/src/java/com/wbtech/ums/AppInfo.java +++ b/sdk/android_sdk/sdk/src/java/com/wbtech/ums/AppInfo.java @@ -14,8 +14,6 @@ package com.wbtech.ums; -import com.wbtech.ums.UmsConstants; - import android.content.Context; import android.content.pm.PackageInfo; import android.content.pm.PackageManager; diff --git a/sdk/android_sdk/sdk/src/java/com/wbtech/ums/ClientdataManager.java b/sdk/android_sdk/sdk/src/java/com/wbtech/ums/ClientdataManager.java index eb2c4b97..8ddfad38 100755 --- a/sdk/android_sdk/sdk/src/java/com/wbtech/ums/ClientdataManager.java +++ b/sdk/android_sdk/sdk/src/java/com/wbtech/ums/ClientdataManager.java @@ -13,14 +13,12 @@ */ package com.wbtech.ums; +import android.content.Context; + import org.json.JSONArray; import org.json.JSONException; import org.json.JSONObject; -import com.wbtech.ums.UmsConstants; - -import android.content.Context; - class ClientdataManager { private Context context; @@ -77,7 +75,7 @@ public void judgeSession(final Context context){ CobubLog.i(UmsConstants.LOG_TAG,UsinglogManager.class, "judgeSession on clientdata"); try { if (CommonUtil.isNewSession(context)) { - String session_id = CommonUtil.generateSession(context); + String session_id = CommonUtil.generateSession(context); CobubLog.i(UmsConstants.LOG_TAG, UsinglogManager.class,"New Sessionid is " + session_id); } } catch (Exception e) { diff --git a/sdk/android_sdk/sdk/src/java/com/wbtech/ums/CommonUtil.java b/sdk/android_sdk/sdk/src/java/com/wbtech/ums/CommonUtil.java index 18bdffc9..b952a6c8 100755 --- a/sdk/android_sdk/sdk/src/java/com/wbtech/ums/CommonUtil.java +++ b/sdk/android_sdk/sdk/src/java/com/wbtech/ums/CommonUtil.java @@ -14,22 +14,6 @@ package com.wbtech.ums; -import java.io.File; -import java.io.FileInputStream; -import java.io.FileOutputStream; -import java.io.IOException; -import java.io.RandomAccessFile; -import java.security.MessageDigest; -import java.text.ParseException; -import java.text.SimpleDateFormat; -import java.util.Date; -import java.util.Locale; -import java.util.UUID; -import java.util.concurrent.locks.ReentrantReadWriteLock; - -import org.json.JSONArray; -import org.json.JSONObject; - import android.app.Activity; import android.app.ActivityManager; import android.content.ComponentName; @@ -41,10 +25,26 @@ import android.os.Build; import android.os.Environment; import android.telephony.TelephonyManager; +import android.util.Log; -import com.wbtech.ums.UmsConstants; import com.wbtech.ums.UmsAgent.SendPolicy; +import org.json.JSONArray; +import org.json.JSONObject; + +import java.io.File; +import java.io.FileInputStream; +import java.io.FileOutputStream; +import java.io.IOException; +import java.io.RandomAccessFile; +import java.security.MessageDigest; +import java.text.ParseException; +import java.text.SimpleDateFormat; +import java.util.Date; +import java.util.Locale; +import java.util.UUID; +import java.util.concurrent.locks.ReentrantReadWriteLock; + class CommonUtil { private static String USER_ID = ""; private static String curversion = ""; @@ -330,7 +330,20 @@ public static String getNetworkType(Context context) { return typeString; } + /** + * 判断是否是新的session + * cobub之前规则是,只要在【时间间隔】内,算一次session + * 1,app启动后,关闭,在【时间间隔】内启动session值相同 + * 2,app启动后,后台运行,在【时间间隔】内启动session值相同 + * 应修改:当app启动时,session重置 + * @param context + * @return + */ static boolean isNewSession(Context context) { + Log.i("longtest", "-----------------------------------------isNewSession"); + /** + * 此处有疑问? + */ if (context == null) { CobubLog.e(UmsConstants.LOG_TAG, CommonUtil.class, "context is null"); return false; @@ -341,10 +354,15 @@ static boolean isNewSession(Context context) { long session_save_time = sp.getValue("session_save_time", 0); CobubLog.i(UmsConstants.LOG_TAG, CommonUtil.class, "currenttime=" + currenttime); CobubLog.i(UmsConstants.LOG_TAG, CommonUtil.class, "session_save_time=" + session_save_time); + /** + * 若当前时间-之前session最后一次保留时间 > 时间间隔 + * 则 创建新session + */ if (currenttime - session_save_time > getSessionContinueMillis(context)) { CobubLog.i(UmsConstants.LOG_TAG, CommonUtil.class, "return true,create new session."); return true; } + // 否则为同一个session CobubLog.i(UmsConstants.LOG_TAG, CommonUtil.class, "return false.At the same session."); return false; } catch (Exception e) { @@ -564,7 +582,7 @@ public synchronized static String getSALT(Context context) { String file_name = context.getPackageName().replace(".", ""); String sdCardRoot = Environment.getExternalStorageDirectory() .getAbsolutePath(); - int apiLevel = Integer.parseInt(android.os.Build.VERSION.SDK); + int apiLevel = Integer.parseInt(Build.VERSION.SDK); File fileFromSDCard = new File(sdCardRoot +File.separator, "."+file_name); File fileFromDData = new File(context.getFilesDir(),file_name);// 获取data/data//files //4.4之後 /storage/emulated/0/Android/data//files @@ -575,7 +593,7 @@ public synchronized static String getSALT(Context context) { String saltString = ""; if (Environment.getExternalStorageState().equals( - android.os.Environment.MEDIA_MOUNTED)) { + Environment.MEDIA_MOUNTED)) { // sdcard存在 if (!fileFromSDCard.exists()) { diff --git a/sdk/android_sdk/sdk/src/java/com/wbtech/ums/CposSSLSocketFactory.java b/sdk/android_sdk/sdk/src/java/com/wbtech/ums/CposSSLSocketFactory.java deleted file mode 100755 index 0bd06934..00000000 --- a/sdk/android_sdk/sdk/src/java/com/wbtech/ums/CposSSLSocketFactory.java +++ /dev/null @@ -1,71 +0,0 @@ -package com.wbtech.ums; - -import java.io.IOException; -import java.net.Socket; -import java.net.UnknownHostException; -import java.security.KeyManagementException; -import java.security.KeyStore; -import java.security.KeyStoreException; -import java.security.NoSuchAlgorithmException; -import java.security.UnrecoverableKeyException; -import java.security.cert.CertificateException; -import java.security.cert.X509Certificate; - -import javax.net.ssl.SSLContext; -import javax.net.ssl.TrustManager; -import javax.net.ssl.X509TrustManager; - -import org.apache.http.conn.ssl.SSLSocketFactory; - -import com.wbtech.ums.UmsConstants; - -public class CposSSLSocketFactory extends SSLSocketFactory { - SSLContext sslContext = SSLContext.getInstance("TLS"); - - public CposSSLSocketFactory() throws NoSuchAlgorithmException, - KeyManagementException, KeyStoreException, - UnrecoverableKeyException { - super((KeyStore) null); - - TrustManager tm = new X509TrustManager() { - public void checkClientTrusted(X509Certificate[] chain, - String authType) throws CertificateException { - - } - - public void checkServerTrusted(X509Certificate[] chain, - String authType) throws CertificateException { - - for (X509Certificate x : chain) { - CobubLog.d(UmsConstants.LOG_TAG,CposSSLSocketFactory.class,"server dn is:"+ x.getSubjectDN().toString()); - if (x.getSubjectDN().toString() - .equalsIgnoreCase(UmsConstants.SDK_HTTPS_DN)) { - return; - } else { - throw new CertificateException( - "illegal DN, reject the connection"); - } - } - } - - public X509Certificate[] getAcceptedIssuers() { - return null; - } - }; - setHostnameVerifier(ALLOW_ALL_HOSTNAME_VERIFIER); - sslContext.init(null, new TrustManager[] { tm }, null); - } - - @Override - public Socket createSocket(Socket socket, String host, int port, - boolean autoClose) throws IOException, UnknownHostException { - return sslContext.getSocketFactory().createSocket(socket, host, port, - autoClose); - } - - @Override - public Socket createSocket() throws IOException { - return sslContext.getSocketFactory().createSocket(); - } - -} diff --git a/sdk/android_sdk/sdk/src/java/com/wbtech/ums/DeviceInfo.java b/sdk/android_sdk/sdk/src/java/com/wbtech/ums/DeviceInfo.java index 15e287e7..13efa052 100755 --- a/sdk/android_sdk/sdk/src/java/com/wbtech/ums/DeviceInfo.java +++ b/sdk/android_sdk/sdk/src/java/com/wbtech/ums/DeviceInfo.java @@ -35,9 +35,6 @@ import java.util.Date; import java.util.List; import java.util.Locale; -import java.util.UUID; - -import com.wbtech.ums.UmsConstants; /** diff --git a/sdk/android_sdk/sdk/src/java/com/wbtech/ums/EventManager.java b/sdk/android_sdk/sdk/src/java/com/wbtech/ums/EventManager.java index 7d847f7b..d49f53f7 100755 --- a/sdk/android_sdk/sdk/src/java/com/wbtech/ums/EventManager.java +++ b/sdk/android_sdk/sdk/src/java/com/wbtech/ums/EventManager.java @@ -107,8 +107,12 @@ public void postEventInfo() { if (CommonUtil.getReportPolicyMode(context) == SendPolicy.POST_NOW && CommonUtil.isNetworkAvailable(context)) { +// MyMessage message = NetworkUtil.Post(UmsConstants.BASE_URL +// + UmsConstants.EVENT_URL, postdata.toString()); MyMessage message = NetworkUtil.Post(UmsConstants.BASE_URL - + UmsConstants.EVENT_URL, postdata.toString()); + , postdata.toString()); +// MyMessage message = NetworkUtil.Post("http://172.16.0.16/?sid=zhongqing", postdata.toString()); + //MyMessage message = NetworkUtil.Post("http://172.16.0.16/", postdata.toString()); if (!message.isSuccess()) { CobubLog.e(UmsConstants.LOG_TAG, EventManager.class, "Message=" diff --git a/sdk/android_sdk/sdk/src/java/com/wbtech/ums/NetworkUtil.java b/sdk/android_sdk/sdk/src/java/com/wbtech/ums/NetworkUtil.java old mode 100755 new mode 100644 index bccb85b0..f886144d --- a/sdk/android_sdk/sdk/src/java/com/wbtech/ums/NetworkUtil.java +++ b/sdk/android_sdk/sdk/src/java/com/wbtech/ums/NetworkUtil.java @@ -1,209 +1,95 @@ -/** - * Cobub Razor - * - * An open source analytics android sdk for mobile applications - * - * @package Cobub Razor - * @author WBTECH Dev Team - * @copyright Copyright (c) 2011 - 2015, NanJing Western Bridge Co.,Ltd. - * @license http://www.cobub.com/products/cobub-razor/license - * @link http://www.cobub.com/products/cobub-razor/ - * @since Version 0.1 - * @filesource - */ - package com.wbtech.ums; -import java.net.URL; -import java.net.URLDecoder; -import java.net.URLEncoder; +import android.util.Log; -import org.apache.http.HttpResponse; -import org.apache.http.client.methods.HttpPost; -import org.apache.http.client.params.ClientPNames; -import org.apache.http.conn.ClientConnectionManager; -import org.apache.http.conn.scheme.Scheme; -import org.apache.http.conn.scheme.SchemeRegistry; -import org.apache.http.conn.ssl.SSLSocketFactory; -import org.apache.http.cookie.Cookie; -import org.apache.http.cookie.CookieOrigin; -import org.apache.http.cookie.CookieSpec; -import org.apache.http.cookie.CookieSpecFactory; -import org.apache.http.cookie.MalformedCookieException; -import org.apache.http.entity.StringEntity; -import org.apache.http.impl.client.DefaultHttpClient; -import org.apache.http.impl.conn.tsccm.ThreadSafeClientConnManager; -import org.apache.http.impl.cookie.BrowserCompatSpec; -import org.apache.http.params.BasicHttpParams; -import org.apache.http.params.HttpConnectionParams; -import org.apache.http.params.HttpParams; -import org.apache.http.protocol.HTTP; -import org.apache.http.util.EntityUtils; import org.json.JSONObject; -import com.wbtech.ums.UmsConstants; - -import android.util.Log; +import java.io.ByteArrayOutputStream; +import java.io.DataOutputStream; +import java.io.IOException; +import java.io.InputStream; +import java.net.HttpURLConnection; +import java.net.URL; +import java.net.URLEncoder; -class NetworkUtil { - public static int REQUEST_TIMEOUT = 5000; // 5s - public static int SO_TIMEOUT = 3000; // 3s - private static int serverPort = -1; - private static boolean hasInitSSL = false; - private static URL serverUrl = null; - - private static void initSSL() { - CobubLog.d(UmsConstants.LOG_TAG,NetworkUtil.class,"InitSSL start it:" + UmsConstants.SDK_POS_NAME); - System.setProperty("javax.net.ssl.keyStoreProvider", - UmsConstants.SDK_POS_NAME); - System.setProperty("javax.net.ssl.certAlias", - UmsConstants.SDK_CSR_ALIAS); - CobubLog.d(UmsConstants.LOG_TAG,NetworkUtil.class,"InitSSL end it:" + UmsConstants.SDK_CSR_ALIAS); - } +class NetworkUtil { - public static MyMessage Post(String url, String data) { - CobubLog.d(UmsConstants.LOG_TAG, NetworkUtil.class,"URL = " + url); - CobubLog.d(UmsConstants.LOG_TAG, NetworkUtil.class, "LENGTH:" + data.length() + " *Data = " + data + "*"); - - if (!hasInitSSL && UmsConstants.SDK_SECURITY_LEVEL.equals("2")) { - initSSL(); - hasInitSSL = true; - } - - BasicHttpParams httpParams = new BasicHttpParams(); - HttpConnectionParams.setConnectionTimeout(httpParams, REQUEST_TIMEOUT); - HttpConnectionParams.setSoTimeout(httpParams, SO_TIMEOUT); - DefaultHttpClient httpclient = null; - - /*SDK会运行在如下两种环境中: + /*SDK会运行在如下两种环境中: * 1,CPOS:需要进行双向ssl校验;SDK_SSL=true;此时还要验证dn(如果不想验dn,设置SDK_HTTPS_DN为none) * 2,一般移动设备,是用HTTPS正常发送即可,也能接受非标准证书的https服务端 * 3,测试:使用http - */ - if (UmsConstants.SDK_SECURITY_LEVEL.equals("2")) { - httpclient = new DefaultHttpClient(httpParams); - // cpos with dn check - if (!UmsConstants.SDK_HTTPS_DN.equals("none")) { - SSLSocketFactory mysf = null; - try { - mysf = new CposSSLSocketFactory(); - if (serverUrl == null) { - serverUrl = new URL(url); - serverPort = ((serverUrl.getPort() == -1) ? serverUrl - .getDefaultPort() : serverUrl.getPort()); - } - - httpclient - .getConnectionManager() - .getSchemeRegistry() - .register( - new Scheme(serverUrl.getProtocol(), mysf, - serverPort)); - - } catch (Exception e) { - CobubLog.d(UmsConstants.LOG_TAG,NetworkUtil.class, e.toString()); - } - } - } else if (UmsConstants.SDK_SECURITY_LEVEL.equals("1") - && url.toLowerCase().startsWith("https")){ - // for https with company cert - if (serverPort < 0) { - serverPort = getPort(); - } - CobubLog.d(UmsConstants.LOG_TAG,NetworkUtil.class,"InitSSL port is:" + serverPort); - SchemeRegistry schReg = new SchemeRegistry(); - schReg.register(new Scheme("https", SSLCustomSocketFactory - .getSocketFactory(), serverPort)); - - ClientConnectionManager connMgr = new ThreadSafeClientConnManager( - httpParams, schReg); - httpclient = new DefaultHttpClient(connMgr, httpParams); - } else { - httpclient = new DefaultHttpClient(httpParams); - } - processCookieRejected(httpclient); - + */ + public static MyMessage Post(String url, String data) { + CobubLog.d(UmsConstants.LOG_TAG, NetworkUtil.class,"URL = " + url); + CobubLog.d(UmsConstants.LOG_TAG, NetworkUtil.class, "LENGTH:" + data.length() + " *Data = " + data + "*"); + HttpURLConnection httpURLConnection; + URL realUrl; MyMessage message = new MyMessage(); try { - HttpPost httppost = new HttpPost(url); - - StringEntity se = new StringEntity("content=" - + URLEncoder.encode(data), HTTP.UTF_8); - se.setContentType("application/x-www-form-urlencoded"); - httppost.setEntity(se); - - HttpResponse response = httpclient.execute(httppost); + realUrl = new URL(url); + httpURLConnection = (HttpURLConnection) realUrl.openConnection(); + httpURLConnection.setConnectTimeout(5000); + httpURLConnection.setReadTimeout(3000); + httpURLConnection.setDoOutput(true); + httpURLConnection.setDoInput(true); + httpURLConnection.setRequestMethod("POST"); + httpURLConnection.setRequestProperty("connection", "Keep-Alive"); + httpURLConnection.setRequestProperty("Content-Type", + "application/x-www-form-urlencoded"); + //发送数据包 + DataOutputStream dos = new DataOutputStream(httpURLConnection.getOutputStream()); + String s = "content=" + URLEncoder.encode(data, "UTF-8"); + dos.write(s.getBytes()); + dos.flush(); + dos.close(); + int status = httpURLConnection.getResponseCode(); CobubLog.d(UmsConstants.LOG_TAG,NetworkUtil.class, "Status code=" - + response.getStatusLine().getStatusCode()); - - String returnXML = EntityUtils.toString(response.getEntity()); - int status = response.getStatusLine().getStatusCode(); - String returnContent = URLDecoder.decode(returnXML, "UTF-8"); - CobubLog.d(UmsConstants.LOG_TAG,NetworkUtil.class, "returnString = " + returnContent); + + status); + //接收数据包 + InputStream is = httpURLConnection.getInputStream(); + String result = inputStreamToString(is); + CobubLog.d(UmsConstants.LOG_TAG,NetworkUtil.class, "returnString = " + result); //TODO:只要服務端有返回200ok并且返回的是json字符串即可认为发送成功;因为如果发送的数据不完整服务端会返回flag<0; - //这部分数据按照flag来判断会导致错误数据始终保存在本地 + // 这部分数据按照flag来判断会导致错误数据始终保存在本地 switch (status) { - case 200: - message.setSuccess(isJson(returnContent)); - message.setMsg(returnContent); - break; - default: - Log.e("error", status + returnContent); - message.setSuccess(false); - message.setMsg(returnContent); - break; - } - } catch (Exception e) { - message.setSuccess(false); - message.setMsg(e.toString()); + case 200: + message.setSuccess(isJson(result)); + message.setMsg(result); + break; + default: + Log.e("error", status + result); + message.setSuccess(false); + message.setMsg(result); + break; + } + } catch (IOException e) { + message.setSuccess(false); + message.setMsg(e.toString()); } return message; } - private static int getPort() { - String url = UmsConstants.BASE_URL.toLowerCase(); - CobubLog.d(UmsConstants.LOG_TAG,NetworkUtil.class, url); - int pos = url.indexOf(":"); - pos = url.indexOf(":", pos + 1); - if (pos > 0) { - int pos2 = url.indexOf("/", pos + 1); - - if (pos2 > 0) { - return Integer.parseInt(url.substring(pos + 1, pos2)); - } else { - return Integer.parseInt(url.substring(pos + 1)); - } - } else { - return url.startsWith("https") ? 443 : 80; + private static String inputStreamToString(final InputStream stream) throws IOException { + ByteArrayOutputStream os = new ByteArrayOutputStream(); + byte[] buffer = new byte[1024]; + int len; + while ((len = stream.read(buffer)) != -1) { + os.write(buffer, 0, len); } + stream.close(); + String state = os.toString(); + os.close(); + return state; } - + private static boolean isJson(String strForValidating) { - try { - JSONObject jsonObject = new JSONObject(strForValidating); - return true; - } catch (Exception e) { - return false; - } - } - - private static void processCookieRejected(DefaultHttpClient client) { - client.getCookieSpecs().register("esay", new EasyCookieSpecFactory()); - client.getParams().setParameter(ClientPNames.COOKIE_POLICY, "esay"); - } - - private static class EasyCookieSpecFactory implements CookieSpecFactory { - @Override - public CookieSpec newInstance(HttpParams arg0) { - return new BrowserCompatSpec() { + try { + new JSONObject(strForValidating); + return true; - @Override - public void validate(Cookie cookie, CookieOrigin origin) - throws MalformedCookieException { - //do nothing here - }//public - }; // new BrowserCompatSpec - }//public - + } catch (Exception e) { + return false; + } } + } diff --git a/sdk/android_sdk/sdk/src/java/com/wbtech/ums/SSLCustomSocketFactory.java b/sdk/android_sdk/sdk/src/java/com/wbtech/ums/SSLCustomSocketFactory.java deleted file mode 100755 index 5c867a21..00000000 --- a/sdk/android_sdk/sdk/src/java/com/wbtech/ums/SSLCustomSocketFactory.java +++ /dev/null @@ -1,83 +0,0 @@ -package com.wbtech.ums; - -import java.io.IOException; -import java.net.Socket; -import java.net.UnknownHostException; -import java.security.KeyStore; -import java.security.cert.CertificateException; -import java.security.cert.X509Certificate; - -import javax.net.ssl.SSLContext; -import javax.net.ssl.TrustManager; -import javax.net.ssl.X509TrustManager; - -import org.apache.http.conn.ssl.SSLSocketFactory; - -import com.wbtech.ums.UmsConstants; - -import android.util.Log; - -public class SSLCustomSocketFactory extends SSLSocketFactory { - private SSLContext mCtx; - - - public class SSLTrustAllManager implements X509TrustManager { - - @Override - public void checkClientTrusted(X509Certificate[] arg0, String arg1) - throws CertificateException { - - } - - @Override - public void checkServerTrusted(X509Certificate[] arg0, String arg1) - throws CertificateException { - - } - - @Override - public X509Certificate[] getAcceptedIssuers() { - return null; - } - - } - public SSLCustomSocketFactory(KeyStore trustStore) throws Throwable { - super(trustStore); - try { - mCtx = SSLContext.getInstance("TLS"); - mCtx.init(null, new TrustManager[]{new SSLTrustAllManager()}, null); - setHostnameVerifier(SSLSocketFactory.ALLOW_ALL_HOSTNAME_VERIFIER); - } catch(Exception e) { - CobubLog.e(UmsConstants.LOG_TAG,e); - } - } - - - @Override - public Socket createSocket(Socket socket, String host, int port, - boolean autoClose) throws IOException, UnknownHostException { - return mCtx.getSocketFactory().createSocket(socket, host,port,autoClose); - } - - - @Override - public Socket createSocket() throws IOException { - return mCtx.getSocketFactory().createSocket(); - } - - - public static SSLSocketFactory getSocketFactory() { - - try { - KeyStore trustStore = KeyStore.getInstance(KeyStore - .getDefaultType()); - trustStore.load(null,null); - - SSLSocketFactory factory = new SSLCustomSocketFactory(trustStore); - return factory; - } catch (Throwable e) { - CobubLog.e(UmsConstants.LOG_TAG,SSLCustomSocketFactory.class, e.toString()); - } - return null; - } -} \ No newline at end of file diff --git a/sdk/android_sdk/sdk/src/java/com/wbtech/ums/TagManager.java b/sdk/android_sdk/sdk/src/java/com/wbtech/ums/TagManager.java index 0f7eff09..24375938 100755 --- a/sdk/android_sdk/sdk/src/java/com/wbtech/ums/TagManager.java +++ b/sdk/android_sdk/sdk/src/java/com/wbtech/ums/TagManager.java @@ -65,8 +65,10 @@ public void PostTag() { if (CommonUtil.getReportPolicyMode(context) == SendPolicy.POST_NOW && CommonUtil.isNetworkAvailable(context)) { +// MyMessage message = NetworkUtil.Post(UmsConstants.BASE_URL +// + UmsConstants.TAG_URL, postdata.toString()); MyMessage message = NetworkUtil.Post(UmsConstants.BASE_URL - + UmsConstants.TAG_URL, postdata.toString()); + , postdata.toString()); if (!message.isSuccess()) { CobubLog.e(UmsConstants.LOG_TAG,TagManager.class, "Message=" + message.getMsg()); diff --git a/sdk/android_sdk/sdk/src/java/com/wbtech/ums/UmsAgent.java b/sdk/android_sdk/sdk/src/java/com/wbtech/ums/UmsAgent.java index fdc214d3..ff40c357 100755 --- a/sdk/android_sdk/sdk/src/java/com/wbtech/ums/UmsAgent.java +++ b/sdk/android_sdk/sdk/src/java/com/wbtech/ums/UmsAgent.java @@ -145,7 +145,7 @@ public static void setAutoLocation(boolean isLocation) { /** * upload startup and device information * - * @param context + */ static void postClientData() { Thread thread = new Thread(new Runnable() { @@ -163,7 +163,7 @@ public void run() { } /** - * @param context + */ static void postHistoryLog() { CobubLog.i(UmsConstants.LOG_TAG, UmsAgent.class, "postHistoryLog"); @@ -211,7 +211,7 @@ public void run() { /** * activity onResume 在activity的生命周期函数 {@link #onResume(Context)} * - * @param context + */ public static void onResume(Context context) { if (!INIT) { @@ -237,8 +237,7 @@ public void run() { /** * 针对使用Fragment的应用,在对应的生命周期函数里调用 * - * @param context - * @param PageName + * @param PageName */ public static void onFragmentResume(Context context, final String PageName) { @@ -264,7 +263,6 @@ public void run() { /** * 在Activity的生命周期函数{@link #onPause(Context)}中调用 * - * @param context */ public static void onPause(Context context) { if (!INIT) { @@ -292,7 +290,6 @@ public void run() { * Call this function to send the uncatched crash exception stack * information to server * - * @param context */ static void onError() { if (!INIT) { @@ -316,7 +313,6 @@ public void run() { * Call this function to send the catched exception stack information to * server 手动上传捕捉到的error信息 * - * @param context * @param errorType * @param errorinfo */ @@ -394,7 +390,6 @@ public static void onEvent(Context context, final String event_id, CobubLog.e(UmsConstants.LOG_TAG, UmsAgent.class, "sdk is not init!"); return; } - updateContent(context); Thread thread = new Thread(new Runnable() { @Override public void run() { diff --git a/sdk/android_sdk/sdk/src/java/com/wbtech/ums/UpdateManager.java b/sdk/android_sdk/sdk/src/java/com/wbtech/ums/UpdateManager.java index bcee71c8..47ab3ad0 100755 --- a/sdk/android_sdk/sdk/src/java/com/wbtech/ums/UpdateManager.java +++ b/sdk/android_sdk/sdk/src/java/com/wbtech/ums/UpdateManager.java @@ -132,7 +132,7 @@ public String now() { public void showNoticeDialog(final Context context) { - AlertDialog.Builder builder = new Builder(context); + Builder builder = new Builder(context); builder.setTitle("应用更新"); builder.setMessage(updateMsg); builder.setPositiveButton("确定", new OnClickListener() { @@ -157,7 +157,7 @@ public void onClick(DialogInterface dialog, int which) { } private void showSdDialog(final Context context) { - AlertDialog.Builder builder = new Builder(context); + Builder builder = new Builder(context); builder.setTitle("提示"); builder.setMessage("SD卡不存在"); builder.setNegativeButton("OK", new OnClickListener() { @@ -203,7 +203,7 @@ public void run() { is = conn.getInputStream(); boolean sdCardExist = Environment.getExternalStorageState() - .equals(android.os.Environment.MEDIA_MOUNTED); + .equals(Environment.MEDIA_MOUNTED); if (!sdCardExist) { showSdDialog(context); } diff --git a/sdk/iOS_sdk/UMS.xcworkspace/xcuserdata/apple.xcuserdatad/UserInterfaceState.xcuserstate b/sdk/iOS_sdk/UMS.xcworkspace/xcuserdata/apple.xcuserdatad/UserInterfaceState.xcuserstate deleted file mode 100644 index 02a78f4a..00000000 Binary files a/sdk/iOS_sdk/UMS.xcworkspace/xcuserdata/apple.xcuserdatad/UserInterfaceState.xcuserstate and /dev/null differ diff --git a/sdk/iOS_sdk/UMS.xcworkspace/xcuserdata/feiyue.xcuserdatad/UserInterfaceState.xcuserstate b/sdk/iOS_sdk/UMS.xcworkspace/xcuserdata/feiyue.xcuserdatad/UserInterfaceState.xcuserstate deleted file mode 100644 index b47885d0..00000000 Binary files a/sdk/iOS_sdk/UMS.xcworkspace/xcuserdata/feiyue.xcuserdatad/UserInterfaceState.xcuserstate and /dev/null differ diff --git a/sdk/iOS_sdk/UMS.xcworkspace/xcuserdata/feiyue.xcuserdatad/WorkspaceSettings.xcsettings b/sdk/iOS_sdk/UMS.xcworkspace/xcuserdata/feiyue.xcuserdatad/WorkspaceSettings.xcsettings deleted file mode 100644 index bfffcfe0..00000000 --- a/sdk/iOS_sdk/UMS.xcworkspace/xcuserdata/feiyue.xcuserdatad/WorkspaceSettings.xcsettings +++ /dev/null @@ -1,10 +0,0 @@ - - - - - HasAskedToTakeAutomaticSnapshotBeforeSignificantChanges - - SnapshotAutomaticallyBeforeSignificantChanges - - - diff --git a/sdk/iOS_sdk/UMS.xcworkspace/xcuserdata/feiyue.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist b/sdk/iOS_sdk/UMS.xcworkspace/xcuserdata/feiyue.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist deleted file mode 100644 index ed9a9b4d..00000000 --- a/sdk/iOS_sdk/UMS.xcworkspace/xcuserdata/feiyue.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist +++ /dev/null @@ -1,5 +0,0 @@ - - - diff --git a/sdk/iOS_sdk/UMS.xcworkspace/xcuserdata/guowei.xcuserdatad/UserInterfaceState.xcuserstate b/sdk/iOS_sdk/UMS.xcworkspace/xcuserdata/guowei.xcuserdatad/UserInterfaceState.xcuserstate deleted file mode 100644 index 29cfd67d..00000000 Binary files a/sdk/iOS_sdk/UMS.xcworkspace/xcuserdata/guowei.xcuserdatad/UserInterfaceState.xcuserstate and /dev/null differ diff --git a/sdk/iOS_sdk/UMS.xcworkspace/xcuserdata/likang.xcuserdatad/UserInterfaceState.xcuserstate b/sdk/iOS_sdk/UMS.xcworkspace/xcuserdata/likang.xcuserdatad/UserInterfaceState.xcuserstate new file mode 100644 index 00000000..84c158fa Binary files /dev/null and b/sdk/iOS_sdk/UMS.xcworkspace/xcuserdata/likang.xcuserdatad/UserInterfaceState.xcuserstate differ diff --git a/sdk/iOS_sdk/UMS.xcworkspace/xcuserdata/tim.xcuserdatad/UserInterfaceState.xcuserstate b/sdk/iOS_sdk/UMS.xcworkspace/xcuserdata/tim.xcuserdatad/UserInterfaceState.xcuserstate deleted file mode 100644 index 8f400f90..00000000 Binary files a/sdk/iOS_sdk/UMS.xcworkspace/xcuserdata/tim.xcuserdatad/UserInterfaceState.xcuserstate and /dev/null differ diff --git a/sdk/iOS_sdk/UMS.xcworkspace/xcuserdata/tim.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist b/sdk/iOS_sdk/UMS.xcworkspace/xcuserdata/tim.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist deleted file mode 100644 index 6904771e..00000000 --- a/sdk/iOS_sdk/UMS.xcworkspace/xcuserdata/tim.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist +++ /dev/null @@ -1,23 +0,0 @@ - - - - - - - - - diff --git a/sdk/iOS_sdk/UMS.xcworkspace/xcuserdata/wb.xcuserdatad/UserInterfaceState.xcuserstate b/sdk/iOS_sdk/UMS.xcworkspace/xcuserdata/wb.xcuserdatad/UserInterfaceState.xcuserstate deleted file mode 100644 index 72b16d63..00000000 Binary files a/sdk/iOS_sdk/UMS.xcworkspace/xcuserdata/wb.xcuserdatad/UserInterfaceState.xcuserstate and /dev/null differ diff --git a/sdk/iOS_sdk/UMS.xcworkspace/xcuserdata/wb.xcuserdatad/xcdebugger/Breakpoints.xcbkptlist b/sdk/iOS_sdk/UMS.xcworkspace/xcuserdata/wb.xcuserdatad/xcdebugger/Breakpoints.xcbkptlist deleted file mode 100644 index 170effdf..00000000 --- a/sdk/iOS_sdk/UMS.xcworkspace/xcuserdata/wb.xcuserdatad/xcdebugger/Breakpoints.xcbkptlist +++ /dev/null @@ -1,371 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/sdk/iOS_sdk/UMS.xcworkspace/xcuserdata/wb.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist b/sdk/iOS_sdk/UMS.xcworkspace/xcuserdata/wb.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist deleted file mode 100644 index 0e67998d..00000000 --- a/sdk/iOS_sdk/UMS.xcworkspace/xcuserdata/wb.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist +++ /dev/null @@ -1,598 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/sdk/iOS_sdk/UMSAgent/ErrorDao.m b/sdk/iOS_sdk/UMSAgent/ErrorDao.m index 2688e911..602c902d 100644 --- a/sdk/iOS_sdk/UMSAgent/ErrorDao.m +++ b/sdk/iOS_sdk/UMSAgent/ErrorDao.m @@ -58,7 +58,10 @@ + (CommonReturn *) postErrorLog:(NSString *) appkey errorLog:(ErrorLog *) errorL { [requestDictionary setObject:errorLog.version forKey:@"version"]; } - + if(errorLog.sessionID) + { + [requestDictionary setObject:errorLog.sessionID forKey:@"session_id"]; + } if(errorLog.osVersion) { [requestDictionary setObject:errorLog.osVersion forKey:@"os_version"]; @@ -165,6 +168,10 @@ + (NSMutableArray *)getArchiveErrorLog { [requestDictionary setObject:errorLog.version forKey:@"version"]; } + if(errorLog.version) + { + [requestDictionary setObject:errorLog.version forKey:@"version"]; + } if(errorLog.osVersion) { [requestDictionary setObject:errorLog.osVersion forKey:@"os_version"]; diff --git a/sdk/iOS_sdk/UMSAgent/ErrorLog.h b/sdk/iOS_sdk/UMSAgent/ErrorLog.h index de5a6a97..82a5943a 100644 --- a/sdk/iOS_sdk/UMSAgent/ErrorLog.h +++ b/sdk/iOS_sdk/UMSAgent/ErrorLog.h @@ -26,6 +26,7 @@ NSString *cpt;//cpu type NSString *bim;//binary image NSString *lib_version; + NSString *sessionID; } @property (nonatomic,strong) NSString *stackTrace; @@ -39,6 +40,7 @@ @property (nonatomic,strong) NSString *cpt; @property (nonatomic,strong) NSString *bim; @property (nonatomic,strong) NSString *lib_version; +@property (nonatomic,strong) NSString *sessionID; @end diff --git a/sdk/iOS_sdk/UMSAgent/ErrorLog.m b/sdk/iOS_sdk/UMSAgent/ErrorLog.m index 267f9bf1..b9ca9e65 100644 --- a/sdk/iOS_sdk/UMSAgent/ErrorLog.m +++ b/sdk/iOS_sdk/UMSAgent/ErrorLog.m @@ -26,6 +26,7 @@ @implementation ErrorLog @synthesize cpt; @synthesize bim; @synthesize lib_version; +@synthesize sessionID; - (id)initWithCoder:(NSCoder *)aDecoder { @@ -41,6 +42,8 @@ - (id)initWithCoder:(NSCoder *)aDecoder self.cpt = [aDecoder decodeObjectForKey:@"cpt"]; self.bim = [aDecoder decodeObjectForKey:@"bim"]; self.lib_version = [aDecoder decodeObjectForKey:@"lib_version"]; + self.sessionID = [aDecoder decodeObjectForKey:@"session_id"]; + } return self; } @@ -58,6 +61,8 @@ - (void)encodeWithCoder:(NSCoder *)aCoder [aCoder encodeObject:cpt forKey:@"cpt"]; [aCoder encodeObject:bim forKey:@"bim"]; [aCoder encodeObject:lib_version forKey:@"lib_version"]; + [aCoder encodeObject:sessionID forKey:@"session_id"]; + } @end diff --git a/sdk/iOS_sdk/UMSAgent/Event.h b/sdk/iOS_sdk/UMSAgent/Event.h index bf92088e..1eeed26f 100644 --- a/sdk/iOS_sdk/UMSAgent/Event.h +++ b/sdk/iOS_sdk/UMSAgent/Event.h @@ -27,6 +27,7 @@ NSString *version; NSString *jsonstr; NSString *lib_version; + NSString *sessionID; } @property (nonatomic,strong) NSString *event_id; @@ -37,5 +38,6 @@ @property (nonatomic,strong) NSString *version; @property (nonatomic,strong) NSString *jsonstr; @property (nonatomic,strong) NSString *lib_version; +@property (nonatomic,strong) NSString *sessionID; @end diff --git a/sdk/iOS_sdk/UMSAgent/Event.m b/sdk/iOS_sdk/UMSAgent/Event.m index 8b60fe21..28d14b38 100644 --- a/sdk/iOS_sdk/UMSAgent/Event.m +++ b/sdk/iOS_sdk/UMSAgent/Event.m @@ -20,6 +20,7 @@ @implementation Event - (id)initWithCoder:(NSCoder *)aDecoder { if (self =[super init]) { + self.sessionID = [aDecoder decodeObjectForKey:@"session_id"]; self.event_id = [aDecoder decodeObjectForKey:@"event_id"]; self.label = [aDecoder decodeObjectForKey:@"label"]; self.time = [aDecoder decodeObjectForKey:@"time"]; @@ -43,6 +44,7 @@ - (void)encodeWithCoder:(NSCoder *)aCoder [aCoder encodeInt:acc forKey:@"acc"]; [aCoder encodeObject:jsonstr forKey:@"jsonstr"]; [aCoder encodeObject:lib_version forKey:@"lib_version"]; + [aCoder encodeObject:sessionID forKey:@"session_id"]; } diff --git a/sdk/iOS_sdk/UMSAgent/EventDao.m b/sdk/iOS_sdk/UMSAgent/EventDao.m index 3777c6d4..9ecfac64 100644 --- a/sdk/iOS_sdk/UMSAgent/EventDao.m +++ b/sdk/iOS_sdk/UMSAgent/EventDao.m @@ -58,6 +58,10 @@ + (CommonReturn *)postEvent:(NSString *)appkey event:(Event *)mEvent { [requestDictionary setObject:mEvent.time forKey:@"time"]; } + if(mEvent.sessionID) + { + [requestDictionary setObject:mEvent.sessionID forKey:@"session_id"]; + } if(mEvent.activity) { [requestDictionary setObject:mEvent.activity forKey:@"activity"]; @@ -162,6 +166,10 @@ + (NSMutableArray *)getArchiveEvent:(NSString*)appKey { [requestDictionary setObject:mEvent.time forKey:@"time"]; } + if(mEvent.sessionID) + { + [requestDictionary setObject:mEvent.sessionID forKey:@"session_id"]; + } if(mEvent.activity) { [requestDictionary setObject:mEvent.activity forKey:@"activity"]; diff --git a/sdk/iOS_sdk/UMSAgent/UMSAgent.xcodeproj/project.pbxproj b/sdk/iOS_sdk/UMSAgent/UMSAgent.xcodeproj/project.pbxproj index ee729dc8..5de69e33 100644 --- a/sdk/iOS_sdk/UMSAgent/UMSAgent.xcodeproj/project.pbxproj +++ b/sdk/iOS_sdk/UMSAgent/UMSAgent.xcodeproj/project.pbxproj @@ -17,7 +17,7 @@ 3648F02A1D3CC4A0005723AD /* UncaughtExceptionHandler.h in Headers */ = {isa = PBXBuildFile; fileRef = 3648F0281D3CC4A0005723AD /* UncaughtExceptionHandler.h */; }; 3648F02B1D3CC4A0005723AD /* UncaughtExceptionHandler.m in Sources */ = {isa = PBXBuildFile; fileRef = 3648F0291D3CC4A0005723AD /* UncaughtExceptionHandler.m */; }; 3656570517F41AFA0057FA57 /* SFHFKeychainUtils.h in Headers */ = {isa = PBXBuildFile; fileRef = 3656570317F41AFA0057FA57 /* SFHFKeychainUtils.h */; }; - 3656570617F41AFA0057FA57 /* SFHFKeychainUtils.m in Sources */ = {isa = PBXBuildFile; fileRef = 3656570417F41AFA0057FA57 /* SFHFKeychainUtils.m */; }; + 3656570617F41AFA0057FA57 /* SFHFKeychainUtils.m in Sources */ = {isa = PBXBuildFile; fileRef = 3656570417F41AFA0057FA57 /* SFHFKeychainUtils.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; 3656570A17F41DF30057FA57 /* AdSupport.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3656570917F41DF30057FA57 /* AdSupport.framework */; settings = {ATTRIBUTES = (Weak, ); }; }; 369DFBE917EEA53900A8D1E7 /* CJSONDeserializer.h in Headers */ = {isa = PBXBuildFile; fileRef = 369DFBE217EEA53900A8D1E7 /* CJSONDeserializer.h */; }; 369DFBEA17EEA53900A8D1E7 /* CJSONDeserializer.m in Sources */ = {isa = PBXBuildFile; fileRef = 369DFBE317EEA53900A8D1E7 /* CJSONDeserializer.m */; }; @@ -31,7 +31,6 @@ 36B6B3A11563AA1E00AEB577 /* ErrorLog.h in Headers */ = {isa = PBXBuildFile; fileRef = 36B6B39F1563AA1E00AEB577 /* ErrorLog.h */; }; 36B6B3A21563AA1E00AEB577 /* ErrorLog.m in Sources */ = {isa = PBXBuildFile; fileRef = 36B6B3A01563AA1E00AEB577 /* ErrorLog.m */; }; 36B8E535151C4F8A004C3C1F /* CoreTelephony.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 36B8E534151C4F8A004C3C1F /* CoreTelephony.framework */; settings = {ATTRIBUTES = (Weak, ); }; }; - 36C95BB91522E74100725BBA /* UMSAgent.h in Headers */ = {isa = PBXBuildFile; fileRef = 3630006015131A1600E84C2D /* UMSAgent.h */; settings = {ATTRIBUTES = (Public, ); }; }; 36E0446C1C521FCE00055F6F /* UsingLogDao.m in Sources */ = {isa = PBXBuildFile; fileRef = 36E0446B1C521FCE00055F6F /* UsingLogDao.m */; }; 36E0446E1C521FE200055F6F /* TagDao.m in Sources */ = {isa = PBXBuildFile; fileRef = 36E0446D1C521FE200055F6F /* TagDao.m */; }; 36E044701C521FF700055F6F /* ClientDataDao.m in Sources */ = {isa = PBXBuildFile; fileRef = 36E0446F1C521FF700055F6F /* ClientDataDao.m */; }; @@ -64,6 +63,7 @@ E0728C3D1AF0DB2D00F3D579 /* UsingLogDao.h in Headers */ = {isa = PBXBuildFile; fileRef = E0728C3B1AF0DB2D00F3D579 /* UsingLogDao.h */; }; E0A2882F1AF7586C00030212 /* AppInfo.h in Headers */ = {isa = PBXBuildFile; fileRef = E0A2882D1AF7586C00030212 /* AppInfo.h */; }; E0A288301AF7586C00030212 /* AppInfo.m in Sources */ = {isa = PBXBuildFile; fileRef = E0A2882E1AF7586C00030212 /* AppInfo.m */; }; + FEF0E2281DC0A959007431D1 /* UMSAgent.h in Headers */ = {isa = PBXBuildFile; fileRef = FEF0E2271DC0A959007431D1 /* UMSAgent.h */; }; /* End PBXBuildFile section */ /* Begin PBXBuildRule section */ @@ -90,7 +90,6 @@ 3630005815131A1600E84C2D /* libUMSAgent.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = libUMSAgent.a; sourceTree = BUILT_PRODUCTS_DIR; }; 3630005B15131A1600E84C2D /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; }; 3630005F15131A1600E84C2D /* UMSAgent-Prefix.pch */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "UMSAgent-Prefix.pch"; sourceTree = ""; }; - 3630006015131A1600E84C2D /* UMSAgent.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = UMSAgent.h; sourceTree = ""; }; 3630006915131A1600E84C2D /* SenTestingKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = SenTestingKit.framework; path = Library/Frameworks/SenTestingKit.framework; sourceTree = DEVELOPER_DIR; }; 3648F0281D3CC4A0005723AD /* UncaughtExceptionHandler.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = UncaughtExceptionHandler.h; sourceTree = ""; }; 3648F0291D3CC4A0005723AD /* UncaughtExceptionHandler.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = UncaughtExceptionHandler.m; sourceTree = ""; }; @@ -143,6 +142,7 @@ E0728C3B1AF0DB2D00F3D579 /* UsingLogDao.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = UsingLogDao.h; sourceTree = ""; }; E0A2882D1AF7586C00030212 /* AppInfo.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AppInfo.h; sourceTree = ""; }; E0A2882E1AF7586C00030212 /* AppInfo.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AppInfo.m; sourceTree = ""; }; + FEF0E2271DC0A959007431D1 /* UMSAgent.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = UMSAgent.h; sourceTree = ""; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ @@ -217,7 +217,7 @@ 3630005D15131A1600E84C2D /* UMSAgent */ = { isa = PBXGroup; children = ( - 3630006015131A1600E84C2D /* UMSAgent.h */, + FEF0E2271DC0A959007431D1 /* UMSAgent.h */, 36E044751C5220BB00055F6F /* UMSAgent.m */, 3630005E15131A1600E84C2D /* Supporting Files */, ); @@ -339,9 +339,9 @@ 84B7E4F01519989F00B9D0BC /* Event.h in Headers */, 84B7611A151C01A600A7ECF8 /* ConfigDao.h in Headers */, 3648F02A1D3CC4A0005723AD /* UncaughtExceptionHandler.h in Headers */, + FEF0E2281DC0A959007431D1 /* UMSAgent.h in Headers */, 84B7611F151C02C000A7ECF8 /* ConfigPreference.h in Headers */, 3656570517F41AFA0057FA57 /* SFHFKeychainUtils.h in Headers */, - 36C95BB91522E74100725BBA /* UMSAgent.h in Headers */, E042DCD11B03660300EB0E2D /* UIDevice+Analysis.h in Headers */, E0728C3D1AF0DB2D00F3D579 /* UsingLogDao.h in Headers */, 36FA717C1526D9D90049AF2C /* OpenUDID.h in Headers */, diff --git a/sdk/iOS_sdk/UMSAgent/UMSAgent.xcodeproj/project.xcworkspace/xcuserdata/admin.xcuserdatad/UserInterfaceState.xcuserstate b/sdk/iOS_sdk/UMSAgent/UMSAgent.xcodeproj/project.xcworkspace/xcuserdata/admin.xcuserdatad/UserInterfaceState.xcuserstate deleted file mode 100644 index 10d35392..00000000 Binary files a/sdk/iOS_sdk/UMSAgent/UMSAgent.xcodeproj/project.xcworkspace/xcuserdata/admin.xcuserdatad/UserInterfaceState.xcuserstate and /dev/null differ diff --git a/sdk/iOS_sdk/UMSAgent/UMSAgent.xcodeproj/project.xcworkspace/xcuserdata/guowei.xcuserdatad/UserInterfaceState.xcuserstate b/sdk/iOS_sdk/UMSAgent/UMSAgent.xcodeproj/project.xcworkspace/xcuserdata/guowei.xcuserdatad/UserInterfaceState.xcuserstate deleted file mode 100644 index cba79a22..00000000 Binary files a/sdk/iOS_sdk/UMSAgent/UMSAgent.xcodeproj/project.xcworkspace/xcuserdata/guowei.xcuserdatad/UserInterfaceState.xcuserstate and /dev/null differ diff --git a/sdk/iOS_sdk/UMSAgent/UMSAgent.xcodeproj/project.xcworkspace/xcuserdata/tim.xcuserdatad/UserInterfaceState.xcuserstate b/sdk/iOS_sdk/UMSAgent/UMSAgent.xcodeproj/project.xcworkspace/xcuserdata/tim.xcuserdatad/UserInterfaceState.xcuserstate deleted file mode 100644 index 8d473edb..00000000 Binary files a/sdk/iOS_sdk/UMSAgent/UMSAgent.xcodeproj/project.xcworkspace/xcuserdata/tim.xcuserdatad/UserInterfaceState.xcuserstate and /dev/null differ diff --git a/sdk/iOS_sdk/UMSAgent/UMSAgent.xcodeproj/project.xcworkspace/xcuserdata/tim.xcuserdatad/WorkspaceSettings.xcsettings b/sdk/iOS_sdk/UMSAgent/UMSAgent.xcodeproj/project.xcworkspace/xcuserdata/tim.xcuserdatad/WorkspaceSettings.xcsettings deleted file mode 100644 index 659c8766..00000000 --- a/sdk/iOS_sdk/UMSAgent/UMSAgent.xcodeproj/project.xcworkspace/xcuserdata/tim.xcuserdatad/WorkspaceSettings.xcsettings +++ /dev/null @@ -1,10 +0,0 @@ - - - - - HasAskedToTakeAutomaticSnapshotBeforeSignificantChanges - - SnapshotAutomaticallyBeforeSignificantChanges - - - diff --git a/sdk/iOS_sdk/UMSAgent/UMSAgent.xcodeproj/project.xcworkspace/xcuserdata/wb.xcuserdatad/UserInterfaceState.xcuserstate b/sdk/iOS_sdk/UMSAgent/UMSAgent.xcodeproj/project.xcworkspace/xcuserdata/wb.xcuserdatad/UserInterfaceState.xcuserstate deleted file mode 100644 index c1968fdb..00000000 Binary files a/sdk/iOS_sdk/UMSAgent/UMSAgent.xcodeproj/project.xcworkspace/xcuserdata/wb.xcuserdatad/UserInterfaceState.xcuserstate and /dev/null differ diff --git a/sdk/iOS_sdk/UMSAgent/UMSAgent.xcodeproj/xcuserdata/admin.xcuserdatad/xcdebugger/Breakpoints.xcbkptlist b/sdk/iOS_sdk/UMSAgent/UMSAgent.xcodeproj/xcuserdata/admin.xcuserdatad/xcdebugger/Breakpoints.xcbkptlist deleted file mode 100644 index f9a32b82..00000000 --- a/sdk/iOS_sdk/UMSAgent/UMSAgent.xcodeproj/xcuserdata/admin.xcuserdatad/xcdebugger/Breakpoints.xcbkptlist +++ /dev/null @@ -1,59 +0,0 @@ - - - - - - - - - - - - - diff --git a/sdk/iOS_sdk/UMSAgent/UMSAgent.xcodeproj/xcuserdata/admin.xcuserdatad/xcschemes/UMSAgent.xcscheme b/sdk/iOS_sdk/UMSAgent/UMSAgent.xcodeproj/xcuserdata/admin.xcuserdatad/xcschemes/UMSAgent.xcscheme deleted file mode 100644 index 186c94f1..00000000 --- a/sdk/iOS_sdk/UMSAgent/UMSAgent.xcodeproj/xcuserdata/admin.xcuserdatad/xcschemes/UMSAgent.xcscheme +++ /dev/null @@ -1,68 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/sdk/iOS_sdk/UMSAgent/UMSAgent.xcodeproj/xcuserdata/admin.xcuserdatad/xcschemes/xcschememanagement.plist b/sdk/iOS_sdk/UMSAgent/UMSAgent.xcodeproj/xcuserdata/admin.xcuserdatad/xcschemes/xcschememanagement.plist deleted file mode 100644 index d715d6e5..00000000 --- a/sdk/iOS_sdk/UMSAgent/UMSAgent.xcodeproj/xcuserdata/admin.xcuserdatad/xcschemes/xcschememanagement.plist +++ /dev/null @@ -1,27 +0,0 @@ - - - - - SchemeUserState - - UMSAgent.xcscheme - - orderHint - 0 - - - SuppressBuildableAutocreation - - 3630005715131A1600E84C2D - - primary - - - 3630006715131A1600E84C2D - - primary - - - - - diff --git a/sdk/iOS_sdk/UMSAgent/UMSAgent.xcodeproj/xcuserdata/apple.xcuserdatad/xcschemes/UMSAgent.xcscheme b/sdk/iOS_sdk/UMSAgent/UMSAgent.xcodeproj/xcuserdata/apple.xcuserdatad/xcschemes/UMSAgent.xcscheme deleted file mode 100644 index 186c94f1..00000000 --- a/sdk/iOS_sdk/UMSAgent/UMSAgent.xcodeproj/xcuserdata/apple.xcuserdatad/xcschemes/UMSAgent.xcscheme +++ /dev/null @@ -1,68 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/sdk/iOS_sdk/UMSAgent/UMSAgent.xcodeproj/xcuserdata/apple.xcuserdatad/xcschemes/xcschememanagement.plist b/sdk/iOS_sdk/UMSAgent/UMSAgent.xcodeproj/xcuserdata/apple.xcuserdatad/xcschemes/xcschememanagement.plist deleted file mode 100644 index d715d6e5..00000000 --- a/sdk/iOS_sdk/UMSAgent/UMSAgent.xcodeproj/xcuserdata/apple.xcuserdatad/xcschemes/xcschememanagement.plist +++ /dev/null @@ -1,27 +0,0 @@ - - - - - SchemeUserState - - UMSAgent.xcscheme - - orderHint - 0 - - - SuppressBuildableAutocreation - - 3630005715131A1600E84C2D - - primary - - - 3630006715131A1600E84C2D - - primary - - - - - diff --git a/sdk/iOS_sdk/UMSAgent/UMSAgent.xcodeproj/xcuserdata/feiyue.xcuserdatad/xcschemes/UMSAgent.xcscheme b/sdk/iOS_sdk/UMSAgent/UMSAgent.xcodeproj/xcuserdata/feiyue.xcuserdatad/xcschemes/UMSAgent.xcscheme deleted file mode 100644 index af6a2cd5..00000000 --- a/sdk/iOS_sdk/UMSAgent/UMSAgent.xcodeproj/xcuserdata/feiyue.xcuserdatad/xcschemes/UMSAgent.xcscheme +++ /dev/null @@ -1,110 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/sdk/iOS_sdk/UMSAgent/UMSAgent.xcodeproj/xcuserdata/guowei.xcuserdatad/xcschemes/UMSAgent.xcscheme b/sdk/iOS_sdk/UMSAgent/UMSAgent.xcodeproj/xcuserdata/guowei.xcuserdatad/xcschemes/UMSAgent.xcscheme deleted file mode 100644 index 630ddfea..00000000 --- a/sdk/iOS_sdk/UMSAgent/UMSAgent.xcodeproj/xcuserdata/guowei.xcuserdatad/xcschemes/UMSAgent.xcscheme +++ /dev/null @@ -1,110 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/sdk/iOS_sdk/UMSAgent/UMSAgent.xcodeproj/xcuserdata/guowei.xcuserdatad/xcschemes/xcschememanagement.plist b/sdk/iOS_sdk/UMSAgent/UMSAgent.xcodeproj/xcuserdata/guowei.xcuserdatad/xcschemes/xcschememanagement.plist deleted file mode 100644 index c3b8b82a..00000000 --- a/sdk/iOS_sdk/UMSAgent/UMSAgent.xcodeproj/xcuserdata/guowei.xcuserdatad/xcschemes/xcschememanagement.plist +++ /dev/null @@ -1,27 +0,0 @@ - - - - - SchemeUserState - - UMSAgent.xcscheme - - orderHint - 1 - - - SuppressBuildableAutocreation - - 229AA7571A31E6B000407CF5 - - primary - - - 3630005715131A1600E84C2D - - primary - - - - - diff --git a/sdk/iOS_sdk/UMSAgent/UMSAgent.xcodeproj/xcuserdata/tim.xcuserdatad/xcschemes/UMSAgent.xcscheme b/sdk/iOS_sdk/UMSAgent/UMSAgent.xcodeproj/xcuserdata/likang.xcuserdatad/xcschemes/UMSAgent.xcscheme similarity index 80% rename from sdk/iOS_sdk/UMSAgent/UMSAgent.xcodeproj/xcuserdata/tim.xcuserdatad/xcschemes/UMSAgent.xcscheme rename to sdk/iOS_sdk/UMSAgent/UMSAgent.xcodeproj/xcuserdata/likang.xcuserdatad/xcschemes/UMSAgent.xcscheme index 160a774b..942d6513 100644 --- a/sdk/iOS_sdk/UMSAgent/UMSAgent.xcodeproj/xcuserdata/tim.xcuserdatad/xcschemes/UMSAgent.xcscheme +++ b/sdk/iOS_sdk/UMSAgent/UMSAgent.xcodeproj/xcuserdata/likang.xcuserdatad/xcschemes/UMSAgent.xcscheme @@ -1,6 +1,6 @@ + shouldUseLaunchSchemeArgsEnv = "YES"> - - - - + + + + + + diff --git a/sdk/iOS_sdk/UMSAgent/UMSAgent.xcodeproj/xcuserdata/feiyue.xcuserdatad/xcschemes/xcschememanagement.plist b/sdk/iOS_sdk/UMSAgent/UMSAgent.xcodeproj/xcuserdata/likang.xcuserdatad/xcschemes/xcschememanagement.plist similarity index 80% rename from sdk/iOS_sdk/UMSAgent/UMSAgent.xcodeproj/xcuserdata/feiyue.xcuserdatad/xcschemes/xcschememanagement.plist rename to sdk/iOS_sdk/UMSAgent/UMSAgent.xcodeproj/xcuserdata/likang.xcuserdatad/xcschemes/xcschememanagement.plist index 00f8cba2..19cef69c 100644 --- a/sdk/iOS_sdk/UMSAgent/UMSAgent.xcodeproj/xcuserdata/feiyue.xcuserdatad/xcschemes/xcschememanagement.plist +++ b/sdk/iOS_sdk/UMSAgent/UMSAgent.xcodeproj/xcuserdata/likang.xcuserdatad/xcschemes/xcschememanagement.plist @@ -7,16 +7,11 @@ UMSAgent.xcscheme orderHint - 3 + 2 SuppressBuildableAutocreation - 229AA7571A31E6B000407CF5 - - primary - - 3630005715131A1600E84C2D primary diff --git a/sdk/iOS_sdk/UMSAgent/UMSAgent.xcodeproj/xcuserdata/tim.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist b/sdk/iOS_sdk/UMSAgent/UMSAgent.xcodeproj/xcuserdata/tim.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist deleted file mode 100644 index 0f9161f7..00000000 --- a/sdk/iOS_sdk/UMSAgent/UMSAgent.xcodeproj/xcuserdata/tim.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist +++ /dev/null @@ -1,23 +0,0 @@ - - - - - - - - - diff --git a/sdk/iOS_sdk/UMSAgent/UMSAgent.xcodeproj/xcuserdata/tim.xcuserdatad/xcschemes/UMSAgent Tests.xcscheme b/sdk/iOS_sdk/UMSAgent/UMSAgent.xcodeproj/xcuserdata/tim.xcuserdatad/xcschemes/UMSAgent Tests.xcscheme deleted file mode 100644 index d30f98ea..00000000 --- a/sdk/iOS_sdk/UMSAgent/UMSAgent.xcodeproj/xcuserdata/tim.xcuserdatad/xcschemes/UMSAgent Tests.xcscheme +++ /dev/null @@ -1,96 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/sdk/iOS_sdk/UMSAgent/UMSAgent.xcodeproj/xcuserdata/tim.xcuserdatad/xcschemes/xcschememanagement.plist b/sdk/iOS_sdk/UMSAgent/UMSAgent.xcodeproj/xcuserdata/tim.xcuserdatad/xcschemes/xcschememanagement.plist deleted file mode 100644 index 8686c53d..00000000 --- a/sdk/iOS_sdk/UMSAgent/UMSAgent.xcodeproj/xcuserdata/tim.xcuserdatad/xcschemes/xcschememanagement.plist +++ /dev/null @@ -1,37 +0,0 @@ - - - - - SchemeUserState - - UMSAgent Tests.xcscheme - - orderHint - 1 - - UMSAgent.xcscheme - - orderHint - 0 - - - SuppressBuildableAutocreation - - 229AA7571A31E6B000407CF5 - - primary - - - 3630005715131A1600E84C2D - - primary - - - 3630006715131A1600E84C2D - - primary - - - - - diff --git a/sdk/iOS_sdk/UMSAgent/UMSAgent.xcodeproj/xcuserdata/wb.xcuserdatad/xcschemes/UMSAgent.xcscheme b/sdk/iOS_sdk/UMSAgent/UMSAgent.xcodeproj/xcuserdata/wb.xcuserdatad/xcschemes/UMSAgent.xcscheme deleted file mode 100644 index 186c94f1..00000000 --- a/sdk/iOS_sdk/UMSAgent/UMSAgent.xcodeproj/xcuserdata/wb.xcuserdatad/xcschemes/UMSAgent.xcscheme +++ /dev/null @@ -1,68 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/sdk/iOS_sdk/UMSAgent/UMSAgent.xcodeproj/xcuserdata/wb.xcuserdatad/xcschemes/xcschememanagement.plist b/sdk/iOS_sdk/UMSAgent/UMSAgent.xcodeproj/xcuserdata/wb.xcuserdatad/xcschemes/xcschememanagement.plist deleted file mode 100644 index d715d6e5..00000000 --- a/sdk/iOS_sdk/UMSAgent/UMSAgent.xcodeproj/xcuserdata/wb.xcuserdatad/xcschemes/xcschememanagement.plist +++ /dev/null @@ -1,27 +0,0 @@ - - - - - SchemeUserState - - UMSAgent.xcscheme - - orderHint - 0 - - - SuppressBuildableAutocreation - - 3630005715131A1600E84C2D - - primary - - - 3630006715131A1600E84C2D - - primary - - - - - diff --git a/sdk/iOS_sdk/UMSAgent/UMSAgent/UMSAgent.h b/sdk/iOS_sdk/UMSAgent/UMSAgent/UMSAgent.h new file mode 100644 index 00000000..736a6d86 --- /dev/null +++ b/sdk/iOS_sdk/UMSAgent/UMSAgent/UMSAgent.h @@ -0,0 +1,267 @@ +/** + * Cobub Razor + * + * An open source analytics iphone sdk for mobile applications + * + * @package Cobub Razor + * @author WBTECH Dev Team + * @copyright Copyright (c) 2011 - 2012, NanJing Western Bridge Co.,Ltd. + * @license http://www.cobub.com/products/cobub-razor/license + * @link http://www.cobub.com/products/cobub-razor/ + * @since Version 0.1 + * @filesource + */ + +#import +#import + +typedef enum { + BATCH = 0, //Send Data When Start + REALTIME = 1 //RealTime Send Policy + //INTERVAL = 2 +} ReportPolicy; + +@interface UMSAgent : NSObject +{ + BOOL isLogEnabled; +} + +@property (nonatomic) BOOL isLogEnabled; +/** + * 向cobub_cloud注册第三方应用 + * + * @param appKey 开发者Key + */ +#pragma mark ---appkey ++ (void)startWithAppKey:(NSString*)appKey serverURL:(NSString *)serverURL; ++ (void)startWithAppKey:(NSString*)appKey ReportPolicy:(ReportPolicy)policy serverURL:(NSString*)serverURL; +/** + * 保存错误日志 + * + * @param stackTrace 错误栈信息 + */ ++ (void)saveErrorLog:(NSString *)stackTrace; +/** + * 发送错误日志 + * + * @param stackTrace 错误栈信息 + */ ++ (void)postErrorLog:(NSString*)stackTrace; +/** + * 发送单个事件 + * + * @param event_id 事件ID + */ ++ (void)postEvent:(NSString *)event_id; +/** + * 发送单个事件,可以同时发送一个对应的标签 + * + * @param event_id 事件ID + * @param label 标签 + */ ++ (void)postEvent:(NSString *)event_id label:(NSString *)label; +/** + * 发送多个相同事件,多个高频率出现的事件,可采用此方法降低网络流量。 + * + * @param event_id 事件ID + * @param acc 计数器 + */ ++ (void)postEvent:(NSString *)event_id acc:(NSInteger)acc; +/** + * 发送多个事件,并含有相应的标签 + * + * @param event_id 事件ID + * @param label 标签 + * @param acc 计数器 + */ ++ (void)postEvent:(NSString *)event_id label:(NSString *)label acc:(NSInteger)acc; +/** + * 发送默认的系统事件,事件ID需要实现在系统配置好,ID默认为:default_maadmin_event + * + * @param label 标签 + * @param acc 计数器 + */ ++ (void)postGenericEvent:(NSString *)label acc:(NSInteger)acc; +/** + * 发送JSON数据,JSON数据格式为{"a":"avalue","b":"bvalue"....} + * + * @param event_id 事件ID + * @param jsonStr json数据 + */ ++ (void)postEventJSON:(NSString*)event_id json:(NSString*)jsonStr; + +/** + * 绑定Tags + * 用户可以自定义设置tag信息,并发送至后台 + * + * @param tag 标签 + */ ++ (void)postTag:(NSString *)tag; +/** + * 页面统计 + * + * @param page_name 页面名称 + */ ++ (void)tracePage:(NSString*)page_name; +/** + * 开始页面统计 + * + * @param page_name 页面名称 + */ ++ (void)startTracPage:(NSString*)page_name; +/** + * 结束页面统计 + * + * @param page_name 页面名称 + */ ++ (void)endTracPage:(NSString*)page_name; + +/** + * 绑定用户ID + * + * @param userid 用户ID + */ ++ (void)bindUserIdentifier:(NSString *)userid; +/** + * 设置发送间隔时间 + * + * @param interval 间隔时长 + */ ++ (void)setPostIntervalMillis:(int)interval; +/** + * 设置GPS + * + * @param latitude 纬度 + * @param longitude 经度 + */ ++ (void)setGPSLocation:(double)latitude longitude:(double)longitude; +/** + * 使用自定义参数 + * + * @param key 参数key + * + * @return 参数值 + */ ++ (NSString *)getConfigParam:(NSString*)key; +/** + * 更新在线参数 + */ ++ (void)updateOnlineParams; + +/** + * 当前设备是否越狱 + * + * @return 是返回YES,否返回NO + */ ++ (BOOL)isJailbroken; +/** + * 在线配置(如果希望使用在线配置,请在startWithAppKey调用之前调用setOnLineConfig) + * + * @param isOnlineConfig 是否在线配置 + */ ++ (void)setOnLineConfig:(BOOL)isOnlineConfig; +/** + * 是否打开调试日志 + * + * @param isLogEnabled 是返回YES,否返回NO + */ ++ (void)setIsLogEnabled:(BOOL)isLogEnabled; +/** + * 是否在非wifi状态下仍然检查更新 + * + * @param isUnderWIFI 是否在wifi下 + */ ++ (void)setUpdateOnlyWifi:(BOOL)isUnderWIFI; +/** + * 手动设置DeviceID + * 手动设置设备识别号。但是一定要在实例化UMSAgent之前调用手动设置方法,否则会导致数据不一致 + * + * @param deviceID DeviceID + */ ++ (void)setDeviceID: (NSString*)deviceID; + +//Auto update +/** + * 自动更新(系统默认只在用户具备WIFI的条件下才进行更新检查) + */ ++ (void)checkUpdate; + +//For internal used ++ (NSString*)getUMSUDID; +/** + * 获得用户ID + * + * @return 返回用户ID + */ ++ (NSString*)getUserId; +/** + * 获得SessionID + * + * @return 返回SessionID + */ ++ (NSString*)getSessionId; +/** + * 单例 + * + * @return 返回UMSAgent + */ ++ (UMSAgent*)getInstance; +/** + * 获得设备名称 + * + * @return 返回设备名称 + */ +- (NSString*)machineName; + +//File Utils +/** + * 获得文件路径 + * + * @param fileName 文件名 + * + * @return 返回文件路径 + */ ++ (NSString*) getFilePath:(NSString*)fileName; +/** + * 获得文件大小 + * + * @param filePath 文件路径 + * + * @return 返回文件大小 + */ ++ (long long) fileSizeAtPath:(NSString*) filePath; +/** + * 检查数据大小并保存 + * + * @param object 对象 + * @param fileName 文件名 + */ ++ (void) checkSizeAndSaveObject:(id)object ToFile:(NSString*)fileName; +/** + * 移除文件 + * + * @param fileName 文件名 + */ ++ (void) removeArchivedFile: (NSString*)fileName; +/** + * 数据是否太大需要被移除 + * + * @param fileName 文件名 + * + * @return 是返回YES,否返回NO + */ ++ (BOOL) fileTooLargeNeedRemoval: (NSString*)fileName; +/** + * 获取已保存的数据 + * + * @param fileName 文件名 + * + * @return 返回已保存的数据 + */ ++ (NSData*) getArchivedLogFromFile: (NSString*)fileName; +/*** + //deprecated + + (void)startTracPage:(NSString*)page_name __attribute__((deprecated)); + + (void)endTracPage:(NSString*)page_name __attribute__((deprecated)); + ***/ +@end diff --git a/sdk/iOS_sdk/UMSAgent/UMSAgent/UMSAgent.m b/sdk/iOS_sdk/UMSAgent/UMSAgent/UMSAgent.m index 3acc79f2..a8deebda 100644 --- a/sdk/iOS_sdk/UMSAgent/UMSAgent/UMSAgent.m +++ b/sdk/iOS_sdk/UMSAgent/UMSAgent/UMSAgent.m @@ -442,7 +442,7 @@ - (void)becomeActive:(NSNotification *)notification } else { - self.sessionId = [self generateSessionId]; + self.sessionId = [UMSAgent getSessionId]; } if(isLogEnabled) { @@ -460,6 +460,7 @@ + (void)saveErrorLog:(NSString*)stackTrace NSLog(@"Save Error Log..."); } ErrorLog *errorLog = [[ErrorLog alloc] init]; + errorLog.sessionID =[UMSAgent getSessionId]; errorLog.stackTrace = stackTrace; errorLog.appkey = [UMSAgent getInstance].appKey; errorLog.version = [[UMSAgent getInstance] getVersion]; @@ -512,6 +513,7 @@ + (void)postErrorLog:(NSString*)stackTrace } ErrorLog *errorLog = [[ErrorLog alloc] init]; errorLog.stackTrace = stackTrace; + errorLog.sessionID =[UMSAgent getSessionId]; errorLog.appkey = [UMSAgent getInstance].appKey; errorLog.version = [[UMSAgent getInstance]getVersion]; errorLog.time = [[UMSAgent getInstance] getCurrentTime]; @@ -600,6 +602,7 @@ + (void)postEvent:(NSString *)event_id event.version = [[UMSAgent getInstance] getVersion]; event.acc = 1; event.lib_version = LIB_VERSION; + event.sessionID =[UMSAgent getSessionId]; [[UMSAgent getInstance] archiveEvent:event]; } @@ -614,6 +617,7 @@ + (void)postEvent:(NSString *)event_id label:(NSString *)label event.activity = [[UMSAgent getInstance] getCurrentActivityName]; event.label = label; event.lib_version = LIB_VERSION; + event.sessionID =[UMSAgent getSessionId]; [[UMSAgent getInstance] archiveEvent:event]; } @@ -629,6 +633,7 @@ + (void)postGenericEvent:(NSString *)label acc:(NSInteger)acc event.activity = [[UMSAgent getInstance] getCurrentActivityName]; event.label = label; event.lib_version = LIB_VERSION; + event.sessionID =[UMSAgent getSessionId]; [[UMSAgent getInstance] archiveEvent:event]; } @@ -643,6 +648,7 @@ + (void)postEvent:(NSString *)event_id acc:(NSInteger)acc event.label = @""; event.jsonstr = @""; event.lib_version = LIB_VERSION; + event.sessionID =[UMSAgent getSessionId]; [[UMSAgent getInstance] archiveEvent:event]; } @@ -658,6 +664,7 @@ + (void)postEvent:(NSString *)event_id label:(NSString *)label acc:(NSInteger)ac event.label = label; event.jsonstr = @""; event.lib_version = LIB_VERSION; + event.sessionID =[UMSAgent getSessionId]; [[UMSAgent getInstance] archiveEvent:event]; } @@ -672,6 +679,7 @@ + (void)postEventJSON:(NSString*)event_id json:(NSString*)jsonStr event.label = @""; event.jsonstr = [jsonStr stringByReplacingPercentEscapesUsingEncoding:NSUTF8StringEncoding]; event.lib_version = LIB_VERSION; + event.sessionID =[UMSAgent getSessionId]; [[UMSAgent getInstance] archiveEvent:event]; } @@ -1388,7 +1396,9 @@ + (NSString *)getUMSUDID else { NSString *sysVersion = [[UIDevice currentDevice]systemVersion]; - NSString *firstLetter = [sysVersion substringWithRange:NSMakeRange(0, 1)]; + NSRange r = [sysVersion rangeOfString:@"."]; + NSString *firstLetter = [sysVersion substringWithRange:NSMakeRange(0, r.location)]; + int versionNumber = [firstLetter intValue]; if (versionNumber < 6) { NSString *macAddress = [[UIDevice currentDevice]macAddress]; diff --git a/sdk/iOS_sdk/UMSAgent/iOS.xcworkspace/xcuserdata/feiyue.xcuserdatad/UserInterfaceState.xcuserstate b/sdk/iOS_sdk/UMSAgent/iOS.xcworkspace/xcuserdata/feiyue.xcuserdatad/UserInterfaceState.xcuserstate deleted file mode 100644 index ed65e933..00000000 Binary files a/sdk/iOS_sdk/UMSAgent/iOS.xcworkspace/xcuserdata/feiyue.xcuserdatad/UserInterfaceState.xcuserstate and /dev/null differ diff --git a/sdk/iOS_sdk/UMSAgent/security/SFHFKeychainUtils.m b/sdk/iOS_sdk/UMSAgent/security/SFHFKeychainUtils.m index 92d5eb2d..234827de 100644 --- a/sdk/iOS_sdk/UMSAgent/security/SFHFKeychainUtils.m +++ b/sdk/iOS_sdk/UMSAgent/security/SFHFKeychainUtils.m @@ -1,60 +1,26 @@ -// -// SFHFKeychainUtils.m -// - -// Created by Buzz Andersen on 10/20/08. -// Based partly on code by Jonathan Wight, Jon Crosby, and Mike Malone. -// Copyright 2008 Sci-Fi Hi-Fi. All rights reserved. -// - -// Permission is hereby granted, free of charge, to any person -// obtaining a copy of this software and associated documentation -// files (the "Software"), to deal in the Software without -// restriction, including without limitation the rights to use, -// copy, modify, merge, publish, distribute, sublicense, and/or sell -// copies of the Software, and to permit persons to whom the -// Software is furnished to do so, subject to the following -// conditions: -// - -// The above copyright notice and this permission notice shall be -// included in all copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES -// OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND -// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT -// HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, -// WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING -// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR -// OTHER DEALINGS IN THE SOFTWARE. -// - #import "SFHFKeychainUtils.h" #import - static NSString *SFHFKeychainUtilsErrorDomain = @"SFHFKeychainUtilsErrorDomain"; #if __IPHONE_OS_VERSION_MIN_REQUIRED < 30000 && TARGET_IPHONE_SIMULATOR - @interface SFHFKeychainUtils (PrivateMethods) -(SecKeychainItemRef) getKeychainItemReferenceForUsername: (NSString *) username andServiceName: (NSString *) serviceName error: (NSError **) error; ++ (SecKeychainItemRef) getKeychainItemReferenceForUsername: (NSString *) username andServiceName: (NSString *) serviceName error: (NSError **) error; @end - #endif @implementation SFHFKeychainUtils #if __IPHONE_OS_VERSION_MIN_REQUIRED < 30000 && TARGET_IPHONE_SIMULATOR -+(NSString *) getPasswordForUsername: (NSString *) username andServiceName: (NSString *) serviceName error: (NSError **) error { ++ (NSString *) getPasswordForUsername: (NSString *) username andServiceName: (NSString *) serviceName error: (NSError **) error { if (!username || !serviceName) { *error = [NSError errorWithDomain: SFHFKeychainUtilsErrorDomain code: -2000 userInfo: nil]; return nil; } SecKeychainItemRef item = [SFHFKeychainUtils getKeychainItemReferenceForUsername: username andServiceName: serviceName error: error]; + if (*error || !item) { return nil; } @@ -64,53 +30,78 @@ +(NSString *) getPasswordForUsername: (NSString *) username andServiceName: (NSS char *password; SecKeychainAttribute attributes[8]; SecKeychainAttributeList list; + attributes[0].tag = kSecAccountItemAttr; attributes[1].tag = kSecDescriptionItemAttr; attributes[2].tag = kSecLabelItemAttr; attributes[3].tag = kSecModDateItemAttr; + list.count = 4; list.attr = attributes; + OSStatus status = SecKeychainItemCopyContent(item, NULL, &list, &length, (void **)&password); + if (status != noErr) { *error = [NSError errorWithDomain: SFHFKeychainUtilsErrorDomain code: status userInfo: nil]; return nil; } + NSString *passwordString = nil; + if (password != NULL) { char passwordBuffer[1024]; + if (length > 1023) { length = 1023; } strncpy(passwordBuffer, password, length); + passwordBuffer[length] = '\0'; passwordString = [NSString stringWithCString:passwordBuffer]; } + SecKeychainItemFreeContent(&list, password); + CFRelease(item); + return passwordString; } + (void) storeUsername: (NSString *) username andPassword: (NSString *) password forServiceName: (NSString *) serviceName updateExisting: (BOOL) updateExisting error: (NSError **) error { - if (!username || !password || !serviceName) { *error = [NSError errorWithDomain: SFHFKeychainUtilsErrorDomain code: -2000 userInfo: nil]; return; } + OSStatus status = noErr; + SecKeychainItemRef item = [SFHFKeychainUtils getKeychainItemReferenceForUsername: username andServiceName: serviceName error: error]; + if (*error && [*error code] != noErr) { return; } + *error = nil; if (item) { - status = SecKeychainItemModifyAttributesAndData(item,NULL,strlen([password UTF8String]),[password UTF8String]); + status = SecKeychainItemModifyAttributesAndData(item, + NULL, + strlen([password UTF8String]), + [password UTF8String]); + CFRelease(item); } else { - status = SecKeychainAddGenericPassword(NULL,strlen([serviceName UTF8String]),[serviceName UTF8String],strlen([username UTF8String]),[username UTF8String],strlen([password UTF8String]),[password UTF8String],NULL); - + status = SecKeychainAddGenericPassword(NULL, + strlen([serviceName UTF8String]), + [serviceName UTF8String], + strlen([username UTF8String]), + [username UTF8String], + strlen([password UTF8String]), + [password UTF8String], + NULL); } + if (status != noErr) { *error = [NSError errorWithDomain: SFHFKeychainUtilsErrorDomain code: status userInfo: nil]; } @@ -125,13 +116,16 @@ + (void) deleteItemForUsername: (NSString *) username andServiceName: (NSString *error = nil; SecKeychainItemRef item = [SFHFKeychainUtils getKeychainItemReferenceForUsername: username andServiceName: serviceName error: error]; + if (*error && [*error code] != noErr) { return; } OSStatus status; + if (item) { status = SecKeychainItemDelete(item); + CFRelease(item); } @@ -147,22 +141,32 @@ + (SecKeychainItemRef) getKeychainItemReferenceForUsername: (NSString *) usernam } *error = nil; + SecKeychainItemRef item; - OSStatus status = SecKeychainFindGenericPassword(NULL,strlen([serviceName UTF8String]),[serviceName UTF8String],strlen([username UTF8String]),[username UTF8String], NULL,NULL,&item); + + OSStatus status = SecKeychainFindGenericPassword(NULL, + strlen([serviceName UTF8String]), + [serviceName UTF8String], + strlen([username UTF8String]), + [username UTF8String], + NULL, + NULL, + &item); if (status != noErr) { if (status != errSecItemNotFound) { *error = [NSError errorWithDomain: SFHFKeychainUtilsErrorDomain code: status userInfo: nil]; } + return nil; } + return item; } #else + (NSString *) getPasswordForUsername: (NSString *) username andServiceName: (NSString *) serviceName error: (NSError **) error { - if (!username || !serviceName) { if (error != nil) { *error = [NSError errorWithDomain: SFHFKeychainUtilsErrorDomain code: -2000 userInfo: nil]; @@ -173,33 +177,47 @@ + (NSString *) getPasswordForUsername: (NSString *) username andServiceName: (NS if (error != nil) { *error = nil; } + // Set up a query dictionary with the base query attributes: item type (generic), username, and service - NSArray *keys = [[NSArray alloc] initWithObjects: (__bridge_transfer NSString *) kSecClass, kSecAttrAccount, kSecAttrService, nil]; - NSArray *objects = [[NSArray alloc] initWithObjects: (__bridge_transfer NSString *) kSecClassGenericPassword, username, serviceName, nil]; - NSMutableDictionary *query = [[NSMutableDictionary alloc] initWithObjects: objects forKeys: keys]; + + NSArray *keys = [[[NSArray alloc] initWithObjects: (NSString *) kSecClass, kSecAttrAccount, kSecAttrService, nil] autorelease]; + NSArray *objects = [[[NSArray alloc] initWithObjects: (NSString *) kSecClassGenericPassword, username, serviceName, nil] autorelease]; + + NSMutableDictionary *query = [[[NSMutableDictionary alloc] initWithObjects: objects forKeys: keys] autorelease]; + // First do a query for attributes, in case we already have a Keychain item with no password data set. // One likely way such an incorrect item could have come about is due to the previous (incorrect) // version of this code (which set the password as a generic attribute instead of password data). + + NSDictionary *attributeResult = NULL; NSMutableDictionary *attributeQuery = [query mutableCopy]; - [attributeQuery setObject: (id) kCFBooleanTrue forKey:(__bridge_transfer id) kSecReturnAttributes]; - CFTypeRef attrResult = NULL; - OSStatus status = SecItemCopyMatching((__bridge_retained CFDictionaryRef) attributeQuery, &attrResult); - //NSDictionary *attributeResult = (__bridge_transfer NSDictionary *)attrResult; + [attributeQuery setObject: (id) kCFBooleanTrue forKey:(id) kSecReturnAttributes]; + OSStatus status = SecItemCopyMatching((CFDictionaryRef) attributeQuery,(CFTypeRef *) &attributeResult); + + [attributeResult release]; + [attributeQuery release]; + if (status != noErr) { // No existing item found--simply return nil for the password if (error != nil && status != errSecItemNotFound) { //Only return an error if a real exception happened--not simply for "not found." *error = [NSError errorWithDomain: SFHFKeychainUtilsErrorDomain code: status userInfo: nil]; } + return nil; } // We have an existing item, now query for the password data associated with it. + + NSData *resultData = nil; NSMutableDictionary *passwordQuery = [query mutableCopy]; - [passwordQuery setObject: (id) kCFBooleanTrue forKey: (__bridge_transfer id) kSecReturnData]; - CFTypeRef resData = NULL; - status = SecItemCopyMatching((__bridge_retained CFDictionaryRef) passwordQuery, (CFTypeRef *) &resData); - NSData *resultData = (__bridge_transfer NSData *)resData; + [passwordQuery setObject: (id) kCFBooleanTrue forKey: (id) kSecReturnData]; + + status = SecItemCopyMatching((CFDictionaryRef) passwordQuery, (CFTypeRef *) &resultData); + + [resultData autorelease]; + [passwordQuery release]; + if (status != noErr) { if (status == errSecItemNotFound) { // We found attributes for the item previously, but no password now, so return a special error. @@ -208,7 +226,6 @@ + (NSString *) getPasswordForUsername: (NSString *) username andServiceName: (NS // using storeUsername:andPassword:forServiceName:updateExisting:error // the old, incorrect entry will be deleted and a new one with a properly encrypted // password will be added. - if (error != nil) { *error = [NSError errorWithDomain: SFHFKeychainUtilsErrorDomain code: -1999 userInfo: nil]; } @@ -219,9 +236,12 @@ + (NSString *) getPasswordForUsername: (NSString *) username andServiceName: (NS *error = [NSError errorWithDomain: SFHFKeychainUtilsErrorDomain code: status userInfo: nil]; } } + return nil; } + NSString *password = nil; + if (resultData) { password = [[NSString alloc] initWithData: resultData encoding: NSUTF8StringEncoding]; } @@ -229,19 +249,17 @@ + (NSString *) getPasswordForUsername: (NSString *) username andServiceName: (NS // There is an existing item, but we weren't able to get password data for it for some reason, // Possibly as a result of an item being incorrectly entered by the previous code. // Set the -1999 error so the code above us can prompt the user again. - if (error != nil) { *error = [NSError errorWithDomain: SFHFKeychainUtilsErrorDomain code: -1999 userInfo: nil]; } } - return password; + + return [password autorelease]; } + (BOOL) storeUsername: (NSString *) username andPassword: (NSString *) password forServiceName: (NSString *) serviceName updateExisting: (BOOL) updateExisting error: (NSError **) error - { if (!username || !password || !serviceName) - { if (error != nil) { @@ -251,15 +269,14 @@ + (BOOL) storeUsername: (NSString *) username andPassword: (NSString *) password } // See if we already have a password entered for these credentials. - NSError *getError = nil; NSString *existingPassword = [SFHFKeychainUtils getPasswordForUsername: username andServiceName: serviceName error:&getError]; if ([getError code] == -1999) { // There is an existing entry without a password properly stored (possibly as a result of the previous incorrect version of this code. - // Delete the existing item before moving on entering a correct one. + getError = nil; [self deleteItemForUsername: username andServiceName: serviceName error: &getError]; @@ -281,6 +298,7 @@ + (BOOL) storeUsername: (NSString *) username andPassword: (NSString *) password } return NO; } + if (error != nil) { *error = nil; @@ -290,7 +308,6 @@ + (BOOL) storeUsername: (NSString *) username andPassword: (NSString *) password if (existingPassword) { - // We have an existing, properly entered item with a password. // Update the existing item. @@ -298,64 +315,95 @@ + (BOOL) storeUsername: (NSString *) username andPassword: (NSString *) password { //Only update if we're allowed to update existing. If not, simply do nothing. - NSArray *keys = [[NSArray alloc] initWithObjects: (__bridge_transfer NSString *) kSecClass,kSecAttrService,kSecAttrLabel,kSecAttrAccount,nil]; + NSArray *keys = [[[NSArray alloc] initWithObjects: (NSString *) kSecClass, + kSecAttrService, + kSecAttrLabel, + kSecAttrAccount, + nil] autorelease]; - NSArray *objects = [[NSArray alloc] initWithObjects: (__bridge_transfer NSString *) kSecClassGenericPassword,serviceName,serviceName,username,nil]; + NSArray *objects = [[[NSArray alloc] initWithObjects: (NSString *) kSecClassGenericPassword, + serviceName, + serviceName, + username, + nil] autorelease]; - NSDictionary *query = [[NSDictionary alloc] initWithObjects: objects forKeys: keys]; + NSDictionary *query = [[[NSDictionary alloc] initWithObjects: objects forKeys: keys] autorelease]; - status = SecItemUpdate((__bridge_retained CFDictionaryRef) query, (__bridge_retained CFDictionaryRef) [NSDictionary dictionaryWithObject: [password dataUsingEncoding: NSUTF8StringEncoding] forKey: (__bridge_transfer NSString *) kSecValueData]); + status = SecItemUpdate((CFDictionaryRef) query, (CFDictionaryRef) [NSDictionary dictionaryWithObject: [password dataUsingEncoding: NSUTF8StringEncoding] forKey: (NSString *) kSecValueData]); } } else { // No existing entry (or an existing, improperly entered, and therefore now - // deleted, entry). Create a new entry. + NSArray *keys = [[[NSArray alloc] initWithObjects: (NSString *) kSecClass, + kSecAttrService, + kSecAttrLabel, + kSecAttrAccount, + kSecValueData, + nil] autorelease]; - NSArray *keys = [[NSArray alloc] initWithObjects: (__bridge_transfer NSString *) kSecClass,kSecAttrService,kSecAttrLabel,kSecAttrAccount,kSecValueData,nil]; - - NSArray *objects = [[NSArray alloc] initWithObjects: (__bridge_transfer NSString *) kSecClassGenericPassword,serviceName,serviceName,username,[password dataUsingEncoding: NSUTF8StringEncoding],nil]; + NSArray *objects = [[[NSArray alloc] initWithObjects: (NSString *) kSecClassGenericPassword, + serviceName, + serviceName, + username, + [password dataUsingEncoding: NSUTF8StringEncoding], + nil] autorelease]; - NSDictionary *query = [[NSDictionary alloc] initWithObjects: objects forKeys: keys]; + NSDictionary *query = [[[NSDictionary alloc] initWithObjects: objects forKeys: keys] autorelease]; - status = SecItemAdd((__bridge_retained CFDictionaryRef) query, NULL); + status = SecItemAdd((CFDictionaryRef) query, NULL); } - if (error != nil && status != noErr) + + if (status != noErr) { // Something went wrong with adding the new item. Return the Keychain error code. - *error = [NSError errorWithDomain: SFHFKeychainUtilsErrorDomain code: status userInfo: nil]; + if (error != nil) { + *error = [NSError errorWithDomain: SFHFKeychainUtilsErrorDomain code: status userInfo: nil]; + } + return NO; } + return YES; } -+ (BOOL) deleteItemForUsername: (NSString *) username andServiceName: (NSString *) serviceName error: (NSError **) error ++ (BOOL) deleteItemForUsername: (NSString *) username andServiceName: (NSString *) serviceName error: (NSError **) error { - if (!username || !serviceName) + if (!username || !serviceName) { - if (error != nil) + if (error != nil) { *error = [NSError errorWithDomain: SFHFKeychainUtilsErrorDomain code: -2000 userInfo: nil]; } return NO; } - if (error != nil) + + if (error != nil) { *error = nil; } - NSArray *keys = [[NSArray alloc] initWithObjects: (__bridge_transfer NSString *) kSecClass, kSecAttrAccount, kSecAttrService, kSecReturnAttributes, nil]; - NSArray *objects = [[NSArray alloc] initWithObjects: (__bridge_transfer NSString *) kSecClassGenericPassword, username, serviceName, kCFBooleanTrue, nil]; - NSDictionary *query = [[NSDictionary alloc] initWithObjects: objects forKeys: keys]; - OSStatus status = SecItemDelete((__bridge_retained CFDictionaryRef) query); - if (error != nil && status != noErr) + NSArray *keys = [[[NSArray alloc] initWithObjects: (NSString *) kSecClass, kSecAttrAccount, kSecAttrService, kSecReturnAttributes, nil] autorelease]; + NSArray *objects = [[[NSArray alloc] initWithObjects: (NSString *) kSecClassGenericPassword, username, serviceName, kCFBooleanTrue, nil] autorelease]; + + NSDictionary *query = [[[NSDictionary alloc] initWithObjects: objects forKeys: keys] autorelease]; + + OSStatus status = SecItemDelete((CFDictionaryRef) query); + + if (status != noErr) { - *error = [NSError errorWithDomain: SFHFKeychainUtilsErrorDomain code: status userInfo: nil]; + if (error != nil) { + *error = [NSError errorWithDomain: SFHFKeychainUtilsErrorDomain code: status userInfo: nil]; + } + return NO; } + return YES; } + #endif + @end \ No newline at end of file diff --git a/sdk/iOS_sdk/UMSAgentExample/UMSAgentExample.xcodeproj/project.pbxproj b/sdk/iOS_sdk/UMSAgentExample/UMSAgentExample.xcodeproj/project.pbxproj index 557fb694..02047e8b 100644 --- a/sdk/iOS_sdk/UMSAgentExample/UMSAgentExample.xcodeproj/project.pbxproj +++ b/sdk/iOS_sdk/UMSAgentExample/UMSAgentExample.xcodeproj/project.pbxproj @@ -1536,6 +1536,10 @@ LastTestingUpgradeCheck = 0730; LastUpgradeCheck = 0430; TargetAttributes = { + 3609A5A815180C7300BEDA05 = { + DevelopmentTeam = 4H8V2K3M84; + ProvisioningStyle = Automatic; + }; 3609A5C915180C7300BEDA05 = { DevelopmentTeam = F9C6W6M498; }; @@ -1936,7 +1940,8 @@ isa = XCBuildConfiguration; buildSettings = { CODE_SIGN_IDENTITY = "iPhone Developer: 熙成 李 (DPDRXHQ8H5)"; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer: 熙成 李 (DPDRXHQ8H5)"; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + DEVELOPMENT_TEAM = 4H8V2K3M84; ENABLE_BITCODE = NO; GCC_PRECOMPILE_PREFIX_HEADER = YES; GCC_PREFIX_HEADER = "UMSAgentExample/UMSAgentExample-Prefix.pch"; @@ -1956,7 +1961,7 @@ "$(PROJECT_DIR)/UMSAgentExample", ); PRODUCT_NAME = "$(TARGET_NAME)"; - PROVISIONING_PROFILE = "26a9067e-417d-4941-a415-e615651171e8"; + PROVISIONING_PROFILE = ""; "PROVISIONING_PROFILE[sdk=iphoneos*]" = "26a9067e-417d-4941-a415-e615651171e8"; TARGETED_DEVICE_FAMILY = "1,2"; WRAPPER_EXTENSION = app; @@ -1967,7 +1972,8 @@ isa = XCBuildConfiguration; buildSettings = { CODE_SIGN_IDENTITY = "iPhone Developer: 熙成 李 (DPDRXHQ8H5)"; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer: 熙成 李 (DPDRXHQ8H5)"; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + DEVELOPMENT_TEAM = 4H8V2K3M84; ENABLE_BITCODE = NO; GCC_PRECOMPILE_PREFIX_HEADER = YES; GCC_PREFIX_HEADER = "UMSAgentExample/UMSAgentExample-Prefix.pch"; @@ -1987,7 +1993,7 @@ "$(PROJECT_DIR)/UMSAgentExample", ); PRODUCT_NAME = "$(TARGET_NAME)"; - PROVISIONING_PROFILE = "26a9067e-417d-4941-a415-e615651171e8"; + PROVISIONING_PROFILE = ""; "PROVISIONING_PROFILE[sdk=iphoneos*]" = "26a9067e-417d-4941-a415-e615651171e8"; TARGETED_DEVICE_FAMILY = "1,2"; WRAPPER_EXTENSION = app; diff --git a/sdk/iOS_sdk/UMSAgentExample/UMSAgentExample.xcodeproj/project.xcworkspace/xcuserdata/admin.xcuserdatad/UserInterfaceState.xcuserstate b/sdk/iOS_sdk/UMSAgentExample/UMSAgentExample.xcodeproj/project.xcworkspace/xcuserdata/admin.xcuserdatad/UserInterfaceState.xcuserstate deleted file mode 100644 index 2cf39a68..00000000 Binary files a/sdk/iOS_sdk/UMSAgentExample/UMSAgentExample.xcodeproj/project.xcworkspace/xcuserdata/admin.xcuserdatad/UserInterfaceState.xcuserstate and /dev/null differ diff --git a/sdk/iOS_sdk/UMSAgentExample/UMSAgentExample.xcodeproj/project.xcworkspace/xcuserdata/guowei.xcuserdatad/UserInterfaceState.xcuserstate b/sdk/iOS_sdk/UMSAgentExample/UMSAgentExample.xcodeproj/project.xcworkspace/xcuserdata/guowei.xcuserdatad/UserInterfaceState.xcuserstate deleted file mode 100644 index 8cb0244d..00000000 Binary files a/sdk/iOS_sdk/UMSAgentExample/UMSAgentExample.xcodeproj/project.xcworkspace/xcuserdata/guowei.xcuserdatad/UserInterfaceState.xcuserstate and /dev/null differ diff --git a/sdk/iOS_sdk/UMSAgentExample/UMSAgentExample.xcodeproj/project.xcworkspace/xcuserdata/tim.xcuserdatad/UserInterfaceState.xcuserstate b/sdk/iOS_sdk/UMSAgentExample/UMSAgentExample.xcodeproj/project.xcworkspace/xcuserdata/tim.xcuserdatad/UserInterfaceState.xcuserstate deleted file mode 100644 index 9fe63e56..00000000 Binary files a/sdk/iOS_sdk/UMSAgentExample/UMSAgentExample.xcodeproj/project.xcworkspace/xcuserdata/tim.xcuserdatad/UserInterfaceState.xcuserstate and /dev/null differ diff --git a/sdk/iOS_sdk/UMSAgentExample/UMSAgentExample.xcodeproj/project.xcworkspace/xcuserdata/tim.xcuserdatad/WorkspaceSettings.xcsettings b/sdk/iOS_sdk/UMSAgentExample/UMSAgentExample.xcodeproj/project.xcworkspace/xcuserdata/tim.xcuserdatad/WorkspaceSettings.xcsettings deleted file mode 100644 index 659c8766..00000000 --- a/sdk/iOS_sdk/UMSAgentExample/UMSAgentExample.xcodeproj/project.xcworkspace/xcuserdata/tim.xcuserdatad/WorkspaceSettings.xcsettings +++ /dev/null @@ -1,10 +0,0 @@ - - - - - HasAskedToTakeAutomaticSnapshotBeforeSignificantChanges - - SnapshotAutomaticallyBeforeSignificantChanges - - - diff --git a/sdk/iOS_sdk/UMSAgentExample/UMSAgentExample.xcodeproj/project.xcworkspace/xcuserdata/wb.xcuserdatad/UserInterfaceState.xcuserstate b/sdk/iOS_sdk/UMSAgentExample/UMSAgentExample.xcodeproj/project.xcworkspace/xcuserdata/wb.xcuserdatad/UserInterfaceState.xcuserstate deleted file mode 100644 index 75ae3cb0..00000000 Binary files a/sdk/iOS_sdk/UMSAgentExample/UMSAgentExample.xcodeproj/project.xcworkspace/xcuserdata/wb.xcuserdatad/UserInterfaceState.xcuserstate and /dev/null differ diff --git a/sdk/iOS_sdk/UMSAgentExample/UMSAgentExample.xcodeproj/xcuserdata/admin.xcuserdatad/xcdebugger/Breakpoints.xcbkptlist b/sdk/iOS_sdk/UMSAgentExample/UMSAgentExample.xcodeproj/xcuserdata/admin.xcuserdatad/xcdebugger/Breakpoints.xcbkptlist deleted file mode 100644 index 42f85ac7..00000000 --- a/sdk/iOS_sdk/UMSAgentExample/UMSAgentExample.xcodeproj/xcuserdata/admin.xcuserdatad/xcdebugger/Breakpoints.xcbkptlist +++ /dev/null @@ -1,20 +0,0 @@ - - - - - - - diff --git a/sdk/iOS_sdk/UMSAgentExample/UMSAgentExample.xcodeproj/xcuserdata/apple.xcuserdatad/xcschemes/xcschememanagement.plist b/sdk/iOS_sdk/UMSAgentExample/UMSAgentExample.xcodeproj/xcuserdata/apple.xcuserdatad/xcschemes/xcschememanagement.plist deleted file mode 100644 index 3731a1d0..00000000 --- a/sdk/iOS_sdk/UMSAgentExample/UMSAgentExample.xcodeproj/xcuserdata/apple.xcuserdatad/xcschemes/xcschememanagement.plist +++ /dev/null @@ -1,27 +0,0 @@ - - - - - SchemeUserState - - UMSAgentExample.xcscheme - - orderHint - 1 - - - SuppressBuildableAutocreation - - 3609A5A815180C7300BEDA05 - - primary - - - 3609A5C915180C7300BEDA05 - - primary - - - - - diff --git a/sdk/iOS_sdk/UMSAgentExample/UMSAgentExample.xcodeproj/xcuserdata/feiyue.xcuserdatad/xcschemes/UMSAgentExample.xcscheme b/sdk/iOS_sdk/UMSAgentExample/UMSAgentExample.xcodeproj/xcuserdata/feiyue.xcuserdatad/xcschemes/UMSAgentExample.xcscheme deleted file mode 100644 index 25a31a96..00000000 --- a/sdk/iOS_sdk/UMSAgentExample/UMSAgentExample.xcodeproj/xcuserdata/feiyue.xcuserdatad/xcschemes/UMSAgentExample.xcscheme +++ /dev/null @@ -1,112 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/sdk/iOS_sdk/UMSAgentExample/UMSAgentExample.xcodeproj/xcuserdata/feiyue.xcuserdatad/xcschemes/xcschememanagement.plist b/sdk/iOS_sdk/UMSAgentExample/UMSAgentExample.xcodeproj/xcuserdata/feiyue.xcuserdatad/xcschemes/xcschememanagement.plist deleted file mode 100644 index 3731a1d0..00000000 --- a/sdk/iOS_sdk/UMSAgentExample/UMSAgentExample.xcodeproj/xcuserdata/feiyue.xcuserdatad/xcschemes/xcschememanagement.plist +++ /dev/null @@ -1,27 +0,0 @@ - - - - - SchemeUserState - - UMSAgentExample.xcscheme - - orderHint - 1 - - - SuppressBuildableAutocreation - - 3609A5A815180C7300BEDA05 - - primary - - - 3609A5C915180C7300BEDA05 - - primary - - - - - diff --git a/sdk/iOS_sdk/UMSAgentExample/UMSAgentExample.xcodeproj/xcuserdata/guowei.xcuserdatad/xcschemes/UMSAgentExample.xcscheme b/sdk/iOS_sdk/UMSAgentExample/UMSAgentExample.xcodeproj/xcuserdata/guowei.xcuserdatad/xcschemes/UMSAgentExample.xcscheme deleted file mode 100644 index 829903b3..00000000 --- a/sdk/iOS_sdk/UMSAgentExample/UMSAgentExample.xcodeproj/xcuserdata/guowei.xcuserdatad/xcschemes/UMSAgentExample.xcscheme +++ /dev/null @@ -1,112 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/sdk/iOS_sdk/UMSAgentExample/UMSAgentExample.xcodeproj/xcuserdata/guowei.xcuserdatad/xcschemes/xcschememanagement.plist b/sdk/iOS_sdk/UMSAgentExample/UMSAgentExample.xcodeproj/xcuserdata/guowei.xcuserdatad/xcschemes/xcschememanagement.plist deleted file mode 100644 index b86fc162..00000000 --- a/sdk/iOS_sdk/UMSAgentExample/UMSAgentExample.xcodeproj/xcuserdata/guowei.xcuserdatad/xcschemes/xcschememanagement.plist +++ /dev/null @@ -1,27 +0,0 @@ - - - - - SchemeUserState - - UMSAgentExample.xcscheme - - orderHint - 0 - - - SuppressBuildableAutocreation - - 3609A5A815180C7300BEDA05 - - primary - - - 3609A5C915180C7300BEDA05 - - primary - - - - - diff --git a/sdk/iOS_sdk/UMSAgentExample/UMSAgentExample.xcodeproj/xcuserdata/admin.xcuserdatad/xcschemes/UMSAgentExample.xcscheme b/sdk/iOS_sdk/UMSAgentExample/UMSAgentExample.xcodeproj/xcuserdata/likang.xcuserdatad/xcschemes/UMSAgentExample.xcscheme similarity index 83% rename from sdk/iOS_sdk/UMSAgentExample/UMSAgentExample.xcodeproj/xcuserdata/admin.xcuserdatad/xcschemes/UMSAgentExample.xcscheme rename to sdk/iOS_sdk/UMSAgentExample/UMSAgentExample.xcodeproj/xcuserdata/likang.xcuserdatad/xcschemes/UMSAgentExample.xcscheme index ad110d55..638c7eb8 100644 --- a/sdk/iOS_sdk/UMSAgentExample/UMSAgentExample.xcodeproj/xcuserdata/admin.xcuserdatad/xcschemes/UMSAgentExample.xcscheme +++ b/sdk/iOS_sdk/UMSAgentExample/UMSAgentExample.xcodeproj/xcuserdata/likang.xcuserdatad/xcschemes/UMSAgentExample.xcscheme @@ -1,5 +1,6 @@ + shouldUseLaunchSchemeArgsEnv = "YES"> - - - - + + - + - + + shouldUseLaunchSchemeArgsEnv = "YES"> - - - - - - - - + + - + - + - + - + diff --git a/sdk/iOS_sdk/UMSAgentExample/UMSAgentExample.xcodeproj/xcuserdata/admin.xcuserdatad/xcschemes/xcschememanagement.plist b/sdk/iOS_sdk/UMSAgentExample/UMSAgentExample.xcodeproj/xcuserdata/likang.xcuserdatad/xcschemes/xcschememanagement.plist similarity index 83% rename from sdk/iOS_sdk/UMSAgentExample/UMSAgentExample.xcodeproj/xcuserdata/admin.xcuserdatad/xcschemes/xcschememanagement.plist rename to sdk/iOS_sdk/UMSAgentExample/UMSAgentExample.xcodeproj/xcuserdata/likang.xcuserdatad/xcschemes/xcschememanagement.plist index b86fc162..c67bf738 100644 --- a/sdk/iOS_sdk/UMSAgentExample/UMSAgentExample.xcodeproj/xcuserdata/admin.xcuserdatad/xcschemes/xcschememanagement.plist +++ b/sdk/iOS_sdk/UMSAgentExample/UMSAgentExample.xcodeproj/xcuserdata/likang.xcuserdatad/xcschemes/xcschememanagement.plist @@ -9,6 +9,11 @@ orderHint 0 + UMSAgentExampleTests.xcscheme + + orderHint + 1 + SuppressBuildableAutocreation diff --git a/sdk/iOS_sdk/UMSAgentExample/UMSAgentExample.xcodeproj/xcuserdata/tim.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist b/sdk/iOS_sdk/UMSAgentExample/UMSAgentExample.xcodeproj/xcuserdata/tim.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist deleted file mode 100644 index b168e8e2..00000000 --- a/sdk/iOS_sdk/UMSAgentExample/UMSAgentExample.xcodeproj/xcuserdata/tim.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist +++ /dev/null @@ -1,2045 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/sdk/iOS_sdk/UMSAgentExample/UMSAgentExample.xcodeproj/xcuserdata/tim.xcuserdatad/xcschemes/UMSAgentExample.xcscheme b/sdk/iOS_sdk/UMSAgentExample/UMSAgentExample.xcodeproj/xcuserdata/tim.xcuserdatad/xcschemes/UMSAgentExample.xcscheme deleted file mode 100644 index 5ed2ec27..00000000 --- a/sdk/iOS_sdk/UMSAgentExample/UMSAgentExample.xcodeproj/xcuserdata/tim.xcuserdatad/xcschemes/UMSAgentExample.xcscheme +++ /dev/null @@ -1,96 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/sdk/iOS_sdk/UMSAgentExample/UMSAgentExample.xcodeproj/xcuserdata/tim.xcuserdatad/xcschemes/xcschememanagement.plist b/sdk/iOS_sdk/UMSAgentExample/UMSAgentExample.xcodeproj/xcuserdata/tim.xcuserdatad/xcschemes/xcschememanagement.plist deleted file mode 100644 index b86fc162..00000000 --- a/sdk/iOS_sdk/UMSAgentExample/UMSAgentExample.xcodeproj/xcuserdata/tim.xcuserdatad/xcschemes/xcschememanagement.plist +++ /dev/null @@ -1,27 +0,0 @@ - - - - - SchemeUserState - - UMSAgentExample.xcscheme - - orderHint - 0 - - - SuppressBuildableAutocreation - - 3609A5A815180C7300BEDA05 - - primary - - - 3609A5C915180C7300BEDA05 - - primary - - - - - diff --git a/sdk/iOS_sdk/UMSAgentExample/UMSAgentExample.xcodeproj/xcuserdata/wb.xcuserdatad/xcdebugger/Breakpoints.xcbkptlist b/sdk/iOS_sdk/UMSAgentExample/UMSAgentExample.xcodeproj/xcuserdata/wb.xcuserdatad/xcdebugger/Breakpoints.xcbkptlist deleted file mode 100644 index 90d1fa26..00000000 --- a/sdk/iOS_sdk/UMSAgentExample/UMSAgentExample.xcodeproj/xcuserdata/wb.xcuserdatad/xcdebugger/Breakpoints.xcbkptlist +++ /dev/null @@ -1,33 +0,0 @@ - - - - - - - - - diff --git a/sdk/iOS_sdk/UMSAgentExample/UMSAgentExample.xcodeproj/xcuserdata/wb.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist b/sdk/iOS_sdk/UMSAgentExample/UMSAgentExample.xcodeproj/xcuserdata/wb.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist deleted file mode 100644 index 418a309e..00000000 --- a/sdk/iOS_sdk/UMSAgentExample/UMSAgentExample.xcodeproj/xcuserdata/wb.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist +++ /dev/null @@ -1,39 +0,0 @@ - - - - - - - - - - - - - diff --git a/sdk/iOS_sdk/UMSAgentExample/UMSAgentExample.xcodeproj/xcuserdata/wb.xcuserdatad/xcschemes/UMSAgentExample.xcscheme b/sdk/iOS_sdk/UMSAgentExample/UMSAgentExample.xcodeproj/xcuserdata/wb.xcuserdatad/xcschemes/UMSAgentExample.xcscheme deleted file mode 100644 index 019b103c..00000000 --- a/sdk/iOS_sdk/UMSAgentExample/UMSAgentExample.xcodeproj/xcuserdata/wb.xcuserdatad/xcschemes/UMSAgentExample.xcscheme +++ /dev/null @@ -1,114 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/sdk/iOS_sdk/UMSAgentExample/UMSAgentExample.xcodeproj/xcuserdata/wb.xcuserdatad/xcschemes/xcschememanagement.plist b/sdk/iOS_sdk/UMSAgentExample/UMSAgentExample.xcodeproj/xcuserdata/wb.xcuserdatad/xcschemes/xcschememanagement.plist deleted file mode 100644 index b86fc162..00000000 --- a/sdk/iOS_sdk/UMSAgentExample/UMSAgentExample.xcodeproj/xcuserdata/wb.xcuserdatad/xcschemes/xcschememanagement.plist +++ /dev/null @@ -1,27 +0,0 @@ - - - - - SchemeUserState - - UMSAgentExample.xcscheme - - orderHint - 0 - - - SuppressBuildableAutocreation - - 3609A5A815180C7300BEDA05 - - primary - - - 3609A5C915180C7300BEDA05 - - primary - - - - - diff --git a/web/application/third_party/ipip/17monipdb.dat b/web/application/third_party/ipip/17monipdb.dat index 3ea1398c..a38c4d3a 100644 Binary files a/web/application/third_party/ipip/17monipdb.dat and b/web/application/third_party/ipip/17monipdb.dat differ diff --git a/web/application/third_party/ipip/IP.class.php b/web/application/third_party/ipip/IP.class.php index aeff1703..e1ba44e3 100644 --- a/web/application/third_party/ipip/IP.class.php +++ b/web/application/third_party/ipip/IP.class.php @@ -1,9 +1,9 @@ - Build 20141009 版权所有 IPIP.NET + Build 20141009 版权所有 17MON.CN (C) 2006 - 2014 保留所有权利 请注意及时更新 IP 数据库版本 数据问题请加 QQ 群: 346280296 @@ -104,4 +104,6 @@ public function __destruct() fclose(self::$fp); } } -} \ No newline at end of file +} + +?> \ No newline at end of file diff --git a/web/application/views/conversionrate/funnelsview.php b/web/application/views/conversionrate/funnelsview.php index 90c76249..7e4ecc9b 100644 --- a/web/application/views/conversionrate/funnelsview.php +++ b/web/application/views/conversionrate/funnelsview.php @@ -84,7 +84,9 @@ ?> - + @@ -102,6 +104,7 @@ diff --git a/web/assets/sql/dbtables.sql b/web/assets/sql/dbtables.sql index a1db19be..d8e32dbd 100644 --- a/web/assets/sql/dbtables.sql +++ b/web/assets/sql/dbtables.sql @@ -575,7 +575,7 @@ CREATE TABLE IF NOT EXISTS `umsinstall_target` ( `targetname` varchar(128) NOT NULL, `targettype` int(11) DEFAULT NULL, `unitprice` decimal(12,2) NOT NULL, - `targetstatusc` int(11) NOT NULL, + `targetstatusc` int(11) NOT NULL DEFAULT '1', `createdate` datetime NOT NULL, PRIMARY KEY (`tid`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8;