From c680f09e640b9668c46d67030e7bf4b3ea47b0bf Mon Sep 17 00:00:00 2001 From: adrian gomez Date: Fri, 16 Jun 2023 18:25:32 -0400 Subject: [PATCH] (iOS) Added config to start. Provided source. --- README.md | 8 +- plugins/2021.3660/iphone/libplugin_bugsnag.a | Bin 16152 -> 32608 bytes source/ios/App-Info.plist | 42 ++ source/ios/App.xcodeproj/project.pbxproj | 670 ++++++++++++++++++ .../contents.xcworkspacedata | 7 + .../xcshareddata/IDEWorkspaceChecks.plist | 8 + source/ios/AppCoronaDelegate.h | 14 + source/ios/AppCoronaDelegate.mm | 66 ++ source/ios/CoronaApp.xcconfig | 9 + source/ios/CoronaNative.xcconfig | 15 + source/ios/EmbeddedFrameworks/Readme.markdown | 2 + source/ios/Plugin/PluginBugsnag.h | 13 + source/ios/Plugin/PluginBugsnag.mm | 215 ++++++ source/ios/Prefix.pch | 8 + source/ios/_CoronaSplashScreen.png | Bin 0 -> 6631 bytes source/ios/bugsnag.xcodeproj/project.pbxproj | 311 ++++++++ .../contents.xcworkspacedata | 7 + .../xcshareddata/IDEWorkspaceChecks.plist | 8 + source/ios/build.sh | 124 ++++ source/ios/en.lproj/InfoPlist.strings | 2 + source/ios/main.mm | 19 + source/ios/metadata.lua | 13 + 22 files changed, 1559 insertions(+), 2 deletions(-) create mode 100644 source/ios/App-Info.plist create mode 100644 source/ios/App.xcodeproj/project.pbxproj create mode 100644 source/ios/App.xcodeproj/project.xcworkspace/contents.xcworkspacedata create mode 100644 source/ios/App.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist create mode 100644 source/ios/AppCoronaDelegate.h create mode 100644 source/ios/AppCoronaDelegate.mm create mode 100644 source/ios/CoronaApp.xcconfig create mode 100644 source/ios/CoronaNative.xcconfig create mode 100644 source/ios/EmbeddedFrameworks/Readme.markdown create mode 100644 source/ios/Plugin/PluginBugsnag.h create mode 100644 source/ios/Plugin/PluginBugsnag.mm create mode 100644 source/ios/Prefix.pch create mode 100644 source/ios/_CoronaSplashScreen.png create mode 100644 source/ios/bugsnag.xcodeproj/project.pbxproj create mode 100644 source/ios/bugsnag.xcodeproj/project.xcworkspace/contents.xcworkspacedata create mode 100644 source/ios/bugsnag.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist create mode 100755 source/ios/build.sh create mode 100644 source/ios/en.lproj/InfoPlist.strings create mode 100644 source/ios/main.mm create mode 100644 source/ios/metadata.lua diff --git a/README.md b/README.md index 3074580..a7f6a11 100644 --- a/README.md +++ b/README.md @@ -32,8 +32,12 @@ For iOS and to your plist: ``` 3. Init plugin. ``` -local bugsnag = require( "plugin.bugsnag") -bugsnag.init( ) -- Nothing gets returnd by listerner at this time, but please provide. +local bugsnag = require( "plugin.bugsnag") +bugsnag.init( ) -- Nothing gets returnd by listerner at this time, but please provide. +``` +Optionally you can provide id, name and e-mail: +``` +bugsnag.init (, {id = "",email = "", name="playerName" }) -- Please provide all three even if one or 2 or empty space. ``` 4. Send breadcrumb (optional) ``` diff --git a/plugins/2021.3660/iphone/libplugin_bugsnag.a b/plugins/2021.3660/iphone/libplugin_bugsnag.a index 35bfca52a861bfafba4b9276557e631a7bca01a3..9fdc5c379e5125b5adebaf17f879d4ad8a923324 100644 GIT binary patch literal 32608 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 literal 16152 zcmcgz3wTu3oj*5|J4_N762e=72?PuZGf7C0S0o_`kT8Up#OKythRIDbWnRuqcoY^Q zpvBfMuxj&6C!Jez~=T!JA%RNJBWZB|Wl$S5As`7ZMm)IH`^9{q> ze#82P#?_wo4Q(Bb4Fai$A4vOigqWkSL*aIXUr_jcg|907qr$nGReyuRZiTxQKB({n z&@gUnsaVt+?(GgmSM_!$qk-;<@}_7g6$*qyA2%CYw`5hR4x523=Bk7l=nN)$Bbypq zmxg--MtdrdGP6~v+7LIR7gP$N-3uvI2NQv0&jqzMw*(?)V>VY7Z*JUTMpId3OIL@Y zvfqgdHL$cJ<_~R31QOdXq*-6lm~{;6D;0lT=J;2vF;o6fGG#{11a&a7F$|v(m$PJS zvZe`>jdZc=ucEq&%MfW}{;*m1#-zO;eel~4#|nX!VSVHRk2&$-K}MQ}yoB^9>0GHL zIH`1OdJNdi#j2iRq|9w8MF0$=qw#t!^o+ET4j|DUwuCr&g%DCLSM-r@C&TCt1`Tst z(2S>yRA5u4J=>0QPm~u}_TpaES=*38!wANr$sq?b?d?;3%~tvyuy?)$d&yKH6zx_@ znfAV->~+eK7h+3>J@!34jr6afuA^>9qfm{1tzz|KQXMF7Lw~bPAMACdJ7^fg?X{{( zhm}3gILqD<*vnVEbTEwArjG@UU^tLWCd{s6roFe7y{W3w31#mz?9or8LJO=fKkQ|sjQ)0-*yu)J)24*EMf!JLUEAuxDkqe^#j0ZmN7@_KWy7%S z(Ki}_f5YtkAhczQBX4<=1RoaY!Vyc^BVcKVgy+Ax3HVsZL zrelPEuS~LP-lb|id}*2`tC-auXPM$m|Ke)l+0TR8S%02A>0dk$%(QoxvUj~Q)A?uG zOKp#5?eAO4-X^sfp1h#FU@QW^QbuodYbe@j82*Oz9<{3R+Nho{o;lWfejf9ywo1nM zS?eVnikh^O+23O`EbAN8I_y&eSzbQ)JRN3lF4V0h!3Xbn`7CD_mq5P_czv}H16X@} z?6o2@El`>MEk)*c&&8&5_2S3I^i&0I=5H+`0Nht=vmOVyx$?t z!2VtRj@mP4chnt)&Y*7pcyZ>n0&!+weC?S5=;dj(XI!H1MVFTM=D?Kur_UFCZ7Amt ztQ1QJR@N@vFT~uNBu?eDsU7U4IVxL;ZBWj_&>FY4-O!_zLzwes)Le(LcpD96eW` zE60iY=f1~r%{h7&V|RG(tkZ}08mCK?E&6Z-G{=uVQ2#ZDc!=Z8GRJBFbJZinH#uMA z3E9r7qp)ku#rHJWcf!6V?UzA*q<+@pZ0CV`yyj&qB_xIH&=skF_&#z@a^Kc<+qUN9t!hex&}U$6dO(xg=L~9Nv4Av?1pV zW61h;J@oaV0X5bm_?R!Qr~kC(K(_yeLmavs>!nN=s{i&Fti~8f4cnGImySh!FXFf-{gv%uz1TXmVYQdGU)7!;;2MJe=iBpjukV{c8{GTZ_I>6v zg1W<=4fmC3Qv}Y5sob5~wkjbW)*ANZh_^L7ys(!<|G9JLtaH29KDS$>qD;mj!go#5 zOeB4Q&O|5>?T$svkNeidV%=f0ArabQ`Wm1Wj>RKT_3c_8+Y}0$b@8}wL#l_hEPF}Y zz87BvK8i!Jq|Z9yD_CU(4&F#aFwznkF`ST*mAD+qqf|Xseb3fVIP8(?9vnwh%;%Y# z^ms>CPnhvoBIPj?iCDtx+0f#@!Bb!7_j^>wy|T5k`JRSr+L~I{csd%}JAgv!r_5xE z{m5$lIy!?$Gm*+FmJ&~+j08fl=rYgT+6Bm%i@#)gUVZP`HgRknmNMlVhDn9UlxG}Q zN62Shp#BvZ@=Ve?+g}$-^<2}jdP%zsMV4i*0E*X}$t2FO%dCkYry&*zgrduWu}*VY zFV<-jj*!blG?of=ZExi4E)z*P8}eY@X(oe-P&|d9&-CG9=~`6KinO`zV%_21v(x>% z-R{CEm$-kmyP!y$fU`nQl~_~URGc$4io>rXM_XLra2FITD_D+0MD94@a5oi`SUGLQ zv`Vn_A=VO*POs*0Q@&!_N+}BhLX+pTXTGVaHnu={{9;JwNCIc)P4l9~Q-q;c; z8aGdZyA&;7RZxH?#Jsa_1l1m|ydPph5US-iX;>RtokG+pFOWk>1vbW0^&eo00x*16QGL;Li8 zMwK*SlQV52%L}MHt3Wm@glCu~ib`zFCb&b!Y@1<^-AXt$r+C=BlunXEHn$i(wdU&A zyDv6kH9+lCcJj>A6LJ z4@Umy@v#oHqi_PDh$kl5KrtIYKwyCJ0~GTdcUn^?qVQ-)rC3b79gO@O)c!OIxl1M; z1xy}O;Ra{&m`aa?>Pi51%{`Rqi+;wor-Ahkpq+Evj{$U7{uSVyAjj)|4lu@*Ujxp6 zpy(=e{|b=nno2WFENHQfkXQd6lC2=8NYr_*gs#w%Lnb}G6cuoMprDPGb5 z1*Q&UE%tRNF25B;Set5FyENxe;c`^gmUCgu$T>8=fz(x8L1N~;_+WY&S&KA%3vg-9 zfwFZ}Y2s>`;W+TVSWnXbRea9KIZ*x)Qmv0#l;>7bH*(2{nR1n)un}2{1YZE4`EAl# zP+H45P$(;yR)v$SMlGNgIp6>cRybf)IF$M{TR6m}g4WCKBXxfXHtH;Uzm>rPI@TjC z-%ZP)Hp))lBX@_G`4)zTiT%|g+qhW=8`{Q(W))&4m^zWsPT@whpzZuUT0_V7DPbIh z7P-wQs~>R5j@`!U!tooU?wduyGflv6SuR6`>@GCgXE(59Ti`ng@FB z7ob~KczMyhuTkeR8viLuh1Dh6W$%LcC5go)MVEa5f^QTHuLMC;l_Zuz?MjB zfUL7XILZbMECexVzzbq6>U7Y6PdLQfhfv8iwz{Z{OZ2-Cja`D3lK(@L9s{RfdeMt0 zPIwCC`857K3ggG+6b+y}_hk?+chK&^Yan%4c84@g$W1-~&bVLEx4Ieco6lH2mD5g0B8dpOB9(AI4c?Zhk3VKanVTTVsfs=RG^x(Z`wA-@< z$8(&6JQa()<=%2nndC04SX2(mTe;M`sC@ok|LD)yARGz?ctT71uII7N8$h^FAB*C~ zA(gbF4KsnTA&}~dB_c^*sI?~+H8-?-UE;!* zVMAAAVpA*@W{nHo-=y8&aY;AIP1WH2RhE`Uxw0C($P(>l zINK0ZjkuPR(PNgeI`6GuX0$o7ewM2}D;Gcq(C}M5h@H z^IdD1V$H|us1T5KhPt{S567@yIp|5;dfIevG#ToSnw?S*32ZZPH`pDurJb?fO<~+b zjBvra*&E5`Mc^oRd8wXIQiRo=pGcU=-f&9z#pd-UZd3zkriGUto3HI)nMV9Zo7pX7 z#MRXs4a&7rzZxYOc!jO2$w7-v(N1%lz+X%IU|@{$hD{$cgDDY821GqCYQ)f;O}eIR zyQSR<8WA%_yHh=oU(dwwRqF)M>c|-{|bn`v2ZZxnq&} zJx*jIPgA#C{F-N|&g%`z5lJB$!1oFAL}a|4ImfF7UQe6|_Y}YKwBDZk;&1MI6F1oBUiPa(gDoQo6DMC4NBD&z*_4&+Yc6!Jb~p6#J3o>6BT zp6W?|sA$F`q(1{aranb4vPdf~K-sP@!wb-j_=;mXrR-m;?C~^Ad-R3rM21`jIN;+Q zsZ25!LdkBQ(Gsh&eni<|2t=DdRWxHT(zcKCKn42a$|euml-u=XpagoZ@{y4m<&W|M zNrqQI+dji6itIizFe7dIETbaO_82lIq1?8|;Ec50p1mf?W6E5UTyM4xyU3iW!+O+9 zweK&8e{Fxk63}ar8Sc>Tua$9zLoB|eXxlE=IInxSzL_`_+z$?+BPuSCw#jE3Y@eqW z9BAYoVf4&*QG8v&J%X@a+Ts3a{2+1F-z4vNr73pp*59?EkL4e$@m%uOflvHo#jHb*-nFxG+YO?y^;`G(k|m$#o~bMO&Qs-m`wQ-T z=j0_Ta{un`BRdKnSsYsSjVD@8kFB}CV?j;)-Nlps;5`1+&gwtbqF?REUC7&!??C2! zegpZRkzYoB6In+mrXn-)Yec>tc{4KC!Xe}@AwP!v1LU70zm4p`piD;Q9$A6B0hy;i zm=in-vfoGyb;)9kS}Hj*_9Tmu0D2)9D1gOKLAAmFm&%NJOMys?x2eoH9LhYuD>IDPsm$n7 zDf5I&77yr3i}5g743U)}eLH?q7xAf|?fF(G zaHQTEOKeX1R^yD?DFb3}m(BI9#XT3|cO28we;monGpt41NLnoIY445m#tVToBT8Qj z4C3xiQAq@(W~V)sHg_=i^!D&kaM4zI#b+-_)sO{kICO_1re)SJRM5kd0K%e9vkQXs zGPWCjo<;%LhGCVBw2%iCpmfm=W^@~Yi!U7L-4+gQ`d{`qo59|IWo*Pm;aP46Incm& ziKOa>21l~2xCRP%^kgbX)?mnF>kNfAHb(|A7J+lr;J1Qfv8FrnzpZP2UEHE;`L5Jn zT|BK%&v#v=PjT+i#~gR=b2d9_oAvQd$9F}uKF-;!=Q-EwIY8ljCg1U`-8l<1eVpS3 zaa^B`%1+0lyPNeK#}CCGU7&niFLF9gLO8*Zzek@8o37*fH0L_~Qdr1o)(f5cSm{Ao z>F44&O0I{Uj#tqZ*bnS}$LTnQvM>K#eL5>Q!-gLQ_UN-w|2UlS!}z6ssXGfoXPbojw!P1XdV8 z1>NbmPeWgvj$eVwb2>h+N!NZ!N)kG{pl#6gf6`aFda2kC(JIGb=&gMRR!FWRiPAf$ zb69%^R^LS@cfr>Op{6~d>yP2BqvOUs`b6|J-w79I!|WvIJNhd42cvs1LV1o4<*@F- zu)>pb)*#)odyl?Q5`H>;3luGqWi|*sl=fhp9DC?IrtJ(o(H;A(j-7^s=;rNK$KKzy zN1tvHj`tzSEVE1R?>dg^sNj48)IqqjF#otdkE85#yaXS8`S02D#SyiZi(~O|eI~k> z2fdu;oU!=s6s_2`ULh8i0ub^ zQsC!+R|59~InQC>I$#6PFGRT3!kbnA*MnaLtbnN8!kSWG4ftb$_$l7PT;OWppK$hS z1-=J_Oa8YltT_c-27W(q5%{lISaT9c{pW!&;s3scH4g*n#}Nx}DhDoxo(EVj#NU`E5V5D*1@r*{JlMMr0xtvh0oMTIz`4MUif#qY23@P@a$pH)kD?2K z(?J7debRNH+0H7(uLZK+d?5Wpmi6ZW>0c?3_2vLs&jSPq{8q!g1Cx&aJ69{5t?(Qs zoqYU`Nh0?f>AMwPr*NLamoey+-=i?9kZ~^gPvZlsPRzMPjEUsef={_eAqmp`N`6A& z<3N~l9s?qBb01dxK7|_<)++QU1W0?&s(zioW^khcJ3RoSZpglZ%=95?Yz*EaF}(o3 z8|7n)ejlB1W5d0z=r+pn((W*LOs7zn^bti@D*BkBoN|WlEj{KI)Ay`QS~A5rvL($HU~^uMg?-=JvT z9*8=p3xlN5a?km)s5KMrK#yBXHE(v?)1wL29Wsu9X+4QrG@zCHoTH8UY|+#NCb& z?AdH|1wyzL#lI763mBVB{8yoYtL9*j%`)+?35wCu?vHiL|86rmA&_UsFGLd3mwM z)iozPs$Y$tC17zyQ`SPL=QSl}&rF!nAUlz^^16EiiB4ht-&rKt-HxRuSC`-5e^26- zL)!Z8i18QKc;^#HW487tdj{DUkKQQnSFv8zf5sVV+q5_O8|ynZv>9!Us~g)ITk0Fz z4Rld%sr8K=YmIB`+KiUE^^JA~xzGGf?H%bgN+BIN)PvX8S!C7f(mR}r#Fw7O7jK0v z9i?IKQb8L_vODdqpkQS0yl&i&>`uep0-VB@7 z=c`nCUTH-&n$9vAUhvUY)hN=+(F7G$%9qhb6BS{1(Rn>Sue4&3Jy + + + + CFBundleDevelopmentRegion + en + CFBundleDisplayName + ${PRODUCT_NAME} + CFBundleExecutable + ${EXECUTABLE_NAME} + CFBundleIdentifier + $(PRODUCT_BUNDLE_IDENTIFIER) + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + ${PRODUCT_NAME} + CFBundlePackageType + APPL + CFBundleShortVersionString + 1.0 + CFBundleSignature + ???? + CFBundleVersion + 1.0 + LSRequiresIPhoneOS + + NSMainNibFile + MainWindow + NSMainNibFile~ipad + MainWindow-iPad + UILaunchStoryboardName + LaunchScreen + UIPrerenderedIcon + + UIRequiredDeviceCapabilities + + armv7 + + UIStatusBarStyle + UIStatusBarStyleBlackTranslucent + + diff --git a/source/ios/App.xcodeproj/project.pbxproj b/source/ios/App.xcodeproj/project.pbxproj new file mode 100644 index 0000000..13729c7 --- /dev/null +++ b/source/ios/App.xcodeproj/project.pbxproj @@ -0,0 +1,670 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 46; + objects = { + +/* Begin PBXAggregateTarget section */ + F597AC6E1ED8CA3E0085F5E5 /* Download Plugins */ = { + isa = PBXAggregateTarget; + buildConfigurationList = F597AC6F1ED8CA3E0085F5E5 /* Build configuration list for PBXAggregateTarget "Download Plugins" */; + buildPhases = ( + F597AC721ED8CA480085F5E5 /* Download Plugins */, + ); + dependencies = ( + ); + name = "Download Plugins"; + productName = "Download Plugins"; + }; +/* End PBXAggregateTarget section */ + +/* Begin PBXBuildFile section */ + A447B610165D72FB009EA762 /* AppCoronaDelegate.mm in Sources */ = {isa = PBXBuildFile; fileRef = A447B60F165D72FB009EA762 /* AppCoronaDelegate.mm */; }; + A447B6671666FD02009EA762 /* MainWindow-iPad.xib in Resources */ = {isa = PBXBuildFile; fileRef = A447B6641666FD02009EA762 /* MainWindow-iPad.xib */; }; + A447B6681666FD02009EA762 /* MainWindow.xib in Resources */ = {isa = PBXBuildFile; fileRef = A447B6651666FD02009EA762 /* MainWindow.xib */; }; + A447B66A1666FD43009EA762 /* Corona3rdPartyLicenses.txt in Resources */ = {isa = PBXBuildFile; fileRef = A447B6691666FD43009EA762 /* Corona3rdPartyLicenses.txt */; }; + A46885F218068C2200381941 /* GLKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A484112315114F700074BD57 /* GLKit.framework */; }; + A46885F418068C2900381941 /* CoreVideo.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A46885F318068C2900381941 /* CoreVideo.framework */; }; + A484111E15114F700074BD57 /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A484111D15114F700074BD57 /* UIKit.framework */; }; + A484112015114F700074BD57 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A484111F15114F700074BD57 /* Foundation.framework */; }; + A484112215114F700074BD57 /* CoreGraphics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A484112115114F700074BD57 /* CoreGraphics.framework */; }; + A484112615114F700074BD57 /* OpenGLES.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A484112515114F700074BD57 /* OpenGLES.framework */; }; + A484112C15114F700074BD57 /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = A484112A15114F700074BD57 /* InfoPlist.strings */; }; + A484112E15114F700074BD57 /* main.mm in Sources */ = {isa = PBXBuildFile; fileRef = A484112D15114F700074BD57 /* main.mm */; }; + A484117715128D5D0074BD57 /* AddressBook.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A484116315128D5C0074BD57 /* AddressBook.framework */; }; + A484117815128D5D0074BD57 /* AddressBookUI.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A484116415128D5C0074BD57 /* AddressBookUI.framework */; }; + A484117915128D5D0074BD57 /* AudioToolbox.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A484116515128D5C0074BD57 /* AudioToolbox.framework */; }; + A484117A15128D5D0074BD57 /* AVFoundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A484116615128D5C0074BD57 /* AVFoundation.framework */; }; + A484117B15128D5D0074BD57 /* CFNetwork.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A484116715128D5C0074BD57 /* CFNetwork.framework */; }; + A484117C15128D5D0074BD57 /* CoreLocation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A484116815128D5C0074BD57 /* CoreLocation.framework */; }; + A484117D15128D5D0074BD57 /* CoreMedia.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A484116915128D5C0074BD57 /* CoreMedia.framework */; }; + A484117E15128D5D0074BD57 /* CoreMotion.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A484116A15128D5C0074BD57 /* CoreMotion.framework */; }; + A484117F15128D5D0074BD57 /* GameKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A484116B15128D5D0074BD57 /* GameKit.framework */; }; + A484118015128D5D0074BD57 /* ImageIO.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A484116C15128D5D0074BD57 /* ImageIO.framework */; }; + A484118115128D5D0074BD57 /* libobjc.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = A484116D15128D5D0074BD57 /* libobjc.dylib */; }; + A484118215128D5D0074BD57 /* MapKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A484116E15128D5D0074BD57 /* MapKit.framework */; }; + A484118315128D5D0074BD57 /* MediaPlayer.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A484116F15128D5D0074BD57 /* MediaPlayer.framework */; }; + A484118415128D5D0074BD57 /* MessageUI.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A484117015128D5D0074BD57 /* MessageUI.framework */; }; + A484118515128D5D0074BD57 /* MobileCoreServices.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A484117115128D5D0074BD57 /* MobileCoreServices.framework */; }; + A484118615128D5D0074BD57 /* OpenAL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A484117215128D5D0074BD57 /* OpenAL.framework */; }; + A484118715128D5D0074BD57 /* QuartzCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A484117315128D5D0074BD57 /* QuartzCore.framework */; }; + A484118815128D5D0074BD57 /* Security.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A484117415128D5D0074BD57 /* Security.framework */; }; + A484118915128D5D0074BD57 /* StoreKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A484117515128D5D0074BD57 /* StoreKit.framework */; }; + A484118A15128D5D0074BD57 /* SystemConfiguration.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A484117615128D5D0074BD57 /* SystemConfiguration.framework */; }; + A48411CA15129F610074BD57 /* libsqlite3.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = A48411C915129F610074BD57 /* libsqlite3.dylib */; }; + A498B81A16D70EFC0091A148 /* CoronaResources.bundle in Resources */ = {isa = PBXBuildFile; fileRef = A498B81916D70EFC0091A148 /* CoronaResources.bundle */; }; + A4C2449A1683FA5300C395D1 /* Accounts.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A4C244971683FA5300C395D1 /* Accounts.framework */; settings = {ATTRIBUTES = (Weak, ); }; }; + A4C2449C1683FA5300C395D1 /* Social.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A4C244991683FA5300C395D1 /* Social.framework */; settings = {ATTRIBUTES = (Weak, ); }; }; + A4E2537F166AE3DC00DCDC2C /* Twitter.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A4E2537E166AE3DC00DCDC2C /* Twitter.framework */; settings = {ATTRIBUTES = (Weak, ); }; }; + C22C1E4B1E981D9000D74196 /* LaunchScreen.storyboardc in Resources */ = {isa = PBXBuildFile; fileRef = C22C1E4A1E981D9000D74196 /* LaunchScreen.storyboardc */; }; + E640B2F21BFC00B00031FAE9 /* AssetsLibrary.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E640B2F11BFC00B00031FAE9 /* AssetsLibrary.framework */; settings = {ATTRIBUTES = (Weak, ); }; }; + E640B2F41BFC00BA0031FAE9 /* Photos.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E640B2F31BFC00BA0031FAE9 /* Photos.framework */; settings = {ATTRIBUTES = (Weak, ); }; }; + F51C66D61EE0D3B20040E4BE /* libplugin_library.a in Frameworks */ = {isa = PBXBuildFile; fileRef = A4E253E2166DE7C800DCDC2C /* libplugin_library.a */; }; + F56457D91FA108F500EC8C29 /* Images.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = F56712391F73451B006B502D /* Images.xcassets */; }; + F5BB41531BC42ACF0033F6FA /* CoreText.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F5BB41521BC42ACF0033F6FA /* CoreText.framework */; }; + F5C9F4811ED39AD100D34A2D /* _CoronaSplashScreen.png in Resources */ = {isa = PBXBuildFile; fileRef = C277D3B51EBB9F8E00966BA1 /* _CoronaSplashScreen.png */; }; + F5E548091BE7FF0200091810 /* GameController.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F5E548081BE7FF0200091810 /* GameController.framework */; settings = {ATTRIBUTES = (Weak, ); }; }; +/* End PBXBuildFile section */ + +/* Begin PBXContainerItemProxy section */ + A4E253E1166DE7C800DCDC2C /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = A4E253DA166DE7C800DCDC2C /* Plugin.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = A4E253B6166D6FB300DCDC2C; + remoteInfo = plugin_library; + }; + A4E253E3166DE7D800DCDC2C /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = A4E253DA166DE7C800DCDC2C /* Plugin.xcodeproj */; + proxyType = 1; + remoteGlobalIDString = A4E253B5166D6FB300DCDC2C; + remoteInfo = plugin_library; + }; +/* End PBXContainerItemProxy section */ + +/* Begin PBXFileReference section */ + A447B60E165D72FB009EA762 /* AppCoronaDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AppCoronaDelegate.h; sourceTree = SOURCE_ROOT; }; + A447B60F165D72FB009EA762 /* AppCoronaDelegate.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = AppCoronaDelegate.mm; sourceTree = SOURCE_ROOT; }; + A447B6641666FD02009EA762 /* MainWindow-iPad.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; name = "MainWindow-iPad.xib"; path = "Corona/ios/resource/MainWindow-iPad.xib"; sourceTree = ""; }; + A447B6651666FD02009EA762 /* MainWindow.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; name = MainWindow.xib; path = Corona/ios/resource/MainWindow.xib; sourceTree = ""; }; + A447B6691666FD43009EA762 /* Corona3rdPartyLicenses.txt */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = Corona3rdPartyLicenses.txt; path = Corona/shared/resource/Corona3rdPartyLicenses.txt; sourceTree = ""; }; + A447B824166856F3009EA762 /* main.lua */ = {isa = PBXFileReference; lastKnownFileType = text; name = main.lua; path = ../Corona/main.lua; sourceTree = SOURCE_ROOT; }; + A46885F318068C2900381941 /* CoreVideo.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreVideo.framework; path = System/Library/Frameworks/CoreVideo.framework; sourceTree = SDKROOT; }; + A484111915114F700074BD57 /* App.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = App.app; sourceTree = BUILT_PRODUCTS_DIR; }; + A484111D15114F700074BD57 /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = System/Library/Frameworks/UIKit.framework; sourceTree = SDKROOT; }; + A484111F15114F700074BD57 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; }; + A484112115114F700074BD57 /* CoreGraphics.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreGraphics.framework; path = System/Library/Frameworks/CoreGraphics.framework; sourceTree = SDKROOT; }; + A484112315114F700074BD57 /* GLKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = GLKit.framework; path = System/Library/Frameworks/GLKit.framework; sourceTree = SDKROOT; }; + A484112515114F700074BD57 /* OpenGLES.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = OpenGLES.framework; path = System/Library/Frameworks/OpenGLES.framework; sourceTree = SDKROOT; }; + A484112915114F700074BD57 /* App-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = "App-Info.plist"; sourceTree = SOURCE_ROOT; }; + A484112B15114F700074BD57 /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/InfoPlist.strings; sourceTree = ""; }; + A484112D15114F700074BD57 /* main.mm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; path = main.mm; sourceTree = SOURCE_ROOT; }; + A484112F15114F700074BD57 /* Prefix.pch */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Prefix.pch; sourceTree = SOURCE_ROOT; }; + A484116315128D5C0074BD57 /* AddressBook.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AddressBook.framework; path = System/Library/Frameworks/AddressBook.framework; sourceTree = SDKROOT; }; + A484116415128D5C0074BD57 /* AddressBookUI.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AddressBookUI.framework; path = System/Library/Frameworks/AddressBookUI.framework; sourceTree = SDKROOT; }; + A484116515128D5C0074BD57 /* AudioToolbox.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AudioToolbox.framework; path = System/Library/Frameworks/AudioToolbox.framework; sourceTree = SDKROOT; }; + A484116615128D5C0074BD57 /* AVFoundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AVFoundation.framework; path = System/Library/Frameworks/AVFoundation.framework; sourceTree = SDKROOT; }; + A484116715128D5C0074BD57 /* CFNetwork.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CFNetwork.framework; path = System/Library/Frameworks/CFNetwork.framework; sourceTree = SDKROOT; }; + A484116815128D5C0074BD57 /* CoreLocation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreLocation.framework; path = System/Library/Frameworks/CoreLocation.framework; sourceTree = SDKROOT; }; + A484116915128D5C0074BD57 /* CoreMedia.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreMedia.framework; path = System/Library/Frameworks/CoreMedia.framework; sourceTree = SDKROOT; }; + A484116A15128D5C0074BD57 /* CoreMotion.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreMotion.framework; path = System/Library/Frameworks/CoreMotion.framework; sourceTree = SDKROOT; }; + A484116B15128D5D0074BD57 /* GameKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = GameKit.framework; path = System/Library/Frameworks/GameKit.framework; sourceTree = SDKROOT; }; + A484116C15128D5D0074BD57 /* ImageIO.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = ImageIO.framework; path = System/Library/Frameworks/ImageIO.framework; sourceTree = SDKROOT; }; + A484116D15128D5D0074BD57 /* libobjc.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = libobjc.dylib; path = usr/lib/libobjc.dylib; sourceTree = SDKROOT; }; + A484116E15128D5D0074BD57 /* MapKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = MapKit.framework; path = System/Library/Frameworks/MapKit.framework; sourceTree = SDKROOT; }; + A484116F15128D5D0074BD57 /* MediaPlayer.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = MediaPlayer.framework; path = System/Library/Frameworks/MediaPlayer.framework; sourceTree = SDKROOT; }; + A484117015128D5D0074BD57 /* MessageUI.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = MessageUI.framework; path = System/Library/Frameworks/MessageUI.framework; sourceTree = SDKROOT; }; + A484117115128D5D0074BD57 /* MobileCoreServices.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = MobileCoreServices.framework; path = System/Library/Frameworks/MobileCoreServices.framework; sourceTree = SDKROOT; }; + A484117215128D5D0074BD57 /* OpenAL.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = OpenAL.framework; path = System/Library/Frameworks/OpenAL.framework; sourceTree = SDKROOT; }; + A484117315128D5D0074BD57 /* QuartzCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = QuartzCore.framework; path = System/Library/Frameworks/QuartzCore.framework; sourceTree = SDKROOT; }; + A484117415128D5D0074BD57 /* Security.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Security.framework; path = System/Library/Frameworks/Security.framework; sourceTree = SDKROOT; }; + A484117515128D5D0074BD57 /* StoreKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = StoreKit.framework; path = System/Library/Frameworks/StoreKit.framework; sourceTree = SDKROOT; }; + A484117615128D5D0074BD57 /* SystemConfiguration.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = SystemConfiguration.framework; path = System/Library/Frameworks/SystemConfiguration.framework; sourceTree = SDKROOT; }; + A48411C915129F610074BD57 /* libsqlite3.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = libsqlite3.dylib; path = usr/lib/libsqlite3.dylib; sourceTree = SDKROOT; }; + A498B81916D70EFC0091A148 /* CoronaResources.bundle */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.plug-in"; name = CoronaResources.bundle; path = Corona/ios/resource/CoronaResources.bundle; sourceTree = ""; }; + A4C244971683FA5300C395D1 /* Accounts.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Accounts.framework; path = System/Library/Frameworks/Accounts.framework; sourceTree = SDKROOT; }; + A4C244991683FA5300C395D1 /* Social.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Social.framework; path = System/Library/Frameworks/Social.framework; sourceTree = SDKROOT; }; + A4E2537E166AE3DC00DCDC2C /* Twitter.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Twitter.framework; path = System/Library/Frameworks/Twitter.framework; sourceTree = SDKROOT; }; + A4E253DA166DE7C800DCDC2C /* Plugin.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; path = Plugin.xcodeproj; sourceTree = ""; }; + C22C1E4A1E981D9000D74196 /* LaunchScreen.storyboardc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = wrapper.storyboardc; name = LaunchScreen.storyboardc; path = ../Corona/LaunchScreen.storyboardc; sourceTree = ""; }; + C277D3B51EBB9F8E00966BA1 /* _CoronaSplashScreen.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = _CoronaSplashScreen.png; sourceTree = ""; }; + E640B2F11BFC00B00031FAE9 /* AssetsLibrary.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AssetsLibrary.framework; path = System/Library/Frameworks/AssetsLibrary.framework; sourceTree = SDKROOT; }; + E640B2F31BFC00BA0031FAE9 /* Photos.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Photos.framework; path = System/Library/Frameworks/Photos.framework; sourceTree = SDKROOT; }; + F54A40BD1EE07F9100AF417D /* build.settings */ = {isa = PBXFileReference; lastKnownFileType = text; name = build.settings; path = ../Corona/build.settings; sourceTree = ""; }; + F54A40BE1EE07F9100AF417D /* config.lua */ = {isa = PBXFileReference; lastKnownFileType = text; name = config.lua; path = ../Corona/config.lua; sourceTree = ""; }; + F55829801ED23E1200E5808C /* CoronaApp.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = CoronaApp.xcconfig; sourceTree = ""; }; + F56712391F73451B006B502D /* Images.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; name = Images.xcassets; path = ../Corona/Images.xcassets; sourceTree = ""; }; + F572F8191EE06E45001BC814 /* CoronaNative.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = CoronaNative.xcconfig; sourceTree = ""; }; + F5BB41521BC42ACF0033F6FA /* CoreText.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreText.framework; path = System/Library/Frameworks/CoreText.framework; sourceTree = SDKROOT; }; + F5E548081BE7FF0200091810 /* GameController.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = GameController.framework; path = System/Library/Frameworks/GameController.framework; sourceTree = SDKROOT; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + A484111615114F700074BD57 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + F51C66D61EE0D3B20040E4BE /* libplugin_library.a in Frameworks */, + E640B2F41BFC00BA0031FAE9 /* Photos.framework in Frameworks */, + E640B2F21BFC00B00031FAE9 /* AssetsLibrary.framework in Frameworks */, + F5BB41531BC42ACF0033F6FA /* CoreText.framework in Frameworks */, + A46885F418068C2900381941 /* CoreVideo.framework in Frameworks */, + A46885F218068C2200381941 /* GLKit.framework in Frameworks */, + A4C2449A1683FA5300C395D1 /* Accounts.framework in Frameworks */, + A4C2449C1683FA5300C395D1 /* Social.framework in Frameworks */, + A484117715128D5D0074BD57 /* AddressBook.framework in Frameworks */, + A484117815128D5D0074BD57 /* AddressBookUI.framework in Frameworks */, + A484117915128D5D0074BD57 /* AudioToolbox.framework in Frameworks */, + A484117A15128D5D0074BD57 /* AVFoundation.framework in Frameworks */, + A484117B15128D5D0074BD57 /* CFNetwork.framework in Frameworks */, + A484112215114F700074BD57 /* CoreGraphics.framework in Frameworks */, + A484117C15128D5D0074BD57 /* CoreLocation.framework in Frameworks */, + A484117D15128D5D0074BD57 /* CoreMedia.framework in Frameworks */, + A484117E15128D5D0074BD57 /* CoreMotion.framework in Frameworks */, + A484112015114F700074BD57 /* Foundation.framework in Frameworks */, + A484117F15128D5D0074BD57 /* GameKit.framework in Frameworks */, + F5E548091BE7FF0200091810 /* GameController.framework in Frameworks */, + A484118015128D5D0074BD57 /* ImageIO.framework in Frameworks */, + A484118115128D5D0074BD57 /* libobjc.dylib in Frameworks */, + A48411CA15129F610074BD57 /* libsqlite3.dylib in Frameworks */, + A484118215128D5D0074BD57 /* MapKit.framework in Frameworks */, + A484118315128D5D0074BD57 /* MediaPlayer.framework in Frameworks */, + A484118415128D5D0074BD57 /* MessageUI.framework in Frameworks */, + A484118515128D5D0074BD57 /* MobileCoreServices.framework in Frameworks */, + A484118615128D5D0074BD57 /* OpenAL.framework in Frameworks */, + A484112615114F700074BD57 /* OpenGLES.framework in Frameworks */, + A484118715128D5D0074BD57 /* QuartzCore.framework in Frameworks */, + A484118815128D5D0074BD57 /* Security.framework in Frameworks */, + A484118915128D5D0074BD57 /* StoreKit.framework in Frameworks */, + A484118A15128D5D0074BD57 /* SystemConfiguration.framework in Frameworks */, + A4E2537F166AE3DC00DCDC2C /* Twitter.framework in Frameworks */, + A484111E15114F700074BD57 /* UIKit.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + A447B66F16670015009EA762 /* CoronaNative */ = { + isa = PBXGroup; + children = ( + F572F8191EE06E45001BC814 /* CoronaNative.xcconfig */, + F55829801ED23E1200E5808C /* CoronaApp.xcconfig */, + A4841153151161300074BD57 /* resource */, + ); + name = CoronaNative; + sourceTree = ""; + }; + A447B823166856C7009EA762 /* Corona */ = { + isa = PBXGroup; + children = ( + A447B824166856F3009EA762 /* main.lua */, + F54A40BD1EE07F9100AF417D /* build.settings */, + F54A40BE1EE07F9100AF417D /* config.lua */, + ); + name = Corona; + sourceTree = ""; + }; + A484110E15114F700074BD57 = { + isa = PBXGroup; + children = ( + A4E253DA166DE7C800DCDC2C /* Plugin.xcodeproj */, + A484112715114F700074BD57 /* App */, + A447B823166856C7009EA762 /* Corona */, + A447B66F16670015009EA762 /* CoronaNative */, + A484111C15114F700074BD57 /* Frameworks */, + A484111A15114F700074BD57 /* Products */, + ); + sourceTree = ""; + }; + A484111A15114F700074BD57 /* Products */ = { + isa = PBXGroup; + children = ( + A484111915114F700074BD57 /* App.app */, + ); + name = Products; + sourceTree = ""; + }; + A484111C15114F700074BD57 /* Frameworks */ = { + isa = PBXGroup; + children = ( + E640B2F31BFC00BA0031FAE9 /* Photos.framework */, + E640B2F11BFC00B00031FAE9 /* AssetsLibrary.framework */, + F5E548081BE7FF0200091810 /* GameController.framework */, + F5BB41521BC42ACF0033F6FA /* CoreText.framework */, + A46885F318068C2900381941 /* CoreVideo.framework */, + A4C244971683FA5300C395D1 /* Accounts.framework */, + A4C244991683FA5300C395D1 /* Social.framework */, + A484116315128D5C0074BD57 /* AddressBook.framework */, + A484116415128D5C0074BD57 /* AddressBookUI.framework */, + A484116515128D5C0074BD57 /* AudioToolbox.framework */, + A484116615128D5C0074BD57 /* AVFoundation.framework */, + A484116715128D5C0074BD57 /* CFNetwork.framework */, + A484112115114F700074BD57 /* CoreGraphics.framework */, + A484116815128D5C0074BD57 /* CoreLocation.framework */, + A484116915128D5C0074BD57 /* CoreMedia.framework */, + A484116A15128D5C0074BD57 /* CoreMotion.framework */, + A484111F15114F700074BD57 /* Foundation.framework */, + A484116B15128D5D0074BD57 /* GameKit.framework */, + A484112315114F700074BD57 /* GLKit.framework */, + A484116C15128D5D0074BD57 /* ImageIO.framework */, + A484116D15128D5D0074BD57 /* libobjc.dylib */, + A48411C915129F610074BD57 /* libsqlite3.dylib */, + A484116E15128D5D0074BD57 /* MapKit.framework */, + A484116F15128D5D0074BD57 /* MediaPlayer.framework */, + A484117015128D5D0074BD57 /* MessageUI.framework */, + A484117115128D5D0074BD57 /* MobileCoreServices.framework */, + A484117215128D5D0074BD57 /* OpenAL.framework */, + A484112515114F700074BD57 /* OpenGLES.framework */, + A484117315128D5D0074BD57 /* QuartzCore.framework */, + A484117415128D5D0074BD57 /* Security.framework */, + A484117515128D5D0074BD57 /* StoreKit.framework */, + A484117615128D5D0074BD57 /* SystemConfiguration.framework */, + A4E2537E166AE3DC00DCDC2C /* Twitter.framework */, + A484111D15114F700074BD57 /* UIKit.framework */, + ); + name = Frameworks; + sourceTree = ""; + }; + A484112715114F700074BD57 /* App */ = { + isa = PBXGroup; + children = ( + F56712391F73451B006B502D /* Images.xcassets */, + C277D3B51EBB9F8E00966BA1 /* _CoronaSplashScreen.png */, + A484112915114F700074BD57 /* App-Info.plist */, + A484112A15114F700074BD57 /* InfoPlist.strings */, + C22C1E4A1E981D9000D74196 /* LaunchScreen.storyboardc */, + A484112D15114F700074BD57 /* main.mm */, + A484112F15114F700074BD57 /* Prefix.pch */, + A447B60E165D72FB009EA762 /* AppCoronaDelegate.h */, + A447B60F165D72FB009EA762 /* AppCoronaDelegate.mm */, + ); + name = App; + sourceTree = ""; + }; + A4841153151161300074BD57 /* resource */ = { + isa = PBXGroup; + children = ( + A498B81916D70EFC0091A148 /* CoronaResources.bundle */, + A447B6691666FD43009EA762 /* Corona3rdPartyLicenses.txt */, + A447B6641666FD02009EA762 /* MainWindow-iPad.xib */, + A447B6651666FD02009EA762 /* MainWindow.xib */, + ); + name = resource; + path = "$HOME/Library/Application Support/Corona/Native"; + sourceTree = ""; + }; + A4E253DB166DE7C800DCDC2C /* Products */ = { + isa = PBXGroup; + children = ( + A4E253E2166DE7C800DCDC2C /* libplugin_library.a */, + ); + name = Products; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXNativeTarget section */ + A484111815114F700074BD57 /* App */ = { + isa = PBXNativeTarget; + buildConfigurationList = A484114215114F700074BD57 /* Build configuration list for PBXNativeTarget "App" */; + buildPhases = ( + C28A3B451EE9F8FD00F08609 /* Corona Native */, + A484111715114F700074BD57 /* Resources */, + A484111515114F700074BD57 /* Sources */, + A484111615114F700074BD57 /* Frameworks */, + A4841162151268030074BD57 /* Compile Corona Project */, + A484118B15128E320074BD57 /* build.settings to Info.plist */, + ); + buildRules = ( + ); + dependencies = ( + A4E253E4166DE7D800DCDC2C /* PBXTargetDependency */, + ); + name = App; + productName = App; + productReference = A484111915114F700074BD57 /* App.app */; + productType = "com.apple.product-type.application"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + A484111015114F700074BD57 /* Project object */ = { + isa = PBXProject; + attributes = { + LastUpgradeCheck = 0820; + TargetAttributes = { + F597AC6E1ED8CA3E0085F5E5 = { + CreatedOnToolsVersion = 8.3.2; + DevelopmentTeam = BG2J43EA88; + ProvisioningStyle = Automatic; + }; + }; + }; + buildConfigurationList = A484111315114F700074BD57 /* Build configuration list for PBXProject "App" */; + compatibilityVersion = "Xcode 3.2"; + developmentRegion = English; + hasScannedForEncodings = 0; + knownRegions = ( + English, + en, + ); + mainGroup = A484110E15114F700074BD57; + productRefGroup = A484111A15114F700074BD57 /* Products */; + projectDirPath = ""; + projectReferences = ( + { + ProductGroup = A4E253DB166DE7C800DCDC2C /* Products */; + ProjectRef = A4E253DA166DE7C800DCDC2C /* Plugin.xcodeproj */; + }, + ); + projectRoot = ""; + targets = ( + A484111815114F700074BD57 /* App */, + F597AC6E1ED8CA3E0085F5E5 /* Download Plugins */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXReferenceProxy section */ + A4E253E2166DE7C800DCDC2C /* libplugin_library.a */ = { + isa = PBXReferenceProxy; + fileType = archive.ar; + path = libplugin_library.a; + remoteRef = A4E253E1166DE7C800DCDC2C /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; +/* End PBXReferenceProxy section */ + +/* Begin PBXResourcesBuildPhase section */ + A484111715114F700074BD57 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + A484112C15114F700074BD57 /* InfoPlist.strings in Resources */, + F56457D91FA108F500EC8C29 /* Images.xcassets in Resources */, + A447B6671666FD02009EA762 /* MainWindow-iPad.xib in Resources */, + A447B6681666FD02009EA762 /* MainWindow.xib in Resources */, + F5C9F4811ED39AD100D34A2D /* _CoronaSplashScreen.png in Resources */, + A447B66A1666FD43009EA762 /* Corona3rdPartyLicenses.txt in Resources */, + A498B81A16D70EFC0091A148 /* CoronaResources.bundle in Resources */, + C22C1E4B1E981D9000D74196 /* LaunchScreen.storyboardc in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXShellScriptBuildPhase section */ + A4841162151268030074BD57 /* Compile Corona Project */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + ); + name = "Compile Corona Project"; + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/bash; + shellScript = "export TARGET_PLATFORM=ios\nCORONA_MAC_BIN=\"$CORONA_ROOT/Corona/mac/bin\"\nCORONA_SHARED_BIN=\"$CORONA_ROOT/Corona/shared/bin\"\nexport LUA_CPATH=\"$CORONA_MAC_BIN/?.so\"\n\"$CORONA_MAC_BIN\"/lua -e \"package.path='$CORONA_SHARED_BIN/?.lua;$CORONA_SHARED_BIN/?/init.lua;'..package.path\" \"$CORONA_SHARED_BIN\"/Compile.lua mac \"$CORONA_ROOT\"\nif [ $? -ne 0 ]\nthen\n echo \"Exiting due to errors (above)\"\n exit -1\nfi\n"; + showEnvVarsInLog = 0; + }; + A484118B15128E320074BD57 /* build.settings to Info.plist */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + ); + name = "build.settings to Info.plist"; + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "\"$CORONA_ROOT\"/Corona/mac/bin/CreateInfoPlist.sh\n\nif [ $? -ne 0 ]\nthen\n echo \"Exiting due to errors (above)\"\n exit -1\nfi\n"; + showEnvVarsInLog = 0; + }; + C28A3B451EE9F8FD00F08609 /* Corona Native */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + ); + name = "Corona Native"; + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "# echo \"CORONA_ROOT: ${CORONA_ROOT}\"\nif [ ! -d \"${CORONA_ROOT}\" ]\nthen\necho \"error: Corona Native has not been setup. Run 'Native/SetupCoronaNative.app' in your Corona install to set it up\" >&2\n\nexit 1\nelse\necho \"Building with Corona Native from $(readlink \"${CORONA_ROOT}\")\"\nfi\n\n# Check for difficult to debug error involving an item in the Corona\n# project directory having the same name as a file in the app bundle\nif [ -d \"${PROJECT_DIR}/../Corona/${EXECUTABLE_NAME}\" ]\nthen\necho \"ERROR: cannot have a directory called '$(ls \"${PROJECT_DIR}/../Corona\" | grep -iw ${EXECUTABLE_NAME})' in the Corona project directory because it has the same name as the app\"\nexit 1\nfi\n"; + showEnvVarsInLog = 0; + }; + F597AC721ED8CA480085F5E5 /* Download Plugins */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + "$(SRCROOT)/../Corona", + ); + name = "Download Plugins"; + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "\nBUILDER_PATH=\"$CORONA_ROOT\"/Corona/mac/bin/CoronaBuilder.app/Contents/MacOS/CoronaBuilder\n\n\"$BUILDER_PATH\" plugins download ios \"$PROJECT_DIR/../Corona/build.settings\" \"$PROJECT_DIR/CoronaApp.xcconfig\" $CORONA_FORCE_LOAD\n\nif [ $? -ne 0 ]\nthen\n echo \"Exiting due to errors (above)\"\n exit -1\nfi\n\ntouch \"$SRCROOT/../Corona\""; + showEnvVarsInLog = 0; + }; +/* End PBXShellScriptBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + A484111515114F700074BD57 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + A484112E15114F700074BD57 /* main.mm in Sources */, + A447B610165D72FB009EA762 /* AppCoronaDelegate.mm in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin PBXTargetDependency section */ + A4E253E4166DE7D800DCDC2C /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = plugin_library; + targetProxy = A4E253E3166DE7D800DCDC2C /* PBXContainerItemProxy */; + }; +/* End PBXTargetDependency section */ + +/* Begin PBXVariantGroup section */ + A484112A15114F700074BD57 /* InfoPlist.strings */ = { + isa = PBXVariantGroup; + children = ( + A484112B15114F700074BD57 /* en */, + ); + name = InfoPlist.strings; + sourceTree = SOURCE_ROOT; + }; +/* End PBXVariantGroup section */ + +/* Begin XCBuildConfiguration section */ + A484114015114F700074BD57 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_CXX_LANGUAGE_STANDARD = "c++0x"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + COPY_PHASE_STRIP = NO; + ENABLE_BITCODE = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_TESTABILITY = YES; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_DYNAMIC_NO_PIC = NO; + GCC_NO_COMMON_BLOCKS = YES; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "DEBUG=1", + "$(inherited)", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_VERSION = com.apple.compilers.llvm.clang.1_0; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_MISSING_PROTOTYPES = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 8.0; + ONLY_ACTIVE_ARCH = YES; + SDKROOT = iphoneos; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = Debug; + }; + A484114115114F700074BD57 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_CXX_LANGUAGE_STANDARD = "c++0x"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + COPY_PHASE_STRIP = YES; + ENABLE_BITCODE = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_NO_COMMON_BLOCKS = YES; + GCC_VERSION = com.apple.compilers.llvm.clang.1_0; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_MISSING_PROTOTYPES = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 8.0; + OTHER_CFLAGS = "-DNS_BLOCK_ASSERTIONS=1"; + SDKROOT = iphoneos; + TARGETED_DEVICE_FAMILY = "1,2"; + VALIDATE_PRODUCT = YES; + }; + name = Release; + }; + A484114315114F700074BD57 /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = F55829801ED23E1200E5808C /* CoronaApp.xcconfig */; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + DEAD_CODE_STRIPPING = NO; + DEVELOPMENT_TEAM = ""; + GCC_PRECOMPILE_PREFIX_HEADER = YES; + GCC_PREFIX_HEADER = Prefix.pch; + GCC_SYMBOLS_PRIVATE_EXTERN = YES; + "GCC_THUMB_SUPPORT[arch=armv6]" = ""; + INFOPLIST_FILE = "App-Info.plist"; + PRODUCT_BUNDLE_IDENTIFIER = "com.mycompany.${PRODUCT_NAME:rfc1034identifier}"; + PRODUCT_NAME = "$(TARGET_NAME)"; + SEPARATE_STRIP = YES; + STRIP_INSTALLED_PRODUCT = YES; + STRIP_STYLE = "non-global"; + WRAPPER_EXTENSION = app; + }; + name = Debug; + }; + A484114415114F700074BD57 /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = F55829801ED23E1200E5808C /* CoronaApp.xcconfig */; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + DEAD_CODE_STRIPPING = NO; + DEVELOPMENT_TEAM = ""; + GCC_OPTIMIZATION_LEVEL = 2; + GCC_PRECOMPILE_PREFIX_HEADER = YES; + GCC_PREFIX_HEADER = Prefix.pch; + "GCC_THUMB_SUPPORT[arch=armv6]" = ""; + INFOPLIST_FILE = "App-Info.plist"; + PRODUCT_BUNDLE_IDENTIFIER = "com.mycompany.${PRODUCT_NAME:rfc1034identifier}"; + PRODUCT_NAME = "$(TARGET_NAME)"; + SEPARATE_STRIP = YES; + STRIP_INSTALLED_PRODUCT = YES; + STRIP_STYLE = "non-global"; + WRAPPER_EXTENSION = app; + }; + name = Release; + }; + F597AC701ED8CA3E0085F5E5 /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = F572F8191EE06E45001BC814 /* CoronaNative.xcconfig */; + buildSettings = { + DEVELOPMENT_TEAM = BG2J43EA88; + PRODUCT_NAME = "$(TARGET_NAME)"; + }; + name = Debug; + }; + F597AC711ED8CA3E0085F5E5 /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = F572F8191EE06E45001BC814 /* CoronaNative.xcconfig */; + buildSettings = { + DEVELOPMENT_TEAM = BG2J43EA88; + PRODUCT_NAME = "$(TARGET_NAME)"; + }; + name = Release; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + A484111315114F700074BD57 /* Build configuration list for PBXProject "App" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + A484114015114F700074BD57 /* Debug */, + A484114115114F700074BD57 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + A484114215114F700074BD57 /* Build configuration list for PBXNativeTarget "App" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + A484114315114F700074BD57 /* Debug */, + A484114415114F700074BD57 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + F597AC6F1ED8CA3E0085F5E5 /* Build configuration list for PBXAggregateTarget "Download Plugins" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + F597AC701ED8CA3E0085F5E5 /* Debug */, + F597AC711ED8CA3E0085F5E5 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; +/* End XCConfigurationList section */ + }; + rootObject = A484111015114F700074BD57 /* Project object */; +} diff --git a/source/ios/App.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/source/ios/App.xcodeproj/project.xcworkspace/contents.xcworkspacedata new file mode 100644 index 0000000..919434a --- /dev/null +++ b/source/ios/App.xcodeproj/project.xcworkspace/contents.xcworkspacedata @@ -0,0 +1,7 @@ + + + + + diff --git a/source/ios/App.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/source/ios/App.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist new file mode 100644 index 0000000..18d9810 --- /dev/null +++ b/source/ios/App.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist @@ -0,0 +1,8 @@ + + + + + IDEDidComputeMac32BitWarning + + + diff --git a/source/ios/AppCoronaDelegate.h b/source/ios/AppCoronaDelegate.h new file mode 100644 index 0000000..e43f81b --- /dev/null +++ b/source/ios/AppCoronaDelegate.h @@ -0,0 +1,14 @@ +// +// AppCoronaDelegate.h +// TemplateApp +// +// Copyright (c) 2017 __MyCompanyName__. All rights reserved. +// + +#import + +#import + +@interface AppCoronaDelegate : NSObject< CoronaDelegate > + +@end diff --git a/source/ios/AppCoronaDelegate.mm b/source/ios/AppCoronaDelegate.mm new file mode 100644 index 0000000..e9611f4 --- /dev/null +++ b/source/ios/AppCoronaDelegate.mm @@ -0,0 +1,66 @@ +// +// AppCoronaDelegate.mm +// TemplateApp +// +// Copyright (c) 2017 __MyCompanyName__. All rights reserved. +// + +#import "AppCoronaDelegate.h" + +#import +#import + +@implementation AppCoronaDelegate + +- (void)willLoadMain:(id)runtime +{ +} + +- (void)didLoadMain:(id)runtime +{ +} + +#pragma mark UIApplicationDelegate methods + +// The following are stubs for common delegate methods. Uncomment and implement +// the ones you wish to be called. Or add additional delegate methods that +// you wish to be called. + +/* +- (void)applicationWillResignActive:(UIApplication *)application +{ + // Sent when the application is about to move from active to inactive state. This can occur for certain types of temporary interruptions (such as an incoming phone call or SMS message) or when the user quits the application and it begins the transition to the background state. + // Use this method to pause ongoing tasks, disable timers, and throttle down OpenGL ES frame rates. Games should use this method to pause the game. +} +*/ + +/* +- (void)applicationDidEnterBackground:(UIApplication *)application +{ + // Use this method to release shared resources, save user data, invalidate timers, and store enough application state information to restore your application to its current state in case it is terminated later. + // If your application supports background execution, this method is called instead of applicationWillTerminate: when the user quits. +} +*/ + +/* +- (void)applicationWillEnterForeground:(UIApplication *)application +{ + // Called as part of the transition from the background to the inactive state; here you can undo many of the changes made on entering the background. +} +*/ + +/* +- (void)applicationDidBecomeActive:(UIApplication *)application +{ + // Restart any tasks that were paused (or not yet started) while the application was inactive. If the application was previously in the background, optionally refresh the user interface. +} +*/ + +/* +- (void)applicationWillTerminate:(UIApplication *)application +{ + // Called when the application is about to terminate. Save data if appropriate. See also applicationDidEnterBackground:. +} +*/ + +@end diff --git a/source/ios/CoronaApp.xcconfig b/source/ios/CoronaApp.xcconfig new file mode 100644 index 0000000..0726d2e --- /dev/null +++ b/source/ios/CoronaApp.xcconfig @@ -0,0 +1,9 @@ +// This file is generated by Corona. +// All changes is overwritten when Download Plugins target is built + +// import Corona native location and basic settings +#include "CoronaNative.xcconfig" + +// To use Metal rather than 'classic' change -lplayer to -lplayer-angle +// And make sure to drag Native/Corona/ios/lib/MetalANGLE.framework into App's framework list +OTHER_LDFLAGS = $(inherited) $(CORONA_CUSTOM_LDFLAGS) -all_load -lplayer diff --git a/source/ios/CoronaNative.xcconfig b/source/ios/CoronaNative.xcconfig new file mode 100644 index 0000000..ac4e98f --- /dev/null +++ b/source/ios/CoronaNative.xcconfig @@ -0,0 +1,15 @@ +// This file contains basic setup for Corona Native apps and plugins + +CORONA_ROOT=$HOME/Library/Application Support/Corona/Native + +HEADER_SEARCH_PATHS = $(inherited) "$(CORONA_ROOT)/Corona/shared/include/Corona" "$(CORONA_ROOT)/Corona/shared/include/lua" "$(CORONA_ROOT)/Corona/ios/include/Corona" + +LIBRARY_SEARCH_PATHS = $(inherited) "$(CORONA_ROOT)/Corona/ios/lib" + +FRAMEWORK_SEARCH_PATHS = $(inherited) "$(CORONA_ROOT)/Corona/ios/lib" "$(PROJECT_DIR)/EmbeddedFrameworks" + +ENABLE_BITCODE = no + +// Sometimes passing -all_load flag is not an option. In this case, manually load all libraries with -force_load: +//CORONA_FORCE_LOAD = --force-load +//CORONA_CUSTOM_LDFLAGS = -force_load "$(BUILT_PRODUCTS_DIR)/libplugin_library.a" diff --git a/source/ios/EmbeddedFrameworks/Readme.markdown b/source/ios/EmbeddedFrameworks/Readme.markdown new file mode 100644 index 0000000..e12598f --- /dev/null +++ b/source/ios/EmbeddedFrameworks/Readme.markdown @@ -0,0 +1,2 @@ + +put embedded frameworks for a plugin here diff --git a/source/ios/Plugin/PluginBugsnag.h b/source/ios/Plugin/PluginBugsnag.h new file mode 100644 index 0000000..acf8051 --- /dev/null +++ b/source/ios/Plugin/PluginBugsnag.h @@ -0,0 +1,13 @@ + + +#ifndef _PluginBugsnag_H__ +#define _PluginBugsnag_H__ + +#include +#include + +// This corresponds to the name of the library, e.g. [Lua] require "plugin.library" +// where the '.' is replaced with '_' +CORONA_EXPORT int luaopen_plugin_bugsnag( lua_State *L ); + +#endif // _PluginBugsnag_H__ diff --git a/source/ios/Plugin/PluginBugsnag.mm b/source/ios/Plugin/PluginBugsnag.mm new file mode 100644 index 0000000..34e7803 --- /dev/null +++ b/source/ios/Plugin/PluginBugsnag.mm @@ -0,0 +1,215 @@ + +#import "PluginBugsnag.h" + +#include +#import +#import + +// ---------------------------------------------------------------------------- + +class PluginBugsnag +{ + public: + typedef PluginBugsnag Self; + + public: + static const char kName[]; + static const char kEvent[]; + + protected: + PluginBugsnag(); + + public: + bool Initialize( CoronaLuaRef listener ); + + public: + CoronaLuaRef GetListener() const { return fListener; } + + public: + static int Open( lua_State *L ); + + protected: + static int Finalizer( lua_State *L ); + + public: + static Self *ToLibrary( lua_State *L ); + + public: + static int init( lua_State *L ); + static int leaveBreadcrumb( lua_State *L ); + static int crash( lua_State *L ); + private: + CoronaLuaRef fListener; +}; + +// ---------------------------------------------------------------------------- + +// This corresponds to the name of the library, e.g. [Lua] require "plugin.bugsnag" +const char PluginBugsnag::kName[] = "plugin.bugsnag"; + +// This corresponds to the event name, e.g. [Lua] event.name +const char PluginBugsnag::kEvent[] = "pluginbugsnagevent"; + +PluginBugsnag::PluginBugsnag() +: fListener( NULL ) +{ +} + +bool +PluginBugsnag::Initialize( CoronaLuaRef listener ) +{ + // Can only initialize listener once + bool result = ( NULL == fListener ); + + if ( result ) + { + fListener = listener; + } + + return result; +} + +int +PluginBugsnag::Open( lua_State *L ) +{ + // Register __gc callback + const char kMetatableName[] = __FILE__; // Globally unique string to prevent collision + CoronaLuaInitializeGCMetatable( L, kMetatableName, Finalizer ); + + // Functions in library + const luaL_Reg kVTable[] = + { + { "init", init }, + { "leaveBreadcrumb", leaveBreadcrumb }, + { "crash", crash }, + + { NULL, NULL } + }; + + // Set library as upvalue for each library function + Self *library = new Self; + CoronaLuaPushUserdata( L, library, kMetatableName ); + + luaL_openlib( L, kName, kVTable, 1 ); // leave "library" on top of stack + + return 1; +} + +int +PluginBugsnag::Finalizer( lua_State *L ) +{ + Self *library = (Self *)CoronaLuaToUserdata( L, 1 ); + + CoronaLuaDeleteRef( L, library->GetListener() ); + + delete library; + + return 0; +} + +PluginBugsnag * +PluginBugsnag::ToLibrary( lua_State *L ) +{ + // library is pushed as part of the closure + Self *library = (Self *)CoronaLuaToUserdata( L, lua_upvalueindex( 1 ) ); + return library; +} + + +int +PluginBugsnag::leaveBreadcrumb( lua_State *L ) +{ + if ( lua_type( L, 1 ) == LUA_TSTRING ) + { + const char *breadcrumb = lua_tostring( L, 1 ); + + NSLog(@"**** Bugsnag Plugin will leave breadcrumb %s .", breadcrumb); + [Bugsnag leaveBreadcrumbWithMessage:[NSString stringWithUTF8String:breadcrumb]]; + } + + return 0; +} + +int +PluginBugsnag::crash( lua_State *L ) +{ + NSLog(@"**** Bugsnag Plugin will report error. ONLY CALL bugsnag.crash() DURING TESTING"); + [Bugsnag notifyError:[NSError errorWithDomain:@"errortest.com" code:408 userInfo:nil]]; + return 0; +} + + +int +PluginBugsnag::init( lua_State *L ) +{ + int listenerIndex = 1; + int tableIndex = 2; + const char* userId = NULL; + const char* email = NULL; + const char* name = NULL; + + + if ( CoronaLuaIsListener( L, listenerIndex, kEvent ) ) + { + Self *library = ToLibrary( L ); + + CoronaLuaRef listener = CoronaLuaNewRef( L, listenerIndex ); + library->Initialize( listener ); + } + + if ( lua_type( L, 2 ) == LUA_TTABLE ) + { + lua_getfield( L, 2, "id" ); + if ( lua_type( L, -1 ) == LUA_TSTRING ) + { + userId = lua_tostring( L, -1 ); + } + + lua_pop( L, 1 ); + + lua_getfield( L, 2, "email" ); + if ( lua_type( L, -1 ) == LUA_TSTRING ) + { + email = lua_tostring( L, -1 ); + } + + lua_pop( L, 1 ); + + + lua_getfield( L, 2, "name" ); + if ( lua_type( L, -1 ) == LUA_TSTRING ) + { + name = lua_tostring( L, -1 ); + } + + lua_pop( L, 1 ); + } + + + NSLog(@"**** Bugsnag Plugin Will Start"); + try { + + BugsnagConfiguration *config = [BugsnagConfiguration loadConfig]; + if (userId != NULL && email != NULL && name != NULL) { + + [config setUser:[NSString stringWithUTF8String:userId] withEmail:[NSString stringWithUTF8String:email] andName:[NSString stringWithUTF8String:name]]; + [Bugsnag startWithConfiguration:config]; + }else { + [Bugsnag start]; + } + + + + } catch (NSException* ex) { + NSLog(@"**** Bugsnag Plugin Start Exception: %@, %@", ex.name, ex.description); + } + + return 0; +} + +// ---------------------------------------------------------------------------- + +CORONA_EXPORT int luaopen_plugin_bugsnag( lua_State *L ) +{ + return PluginBugsnag::Open( L ); +} diff --git a/source/ios/Prefix.pch b/source/ios/Prefix.pch new file mode 100644 index 0000000..529d141 --- /dev/null +++ b/source/ios/Prefix.pch @@ -0,0 +1,8 @@ +// +// Prefix header for all source files of the 'TemplateApp' target in the 'TemplateApp' project +// + +#ifdef __OBJC__ + #import + #import +#endif diff --git a/source/ios/_CoronaSplashScreen.png b/source/ios/_CoronaSplashScreen.png new file mode 100644 index 0000000000000000000000000000000000000000..a1b6a32a4831f982d5b11f3b185ebd374ed8913a GIT binary patch literal 6631 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 oV%A7syxJ|hamoMr$HSd>E}S&2\n\n exit 1\nelse\n echo \"Building with Corona Native from $(readlink \"${CORONA_ROOT}\")\"\nfi\n"; + showEnvVarsInLog = 0; + }; +/* End PBXShellScriptBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + A4E253B2166D6FB300DCDC2C /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + A4E253C9166D716900DCDC2C /* PluginBugsnag.mm in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin XCBuildConfiguration section */ + A484114015114F700074BD57 /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = F572F81A1EE0705B001BC814 /* CoronaNative.xcconfig */; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_CXX_LANGUAGE_STANDARD = "c++0x"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + COPY_PHASE_STRIP = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_TESTABILITY = YES; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_DYNAMIC_NO_PIC = NO; + GCC_NO_COMMON_BLOCKS = YES; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "DEBUG=1", + "$(inherited)", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_VERSION = com.apple.compilers.llvm.clang.1_0; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_MISSING_PROTOTYPES = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 11.0; + ONLY_ACTIVE_ARCH = YES; + SDKROOT = iphoneos; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = Debug; + }; + A484114115114F700074BD57 /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = F572F81A1EE0705B001BC814 /* CoronaNative.xcconfig */; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_CXX_LANGUAGE_STANDARD = "c++0x"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + COPY_PHASE_STRIP = YES; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_NO_COMMON_BLOCKS = YES; + GCC_VERSION = com.apple.compilers.llvm.clang.1_0; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_MISSING_PROTOTYPES = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 11.0; + OTHER_CFLAGS = "-DNS_BLOCK_ASSERTIONS=1"; + SDKROOT = iphoneos; + TARGETED_DEVICE_FAMILY = "1,2"; + VALIDATE_PRODUCT = YES; + }; + name = Release; + }; + A4E253C0166D6FB300DCDC2C /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + DSTROOT = /tmp/plugin_library.dst; + ENABLE_BITCODE = NO; + FRAMEWORK_SEARCH_PATHS = ( + "$(inherited)", + "$(PROJECT_DIR)", + ); + GCC_PRECOMPILE_PREFIX_HEADER = NO; + GCC_WARN_UNINITIALIZED_AUTOS = YES; + IPHONEOS_DEPLOYMENT_TARGET = 11.0; + OTHER_LDFLAGS = "-ObjC"; + PRODUCT_NAME = "$(TARGET_NAME)"; + SKIP_INSTALL = YES; + }; + name = Debug; + }; + A4E253C1166D6FB300DCDC2C /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + DSTROOT = /tmp/plugin_library.dst; + ENABLE_BITCODE = NO; + FRAMEWORK_SEARCH_PATHS = ( + "$(inherited)", + "$(PROJECT_DIR)", + ); + GCC_PRECOMPILE_PREFIX_HEADER = NO; + GCC_WARN_UNINITIALIZED_AUTOS = YES; + IPHONEOS_DEPLOYMENT_TARGET = 11.0; + OTHER_LDFLAGS = "-ObjC"; + PRODUCT_NAME = "$(TARGET_NAME)"; + SKIP_INSTALL = YES; + }; + name = Release; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + A484111315114F700074BD57 /* Build configuration list for PBXProject "bugsnag" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + A484114015114F700074BD57 /* Debug */, + A484114115114F700074BD57 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + A4E253BF166D6FB300DCDC2C /* Build configuration list for PBXNativeTarget "plugin_bugsnag" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + A4E253C0166D6FB300DCDC2C /* Debug */, + A4E253C1166D6FB300DCDC2C /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; +/* End XCConfigurationList section */ + }; + rootObject = A484111015114F700074BD57 /* Project object */; +} diff --git a/source/ios/bugsnag.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/source/ios/bugsnag.xcodeproj/project.xcworkspace/contents.xcworkspacedata new file mode 100644 index 0000000..c887c77 --- /dev/null +++ b/source/ios/bugsnag.xcodeproj/project.xcworkspace/contents.xcworkspacedata @@ -0,0 +1,7 @@ + + + + + diff --git a/source/ios/bugsnag.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/source/ios/bugsnag.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist new file mode 100644 index 0000000..18d9810 --- /dev/null +++ b/source/ios/bugsnag.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist @@ -0,0 +1,8 @@ + + + + + IDEDidComputeMac32BitWarning + + + diff --git a/source/ios/build.sh b/source/ios/build.sh new file mode 100755 index 0000000..e3626ec --- /dev/null +++ b/source/ios/build.sh @@ -0,0 +1,124 @@ +#!/bin/bash -e + +path=$(dirname "$0") + +OUTPUT_DIR=$1 +TARGET_NAME=plugin_library +OUTPUT_SUFFIX=a +CONFIG=Release + +# +# Checks exit value for error +# +checkError() { + if [ $? -ne 0 ] + then + echo "Exiting due to errors (above)" + exit -1 + fi +} + +# +# Canonicalize relative paths to absolute paths +# +pushd "$path" > /dev/null +dir=$(pwd) +path=$dir +popd > /dev/null + +if [ -z "$OUTPUT_DIR" ] +then + OUTPUT_DIR=. +fi + +pushd "$OUTPUT_DIR" > /dev/null +dir=$(pwd) +OUTPUT_DIR=$dir +popd > /dev/null + +echo "OUTPUT_DIR: $OUTPUT_DIR" + +# Clean +xcodebuild -project "$path/Plugin.xcodeproj" -configuration $CONFIG clean +checkError + +# iOS +xcodebuild -project "$path/Plugin.xcodeproj" -configuration $CONFIG -sdk iphoneos +checkError + +# iOS-sim +xcodebuild -project "$path/Plugin.xcodeproj" -configuration $CONFIG -sdk iphonesimulator +checkError + +# create universal binary +lipo -create "$path"/build/$CONFIG-iphoneos/lib$TARGET_NAME.$OUTPUT_SUFFIX "$path"/build/$CONFIG-iphonesimulator/lib$TARGET_NAME.$OUTPUT_SUFFIX -output "$OUTPUT_DIR"/lib$TARGET_NAME.$OUTPUT_SUFFIX +checkError + + +# copy corona plugin structure + +build_plugin_structure() { + + PLUGIN_DEST=$1 + mkdir -p "$PLUGIN_DEST" + PLATFORM=$2 + ARCH=$3 + + cp "$path/build/$CONFIG-$PLATFORM/lib$TARGET_NAME.$OUTPUT_SUFFIX" "$PLUGIN_DEST/" + cp "$path"/metadata.lua "$PLUGIN_DEST/" + + if ls "$path/build/$CONFIG-$PLATFORM/"*.framework 1> /dev/null 2>&1; then + echo "Copying bult frameworks for $PLATFORM" + mkdir -p "$PLUGIN_DEST"/resources/Frameworks + "$(xcrun -f rsync)" --exclude _CodeSignature --exclude .DS_Store --exclude CVS --exclude .svn --exclude .git --exclude .hg --exclude Headers --exclude PrivateHeaders --exclude Modules -resolve-src-symlinks "$path/build/$CONFIG-$PLATFORM"/*.framework "$PLUGIN_DEST"/resources/Frameworks + else + echo "No built frameworks" + fi + + + if ls "$path"/EmbeddedFrameworks/*.framework 1> /dev/null 2>&1; then + echo "Copying Embedded frameworks frameworks for $PLATFORM:" + + for f in "$path"/EmbeddedFrameworks/*.framework; do + FRAMEWORK_NAME=$(basename "$f") + BIN_NAME=${FRAMEWORK_NAME%.framework} + SRC_BIN="$f"/$BIN_NAME + + if [[ $(file "$SRC_BIN" | grep -c "ar archive") -ne 0 ]]; then + echo " - $FRAMEWORK_NAME: is a static Framework, extracting." + + DEST_BIN="$PLUGIN_DEST"/$FRAMEWORK_NAME/$BIN_NAME + "$(xcrun -f rsync)" --links --exclude '*.xcconfig' --exclude _CodeSignature --exclude .DS_Store --exclude CVS --exclude .svn --exclude .git --exclude .hg --exclude Headers --exclude PrivateHeaders --exclude Modules -resolve-src-symlinks "$f" "$PLUGIN_DEST" + rm "$DEST_BIN" + lipo "$SRC_BIN" $ARCH -o "$DEST_BIN.tmp" + $(xcrun -f bitcode_strip) "$DEST_BIN.tmp" -r -o "$DEST_BIN" + rm "$DEST_BIN.tmp" + rm -rf "$PLUGIN_DEST/$FRAMEWORK_NAME/Versions" + else + echo " + $FRAMEWORK_NAME: embedding" + + mkdir -p "$PLUGIN_DEST"/resources/Frameworks + DEST_BIN="$PLUGIN_DEST"/resources/Frameworks/$FRAMEWORK_NAME/$BIN_NAME + "$(xcrun -f rsync)" --links --exclude '*.xcconfig' --exclude _CodeSignature --exclude .DS_Store --exclude CVS --exclude .svn --exclude .git --exclude .hg --exclude Headers --exclude PrivateHeaders --exclude Modules -resolve-src-symlinks "$f" "$PLUGIN_DEST"/resources/Frameworks + rm "$DEST_BIN" + lipo "$SRC_BIN" $ARCH -o "$DEST_BIN.tmp" + $(xcrun -f bitcode_strip) "$DEST_BIN.tmp" -r -o "$DEST_BIN" + rm "$DEST_BIN.tmp" + rm -rf "$PLUGIN_DEST/$FRAMEWORK_NAME/Versions" + fi + done + else + echo "No 3rd party frameworks" + fi +} + + + +build_plugin_structure "$OUTPUT_DIR/BuiltPlugin/iphone" iphoneos " -extract armv7 -extract arm64 " + +build_plugin_structure "$OUTPUT_DIR/BuiltPlugin/iphone-sim" iphonesimulator " -extract i386 -extract x86_64 " + + + + +echo "$OUTPUT_DIR"/lib$TARGET_NAME.$OUTPUT_SUFFIX diff --git a/source/ios/en.lproj/InfoPlist.strings b/source/ios/en.lproj/InfoPlist.strings new file mode 100644 index 0000000..477b28f --- /dev/null +++ b/source/ios/en.lproj/InfoPlist.strings @@ -0,0 +1,2 @@ +/* Localized versions of Info.plist keys */ + diff --git a/source/ios/main.mm b/source/ios/main.mm new file mode 100644 index 0000000..eb06d20 --- /dev/null +++ b/source/ios/main.mm @@ -0,0 +1,19 @@ +// +// main.mm +// +// Copyright (c) 2017 __MyCompanyName__. All rights reserved. +// + +#import + +#import "AppCoronaDelegate.h" + +int main(int argc, char *argv[]) +{ + @autoreleasepool + { + CoronaApplicationMain( argc, argv, [AppCoronaDelegate class] ); + } + + return 0; +} diff --git a/source/ios/metadata.lua b/source/ios/metadata.lua new file mode 100644 index 0000000..3d3c8af --- /dev/null +++ b/source/ios/metadata.lua @@ -0,0 +1,13 @@ +local metadata = +{ + plugin = + { + format = 'staticLibrary', + staticLibs = { 'plugin_library', }, + frameworks = {}, + frameworksOptional = {}, + -- usesSwift = true, + }, +} + +return metadata