目前分類:iOS相關 (17)

瀏覽方式: 標題列表 簡短摘要

好不容易解完Bug要上傳
卻收來Apple官方來信:

viaLondon 發表在 痞客邦 留言(0) 人氣()

http://stackoverflow.com/questions/30837272/using-the-device-simulator-for-ios-8-with-xcode-7

Open

viaLondon 發表在 痞客邦 留言(0) 人氣()

Route Planner Sport 運動路線規劃 (台灣iTune下載 Download)

viaLondon 發表在 痞客邦 留言(0) 人氣()

解決libCorePlot-CocoaTouch.a not found的問題

1. 下載CorePlot_1.6.zip

viaLondon 發表在 痞客邦 留言(0) 人氣()

-(void)checkVersion
{

viaLondon 發表在 痞客邦 留言(0) 人氣()

ERROR ITMS-90086: Missing 64-bit support
http://stackoverflow.com/questions/29567690/error-...

viaLondon 發表在 痞客邦 留言(0) 人氣()

1. To localize the value of an Info.plist key we need to add an InfoPlist.strings file to the project. 

在專案裡新增一個檔案InfoPlist.strings

viaLondon 發表在 痞客邦 留言(0) 人氣()

在某個view controller埋下以下程式碼,邀請使用者為iOS app評分或是稍後提醒使用者給予評分。


viaLondon 發表在 痞客邦 留言(0) 人氣()

iTravelPocket愛旅行好幫手 - 即時匯率 歷史匯率 匯率換算 單位換算 記帳
換匯、單位轉換、記帳,通通難不倒。

文章標籤

viaLondon 發表在 痞客邦 留言(0) 人氣()

Problem 1:Target 'Pods' of project 'Pods' was rejected as an implicit dependency for 'libPods.a' because its architectures 'x86_64' didn't contain all required architectures 'i386'

Solution:Try to set Build Active Architecture Only to NO for 'Pods' project and your app's target.

viaLondon 發表在 痞客邦 留言(0) 人氣()

今天是值得紀念的日子!!

我的第一個APP終於上架了~

viaLondon 發表在 痞客邦 留言(0) 人氣()

參考網頁:
https://madebymany.com/blog/url-encoding-an-nsstri...

viaLondon 發表在 痞客邦 留言(0) 人氣()

今天試著將公司的開發者從我的Xcode刪除,然後匯入自己申請的帳號製作的憑證,

做到安裝provisioning profile這一步,檢查Xcode的Organizer竟然是空的?

viaLondon 發表在 痞客邦 留言(0) 人氣()

申請Apple Developer Programm開發者帳號
(個人經驗談:從更改真實名字開始到成功拿到開發者帳號,大約5個工作天...)

viaLondon 發表在 痞客邦 留言(0) 人氣()

今年六月份的WWDC 2015上,Apple提出了App Transport Security(ATS)概念,
主要是在APP與Server之前提供一種安全的通訊方式,以防竊聽、篡改傳輸數據。

viaLondon 發表在 痞客邦 留言(0) 人氣()

下載https://github.com/swisspol/GCDWebServer/
記得要include libz.dylib, 不然會有linking error

viaLondon 發表在 痞客邦 留言(0) 人氣()

下載 https://github.com/fkuehne/upnpx
How to build: https://code.google.com/p/upnpx/wiki/tutorial
(如果是iOS7.0以上, 需要自己include libstdc++.6.0.9.dylib, 不然會有linking error)

Undefined symbols for architecture x86_64:"std::string::find(char const*, unsigned long) const", referenced from:SSDPSearchResp::Process(sockaddr*, std::vector<SSDP_HTTP_HEADER*, std::allocator<SSDP_HTTP_HEADER*>>) in libupnpx.a(ssdpsearchresp.o)SSDPNotifyAlive::Process(sockaddr*, std::vector<SSDP_HTTP_HEADER*, std::allocator<SSDP_HTTP_HEADER*>>) in libupnpx.a(ssdpnotifyalive.o)"std::string::c_str() const", referenced from:BasicHTTPObserver_wrapper::CanProcessMethod(std::string*) in libupnpx.a(BasicHTTPServer_ObjC.o)BasicHTTPObserver_wrapper::Request(char*,unsignedshort, std::string*, std::string*, std::string*, std::map<std::string, std::string, std::less<std::string>, std::allocator<std::pair<std::string const, std::string>>>*,char*,int) in libupnpx.a(BasicHTTPServer_ObjC.o)-[SSDPDBDevice_ObjC initWithCPPDevice:] in libupnpx.a(SSDPDB_ObjC.o)
  SSDP::Search() in libupnpx.a(ssdp.o)
  SSDPDB::DeleteDevice(unsignedchar*,unsignedint) in libupnpx.a(ssdpdb.o)
  SSDPDB::DeleteDevicesByUuid(unsignedchar*,unsignedint) in libupnpx.a(ssdpdb.o)
  SSDPDB::GetDevice(unsignedchar*,unsignedint) in libupnpx.a(ssdpdb.o)..."std::string::length() const", referenced from:
  SSDPDB::DeleteDevice(unsignedchar*,unsignedint) in libupnpx.a(ssdpdb.o)
  SSDPDB::DeleteDevicesByUuid(unsignedchar*,unsignedint) in libupnpx.a(ssdpdb.o)
  SSDPDB::GetDevice(unsignedchar*,unsignedint) in libupnpx.a(ssdpdb.o)
  SSDPDB::UpdateCacheControl(unsignedchar*,unsignedint,int) in libupnpx.a(ssdpdb.o)"std::string::compare(std::string const&) const", referenced from:bool std::operator<<char, std::char_traits<char>, std::allocator<char>>(std::basic_string<char, std::char_traits<char>, std::allocator<char>>const&, std::basic_string<char, std::char_traits<char>, std::allocator<char>>const&) in libupnpx.a(httpsession.o)bool std::operator<<char, std::char_traits<char>, std::allocator<char>>(std::basic_string<char, std::char_traits<char>, std::allocator<char>>const&, std::basic_string<char, std::char_traits<char>, std::allocator<char>>const&) in libupnpx.a(BasicHTTPServer_ObjC.o)bool std::operator<<char, std::char_traits<char>, std::allocator<char>>(std::basic_string<char, std::char_traits<char>, std::allocator<char>>const&, std::basic_string<char, std::char_traits<char>, std::allocator<char>>const&) in libupnpx.a(basichttpserver.o)"std::allocator<char>::allocator()", referenced from:
  SSDP::SSDP() in libupnpx.a(ssdp.o)BasicHTTPServer::DataReceived(sockaddr_in*,int,unsignedchar*) in libupnpx.a(basichttpserver.o)"std::allocator<char>::~allocator()", referenced from:
  SSDP::SSDP() in libupnpx.a(ssdp.o)BasicHTTPServer::DataReceived(sockaddr_in*,int,unsignedchar*) in libupnpx.a(basichttpserver.o)"std::string::assign(char const*, unsigned long)", referenced from:SSDPSearchResp::Process(sockaddr*, std::vector<SSDP_HTTP_HEADER*, std::allocator<SSDP_HTTP_HEADER*>>) in libupnpx.a(ssdpsearchresp.o)
  SSDPDB::InsertDevice(unsignedchar*,unsignedint) in libupnpx.a(ssdpdb.o)SSDPNotifyAlive::Process(sockaddr*, std::vector<SSDP_HTTP_HEADER*, std::allocator<SSDP_HTTP_HEADER*>>) in libupnpx.a(ssdpnotifyalive.o)"std::string::replace(unsigned long, unsigned long, char const*)", referenced from:SSDPSearchResp::Process(sockaddr*, std::vector<SSDP_HTTP_HEADER*, std::allocator<SSDP_HTTP_HEADER*>>) in libupnpx.a(ssdpsearchresp.o)SSDPNotifyAlive::Process(sockaddr*, std::vector<SSDP_HTTP_HEADER*, std::allocator<SSDP_HTTP_HEADER*>>) in libupnpx.a(ssdpnotifyalive.o)"std::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string(char const*, std::allocator<char> const&)", referenced from:
  SSDP::SSDP() in libupnpx.a(ssdp.o)BasicHTTPServer::DataReceived(sockaddr_in*,int,unsignedchar*) in libupnpx.a(basichttpserver.o)"std::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string(std::string const&)", referenced from:
  std::pair<std::string const, std::string>::pair(std::string const&, std::string const&) in libupnpx.a(httpsession.o)
  std::pair<std::string const, std::string>::pair(std::pair<std::string const, std::string>const&) in libupnpx.a(httpsession.o)
  std::pair<std::string const, std::string>::pair(std::string const&, std::string const&) in libupnpx.a(BasicHTTPServer_ObjC.o)
  std::pair<std::string const, std::string>::pair(std::pair<std::string const, std::string>const&) in libupnpx.a(BasicHTTPServer_ObjC.o)
  std::pair<std::string const,HTTPSession*>::pair(std::string const&,HTTPSession*const&) in libupnpx.a(basichttpserver.o)
  std::pair<std::string const,HTTPSession*>::pair(std::pair<std::string const,HTTPSession*>const&) in libupnpx.a(basichttpserver.o)"std::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string()", referenced from:HTTPSession::HTTPSession(char*,unsignedshort) in libupnpx.a(httpsession.o)HTTPSession::ParseHeader(unsignedchar*,int) in libupnpx.a(httpsession.o)
  std::map<std::string, std::string, std::less<std::string>, std::allocator<std::pair<std::string const, std::string>>>::operator[](std::string const&) in libupnpx.a(httpsession.o)BasicHTTPObserver_wrapper::Response(int*, std::map<std::string, std::string, std::less<std::string>, std::allocator<std::pair<std::string const, std::string>>>*,char**,int*) in libupnpx.a(BasicHTTPServer_ObjC.o)
  std::map<std::string, std::string, std::less<std::string>, std::allocator<std::pair<std::string const, std::string>>>::operator[](std::string const&) in libupnpx.a(BasicHTTPServer_ObjC.o)
  ___cxx_global_var_init in libupnpx.a(ssdp.o)
  ___cxx_global_var_init9 in libupnpx.a(ssdp.o)..."std::basic_string<char, std::char_traits<char>, std::allocator<char> >::~basic_string()", referenced from:HTTPSession::HTTPSession(char*,unsignedshort) in libupnpx.a(httpsession.o)HTTPSession::~HTTPSession() in libupnpx.a(httpsession.o)HTTPSession::ParseHeader(unsignedchar*,int) in libupnpx.a(httpsession.o)
  std::map<std::string, std::string, std::less<std::string>, std::allocator<std::pair<std::string const, std::string>>>::operator[](std::string const&) in libupnpx.a(httpsession.o)
  std::pair<std::string const, std::string>::~pair() in libupnpx.a(httpsession.o)
  std::pair<std::string const, std::string>::pair(std::string const&, std::string const&) in libupnpx.a(httpsession.o)
  std::pair<std::string const, std::string>::pair(std::pair<std::string const, std::string>const&) in libupnpx.a(httpsession.o)..."std::string::operator=(char const*)", referenced from:HTTPSession::ParseHeader(unsignedchar*,int) in libupnpx.a(httpsession.o)BasicHTTPObserver_wrapper::Response(int*, std::map<std::string, std::string, std::less<std::string>, std::allocator<std::pair<std::string const, std::string>>>*,char**,int*) in libupnpx.a(BasicHTTPServer_ObjC.o)
  SSDP::SetOS(charconst*) in libupnpx.a(ssdp.o)
  SSDP::SetProduct(charconst*) in libupnpx.a(ssdp.o)SSDPDBDevice::SSDPDBDevice() in libupnpx.a(ssdpdbdevice.o)"std::string::operator=(std::string const&)", referenced from:HTTPSession::ParseHeader(unsignedchar*,int) in libupnpx.a(httpsession.o)BasicHTTPObserver_wrapper::Response(int*, std::map<std::string, std::string, std::less<std::string>, std::allocator<std::pair<std::string const, std::string>>>*,char**,int*) in libupnpx.a(BasicHTTPServer_ObjC.o)"std::_Rb_tree_decrement(std::_Rb_tree_node_base*)", referenced from:
  std::_Rb_tree_iterator<std::pair<std::string const, std::string>>::operator--() in libupnpx.a(httpsession.o)
  std::_Rb_tree_iterator<std::pair<std::string const, std::string>>::operator--() in libupnpx.a(BasicHTTPServer_ObjC.o)
  std::_Rb_tree_iterator<std::pair<std::string const,HTTPSession*>>::operator--() in libupnpx.a(basichttpserver.o)"std::_Rb_tree_increment(std::_Rb_tree_node_base const*)", referenced from:
  std::_Rb_tree_const_iterator<std::pair<std::string const, std::string>>::operator++(int) in libupnpx.a(BasicHTTPServer_ObjC.o)"std::_Rb_tree_increment(std::_Rb_tree_node_base*)", referenced from:
  std::_Rb_tree_iterator<std::pair<std::string const, std::string>>::operator++() in libupnpx.a(httpsession.o)
  std::_Rb_tree_iterator<std::pair<std::string const, std::string>>::operator++() in libupnpx.a(BasicHTTPServer_ObjC.o)
  std::_Rb_tree_iterator<std::pair<std::string const,HTTPSession*>>::operator++(int) in libupnpx.a(basichttpserver.o)
  std::_Rb_tree_iterator<std::pair<std::string const,HTTPSession*>>::operator++() in libupnpx.a(basichttpserver.o)"std::__throw_length_error(char const*)", referenced from:
  std::vector<SSDPObserver*, std::allocator<SSDPObserver*>>::_M_insert_aux(__gnu_cxx::__normal_iterator<SSDPObserver**, std::vector<SSDPObserver*, std::allocator<SSDPObserver*>>>,SSDPObserver*const&) in libupnpx.a(ssdp.o)
  std::vector<SSDP_HTTP_HEADER*, std::allocator<SSDP_HTTP_HEADER*>>::_M_insert_aux(__gnu_cxx::__normal_iterator<SSDP_HTTP_HEADER**, std::vector<SSDP_HTTP_HEADER*, std::allocator<SSDP_HTTP_HEADER*>>>, SSDP_HTTP_HEADER*const&) in libupnpx.a(ssdpmessage.o)
  std::vector<BasicHTTPObserver*, std::allocator<BasicHTTPObserver*>>::_M_insert_aux(__gnu_cxx::__normal_iterator<BasicHTTPObserver**, std::vector<BasicHTTPObserver*, std::allocator<BasicHTTPObserver*>>>,BasicHTTPObserver*const&) in libupnpx.a(basichttpserver.o)
  std::vector<SocketServerConnection*, std::allocator<SocketServerConnection*>>::_M_insert_aux(__gnu_cxx::__normal_iterator<SocketServerConnection**, std::vector<SocketServerConnection*, std::allocator<SocketServerConnection*>>>,SocketServerConnection*const&) in libupnpx.a(socketserver.o)
  std::vector<SocketServerObserver*, std::allocator<SocketServerObserver*>>::_M_insert_aux(__gnu_cxx::__normal_iterator<SocketServerObserver**, std::vector<SocketServerObserver*, std::allocator<SocketServerObserver*>>>,SocketServerObserver*const&) in libupnpx.a(socketserver.o)
  std::vector<SSDPDBObserver*, std::allocator<SSDPDBObserver*>>::_M_insert_aux(__gnu_cxx::__normal_iterator<SSDPDBObserver**, std::vector<SSDPDBObserver*, std::allocator<SSDPDBObserver*>>>,SSDPDBObserver*const&) in libupnpx.a(ssdpdb.o)
  std::vector<SSDPDBDevice*, std::allocator<SSDPDBDevice*>>::_M_insert_aux(__gnu_cxx::__normal_iterator<SSDPDBDevice**, std::vector<SSDPDBDevice*, std::allocator<SSDPDBDevice*>>>,SSDPDBDevice*const&) in libupnpx.a(ssdpdb.o)..."std::_Rb_tree_rebalance_for_erase(std::_Rb_tree_node_base*, std::_Rb_tree_node_base&)", referenced from:
  std::_Rb_tree<std::string, std::pair<std::string const,HTTPSession*>, std::_Select1st<std::pair<std::string const,HTTPSession*>>, std::less<std::string>, std::allocator<std::pair<std::string const,HTTPSession*>>>::erase(std::_Rb_tree_iterator<std::pair<std::string const,HTTPSession*>>) in libupnpx.a(basichttpserver.o)"std::_Rb_tree_insert_and_rebalance(bool, std::_Rb_tree_node_base*, std::_Rb_tree_node_base*, std::_Rb_tree_node_base&)", referenced from:
  std::_Rb_tree<std::string, std::pair<std::string const, std::string>, std::_Select1st<std::pair<std::string const, std::string>>, std::less<std::string>, std::allocator<std::pair<std::string const, std::string>>>::_M_insert(std::_Rb_tree_node_base*, std::_Rb_tree_node_base*, std::pair<std::string const, std::string>const&) in libupnpx.a(httpsession.o)
  std::_Rb_tree<std::string, std::pair<std::string const, std::string>, std::_Select1st<std::pair<std::string const, std::string>>, std::less<std::string>, std::allocator<std::pair<std::string const, std::string>>>::_M_insert(std::_Rb_tree_node_base*, std::_Rb_tree_node_base*, std::pair<std::string const, std::string>const&) in libupnpx.a(BasicHTTPServer_ObjC.o)
  std::_Rb_tree<std::string, std::pair<std::string const,HTTPSession*>, std::_Select1st<std::pair<std::string const,HTTPSession*>>, std::less<std::string>, std::allocator<std::pair<std::string const,HTTPSession*>>>::_M_insert(std::_Rb_tree_node_base*, std::_Rb_tree_node_base*, std::pair<std::string const,HTTPSession*>const&) in libupnpx.a(basichttpserver.o)
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1(use -v to see invocation)

 

viaLondon 發表在 痞客邦 留言(0) 人氣()