Saturday, December 27, 2014
Wednesday, August 13, 2014
მართვის მოწმობის აპლიკაცია Win Mob-ისთვის
პროგრამაში თქვენ შეძლებთ გაეცნოთ საქართველოს კანონმდებლობით გათვალისწინებულ მართვის მოწმობის წესებს შესაბამისი ბილეთებით და ასევე გაიაროთ ვირტუალური გამოცდა თეორიაში შეამოწმეთ თქვენი ცოდნა და მოემზადეთ მართვის მოწმობის ასაღებად გისურვებთ წარმატებებს :)
Monday, April 7, 2014
ექსელის ფაილის წაკითხვა t-sql-ით
ბევრს გაუკეთებია ექსელის Wizard-ით იპორტი Sql-ში, მაგრამ ზოგს Query-ით მოუნდებოდა ამის გაკეთება ზედმეტი ფანჯრების თავის ასარიდებლად, ან თუნდაც თავისი სტილიდან გამომდინარე.
მოკლედ, ეს რომ გააკეთოთ პირველ რიგში დაგჭირდება დრაივერი Access Database Engine
ინსტალაციის შემდეგ ჩართეთ MS SQL Server Management Studio და გაუშვით შემდეგ სკრიპტი:
USE [master]
GO
sp_configure 'show advanced options', 1
GO
RECONFIGURE WITH OverRide
GO
sp_configure 'Ad Hoc Distributed Queries', 1
GO
RECONFIGURE WITH OverRide
GO
EXEC master.dbo.sp_MSset_oledb_prop N'Microsoft.ACE.OLEDB.12.0', N'AllowInProcess', 1
GO
EXEC master.dbo.sp_MSset_oledb_prop N'Microsoft.ACE.OLEDB.12.0', N'DynamicParameters', 1
GO
EXEC sp_configure 'show advanced options', 1
GO
RECONFIGURE
GO
EXEC sp_configure 'xp_cmdshell', 1
GO
RECONFIGURE
GO
SELECT * FROM OPENROWSET ('Microsoft.ACE.OLEDB.12.0','Excel 12.0;Database=C:\Users\lasha.morgoshia\Desktop\temp\Book1.xlsx;HDR=YES;IMEX=1','SELECT * FROM [Sheet1$]')
მოკლედ, ეს რომ გააკეთოთ პირველ რიგში დაგჭირდება დრაივერი Access Database Engine
ინსტალაციის შემდეგ ჩართეთ MS SQL Server Management Studio და გაუშვით შემდეგ სკრიპტი:
USE [master]
GO
sp_configure 'show advanced options', 1
GO
RECONFIGURE WITH OverRide
GO
sp_configure 'Ad Hoc Distributed Queries', 1
GO
RECONFIGURE WITH OverRide
GO
EXEC master.dbo.sp_MSset_oledb_prop N'Microsoft.ACE.OLEDB.12.0', N'AllowInProcess', 1
GO
EXEC master.dbo.sp_MSset_oledb_prop N'Microsoft.ACE.OLEDB.12.0', N'DynamicParameters', 1
GO
EXEC sp_configure 'show advanced options', 1
GO
RECONFIGURE
GO
EXEC sp_configure 'xp_cmdshell', 1
GO
RECONFIGURE
GO
SELECT * FROM OPENROWSET ('Microsoft.ACE.OLEDB.12.0','Excel 12.0;Database=C:\Users\lasha.morgoshia\Desktop\temp\Book1.xlsx;HDR=YES;IMEX=1','SELECT * FROM [Sheet1$]')
Sunday, March 9, 2014
Windows Phone 8 _ის პროგრამირება, How to create "Hello World" App for WP8
რადგან მხოლოდ IOS და Android პროგრამირების განყოფილებები არსებობს ცალკე და Windows Phone _ის პროგრამირება არ არის, თავს უფლება მივეცი და პროგრამირების განყოფილებაში ვქმნი ახალ თემას.
მინდა გაგიზიაროთ ჩემი პირველი, მარტივი გამოცდილება WP8-სთან შეხების.
ასევე გეტყვით რომ მქონდა შეხება IOS_ის პროგრამირებასთან, Android-თანაც და დადგა დრო გავეცნოთ WP8-ის პროგრამირებასაც, საკმაოდ საინტერესოა, თუმცა რადგან Open Source არ არის, შესაბამისად ნურავის ნუ ექნება იმის ამბიცია რომ ყველაფერს იზავთ მსგავსად ანდროიდის ან IOS_ის.
ფაილური სისტემა შეზღუდულია, ამიტომ თქვენს დაწერილ აპლიკაციას მხოლოდ და მხოლოდ წვდომა აქვს აპლიკაციის ასე ვთქვათ იზოლირებულ მყარი მეხსიერების არეალზე (Isolated Storage) და ოპერაციული სისტემის დაშეარებულ საქაღალდეებზე მხოლოდ, როგორიცაა სიმღერების/ვიდეოების/ფოტოების ბიბლიოთეკა.
Step 1:
უპირველესი გვჭირდება Windows 8 რომ შევძლოთ Visual Studio 2012-ზე Windows Phone 8 SDK_ის დაინსტალება.
WPexpress_full (Windows Phone Express Full Instalation Agent)

პ.ს. ჩემი მობილი არის ლუმია 920, ნორმალური აპარატია, სიმძლავრეც საკმარისად აქვს რომ OS ამუშაოს უპრობლემოდ. როგორც მაიკროსოფტი ამბობს WP8-ს აქვს Windows NT kernel-ი, იგივე რაც Windows 8-ის ბირთვი, თუმცა მცირე მოდიფიკაცია არის გაკეთებული.
Step 1 Restart:
SDK_ის ინსტალაცია მოითხოვს რომ ბიოსში გაააქტიუროთ ვირტუალიზაცია, რაც სჭირდება SDK_ს ემულატორების ამუშავებისთვის, თუმცა ემულატორებთან არ მიწევს მუშაობა, რადგან პირდაპირ ჩემს მობილზე ვაკეთებ დეპლოის და ვუშვებ პირდაპირ აპარატზე.
Step 2:
მობილზე რომ ვიზუალ სტუდიოდან პირდაპირ გაუშვათ აპლიკაცია, ამისთვის დაგვჭირდება მობილურის დარეგისტრირება დეველოპმენტისთვის, რისთვისაც საჭიროა SDK_ას უტილიტის ჩართვა (Windows Phone Developer Registration "C:\Program Files (x86)\Microsoft SDKs\Windows Phone\v8.0\Tools\Phone Registration\PhoneReg.###"). მობილი მიაერთეთ კომპზე USB კაბელით და უტილიტაში დააჭირეთ ღილაკ Register-ს. Lock Screen თუ არის მობილზე, Unlock გააკეთეთ და ისე სცადეთ, რეგისტრაციის შემდეგ შეძლებთ მობილზე Deploy-ს გაკეთებას და Debug-ს.
Step 3: აპლიკაციის შექმნა და გაშვება მობილზე
ჩავრთათ ვიზუალ სტუდიო და შევქმნათ ახალი პროექტი, Visual C#-ის შაბლონებში მოვძებნოთ Windows Phone განყოფილება და ავირჩიოთ Windows Phone App

დააჭირეთ არჩევას და შეიქმნება Solution სახელად PhoneApp1. შაბლონში მოცემულია რამოდენიმე კონტროლი და ასევე ვიზუალურად ასახულია ეს ყველაფერი.
შეგახსენებთ რომ Windows Phone 8 პროგრამირებაში გამოიყენება ასევე XNA Framework და Presentation Framework.
UI_ს შექმნა თქვენთვის მომინდვია, გნებავთ Toolbox-იდან დაყარეთ კონტროლები, ანდა XAML-ში ხელით, მე მაგალითად XAML-ში უფრო კომფორტულად ვმუშაობ ვიდრე ვიზუალზე პირდაპირ კონტროლების დაყრა.
დავამატოთ ღილაკი Grid ბლოკში:
ზომა შეცვლილია: 80% ორიგინალიდან [ 1917 x 1135 ] - დააჭირეთ სრული ზომის სანახავად


დაბილდეთ პროექტი და სცადეთ გაშვება

* * *
შევქმნათ ახალი პროექტი, სიმღერების ბიბლიოთეკის წასაკითხად.
შაბლონებიდან ვირჩევთ Windows Phone Databound App, ვარქმევთ სახელს სურვილისამებრ და ვქმნით პროექტს.

სტილს ცოტა ხელი შევავლოთ და TextBlock-ების ფერები და ზომები როგორც მოგვეწონება ისეთ სტილზე დავიყვანოთ და მივხედოთ კოდის ნაწილს.
ზომა შეცვლილია: 94% ორიგინალიდან [ 1632 x 791 ] - დააჭირეთ სრული ზომის სანახავად
* * *
გავხსნათ MainViewModel.cs და მოვძებნოთ მეთოდი LoadData()
შეგახსენებთ რომ ჩვეულებრივ MVVM Pattern-ს ვიყენებთ
ჩვენს შემთხვევაში შაბლონი უკვე იყენებს ამ პატერნს და LongListSelector კონტროლი უკვე მიბმული არის Items property-ზე, შესაბამისად ჩვენ მონაცემებს როგორც კი ჩავყრით Items-ში, UI გადაიხატება.
მეთოდის ტანი წავშალოთ და დავწეროთ კოდის ფრაგმენტი:
using (MediaLibrary library = new MediaLibrary())
{
foreach (var songInfo in library.Songs)
{
this.Items.Add(new ItemViewModel() { ID = (this.Items.Count + 1).ToString(), LineOne = songInfo.Name, LineTwo = songInfo.Artist.Name, LineThree = songInfo.Genre.Name });
}
}
this.IsDataLoaded = true;
ასე გამოიყურება:

დაბილდეთ და გაუშვით პროექტი
შეგიძლიათ იხილოთ სოლუშენი, დაზიპული ეთაჩმენტის სახით.
ასევე დამატებითი Codeplex-ის ბიბლიოთეკები შეგიძლიათ ჩამოტვირთოთ NuGet-იდან

წარმატებებს გისურვებთ
http://www.windowsphone.com/en-us/store/app/geounicode/ab767b4e-4dd2-4b62-8024-f94b99763292
მინდა გაგიზიაროთ ჩემი პირველი, მარტივი გამოცდილება WP8-სთან შეხების.
ასევე გეტყვით რომ მქონდა შეხება IOS_ის პროგრამირებასთან, Android-თანაც და დადგა დრო გავეცნოთ WP8-ის პროგრამირებასაც, საკმაოდ საინტერესოა, თუმცა რადგან Open Source არ არის, შესაბამისად ნურავის ნუ ექნება იმის ამბიცია რომ ყველაფერს იზავთ მსგავსად ანდროიდის ან IOS_ის.
ფაილური სისტემა შეზღუდულია, ამიტომ თქვენს დაწერილ აპლიკაციას მხოლოდ და მხოლოდ წვდომა აქვს აპლიკაციის ასე ვთქვათ იზოლირებულ მყარი მეხსიერების არეალზე (Isolated Storage) და ოპერაციული სისტემის დაშეარებულ საქაღალდეებზე მხოლოდ, როგორიცაა სიმღერების/ვიდეოების/ფოტოების ბიბლიოთეკა.
Step 1:
უპირველესი გვჭირდება Windows 8 რომ შევძლოთ Visual Studio 2012-ზე Windows Phone 8 SDK_ის დაინსტალება.
WPexpress_full (Windows Phone Express Full Instalation Agent)

პ.ს. ჩემი მობილი არის ლუმია 920, ნორმალური აპარატია, სიმძლავრეც საკმარისად აქვს რომ OS ამუშაოს უპრობლემოდ. როგორც მაიკროსოფტი ამბობს WP8-ს აქვს Windows NT kernel-ი, იგივე რაც Windows 8-ის ბირთვი, თუმცა მცირე მოდიფიკაცია არის გაკეთებული.
Step 1 Restart:
SDK_ის ინსტალაცია მოითხოვს რომ ბიოსში გაააქტიუროთ ვირტუალიზაცია, რაც სჭირდება SDK_ს ემულატორების ამუშავებისთვის, თუმცა ემულატორებთან არ მიწევს მუშაობა, რადგან პირდაპირ ჩემს მობილზე ვაკეთებ დეპლოის და ვუშვებ პირდაპირ აპარატზე.
Step 2:
მობილზე რომ ვიზუალ სტუდიოდან პირდაპირ გაუშვათ აპლიკაცია, ამისთვის დაგვჭირდება მობილურის დარეგისტრირება დეველოპმენტისთვის, რისთვისაც საჭიროა SDK_ას უტილიტის ჩართვა (Windows Phone Developer Registration "C:\Program Files (x86)\Microsoft SDKs\Windows Phone\v8.0\Tools\Phone Registration\PhoneReg.###"). მობილი მიაერთეთ კომპზე USB კაბელით და უტილიტაში დააჭირეთ ღილაკ Register-ს. Lock Screen თუ არის მობილზე, Unlock გააკეთეთ და ისე სცადეთ, რეგისტრაციის შემდეგ შეძლებთ მობილზე Deploy-ს გაკეთებას და Debug-ს.
Step 3: აპლიკაციის შექმნა და გაშვება მობილზე
ჩავრთათ ვიზუალ სტუდიო და შევქმნათ ახალი პროექტი, Visual C#-ის შაბლონებში მოვძებნოთ Windows Phone განყოფილება და ავირჩიოთ Windows Phone App
დააჭირეთ არჩევას და შეიქმნება Solution სახელად PhoneApp1. შაბლონში მოცემულია რამოდენიმე კონტროლი და ასევე ვიზუალურად ასახულია ეს ყველაფერი.
შეგახსენებთ რომ Windows Phone 8 პროგრამირებაში გამოიყენება ასევე XNA Framework და Presentation Framework.
UI_ს შექმნა თქვენთვის მომინდვია, გნებავთ Toolbox-იდან დაყარეთ კონტროლები, ანდა XAML-ში ხელით, მე მაგალითად XAML-ში უფრო კომფორტულად ვმუშაობ ვიდრე ვიზუალზე პირდაპირ კონტროლების დაყრა.
დავამატოთ ღილაკი Grid ბლოკში:


დაბილდეთ პროექტი და სცადეთ გაშვება

* * *
შევქმნათ ახალი პროექტი, სიმღერების ბიბლიოთეკის წასაკითხად.
შაბლონებიდან ვირჩევთ Windows Phone Databound App, ვარქმევთ სახელს სურვილისამებრ და ვქმნით პროექტს.

სტილს ცოტა ხელი შევავლოთ და TextBlock-ების ფერები და ზომები როგორც მოგვეწონება ისეთ სტილზე დავიყვანოთ და მივხედოთ კოდის ნაწილს.
* * *
გავხსნათ MainViewModel.cs და მოვძებნოთ მეთოდი LoadData()
შეგახსენებთ რომ ჩვეულებრივ MVVM Pattern-ს ვიყენებთ
ჩვენს შემთხვევაში შაბლონი უკვე იყენებს ამ პატერნს და LongListSelector კონტროლი უკვე მიბმული არის Items property-ზე, შესაბამისად ჩვენ მონაცემებს როგორც კი ჩავყრით Items-ში, UI გადაიხატება.
მეთოდის ტანი წავშალოთ და დავწეროთ კოდის ფრაგმენტი:
using (MediaLibrary library = new MediaLibrary())
{
foreach (var songInfo in library.Songs)
{
this.Items.Add(new ItemViewModel() { ID = (this.Items.Count + 1).ToString(), LineOne = songInfo.Name, LineTwo = songInfo.Artist.Name, LineThree = songInfo.Genre.Name });
}
}
this.IsDataLoaded = true;
ასე გამოიყურება:

დაბილდეთ და გაუშვით პროექტი
შეგიძლიათ იხილოთ სოლუშენი, დაზიპული ეთაჩმენტის სახით.
ასევე დამატებითი Codeplex-ის ბიბლიოთეკები შეგიძლიათ ჩამოტვირთოთ NuGet-იდან

წარმატებებს გისურვებთ
http://www.windowsphone.com/en-us/store/app/geounicode/ab767b4e-4dd2-4b62-8024-f94b99763292
Wednesday, December 7, 2011
ხაი :D
კაი ხანია არ მიმიპოსტავს ჩემს საყვარელ ბლოგზე
და ამ "კაი ხნის" განმავლობაში ძალიან ბევრი რამ მოხდა ჩემს ცხოვრებაში :D, თუმცა, აქ ეხლა მაგაზე სალაპარაკოდ არ შემოვსულვარ, მინდა რომ ერთი ნაწილობრივ იუმორისტული, ნაწილობრივ სიმართლე გარეული პოსტი დავტოვო ამ შუა დღისას :D
ესეიგი, როგორ უნდა გატეხო ნებისმიერი ტიპის პაროლი?
არ აქვს მნიშვნელობა, იქნება ეს რაიმე პროგრამა, საიტი, მობილურის პინი თუ რაც გინდა იყოს, თუნდაც ოპერაციული სისტემის, რავიცი, რაც არსებობს, ნებისმიერი ტიპის პაროლი ტყდება თურმე ძალიან მარტივად.
გატეხვის მეთოდი შემდეგში მდგომარეობს - გინდა ამა-თუ-იმ პაროლის გატეხვა, ამისთვის მთელი კვირა უნდა იშიმშილო, მხოლოდ წყალი შეგიძლია დალიო, კვირის ბოლოს მიუჯდები კომპს/მობილს/ჰარდს მოკლედ, რის პაროლსაც ტეხავ და იწყებ მომაკვდინებელ მზერას პაროლის ჩასაწერი ველის მიმართ, ოღონდ მზერა როგორი უნდა იყოს - თავი უნდა წარმოიდგინო მედიტაციაში, მთელს ორგანიზმში უნდა მოკრიბო უჭმელობისგან დასუსტებული, აქა-იქ შემორჩენილი ენერგია და უნდა მიმართი ჭიპისკენ, უნდა შეიგრძნო რომ სწორი პაროლი ჩაიწერება, თუ ვერ გამოგივიდათ, ღრმად ვარ დარწმუნებული კერძის ქვაბის გასახსნელ პაროლს მაინც გატეხავთ
წარმატებები
და ამ "კაი ხნის" განმავლობაში ძალიან ბევრი რამ მოხდა ჩემს ცხოვრებაში :D, თუმცა, აქ ეხლა მაგაზე სალაპარაკოდ არ შემოვსულვარ, მინდა რომ ერთი ნაწილობრივ იუმორისტული, ნაწილობრივ სიმართლე გარეული პოსტი დავტოვო ამ შუა დღისას :D
ესეიგი, როგორ უნდა გატეხო ნებისმიერი ტიპის პაროლი?
არ აქვს მნიშვნელობა, იქნება ეს რაიმე პროგრამა, საიტი, მობილურის პინი თუ რაც გინდა იყოს, თუნდაც ოპერაციული სისტემის, რავიცი, რაც არსებობს, ნებისმიერი ტიპის პაროლი ტყდება თურმე ძალიან მარტივად.
გატეხვის მეთოდი შემდეგში მდგომარეობს - გინდა ამა-თუ-იმ პაროლის გატეხვა, ამისთვის მთელი კვირა უნდა იშიმშილო, მხოლოდ წყალი შეგიძლია დალიო, კვირის ბოლოს მიუჯდები კომპს/მობილს/ჰარდს მოკლედ, რის პაროლსაც ტეხავ და იწყებ მომაკვდინებელ მზერას პაროლის ჩასაწერი ველის მიმართ, ოღონდ მზერა როგორი უნდა იყოს - თავი უნდა წარმოიდგინო მედიტაციაში, მთელს ორგანიზმში უნდა მოკრიბო უჭმელობისგან დასუსტებული, აქა-იქ შემორჩენილი ენერგია და უნდა მიმართი ჭიპისკენ, უნდა შეიგრძნო რომ სწორი პაროლი ჩაიწერება, თუ ვერ გამოგივიდათ, ღრმად ვარ დარწმუნებული კერძის ქვაბის გასახსნელ პაროლს მაინც გატეხავთ
წარმატებები
Wednesday, October 5, 2011
დილა ცუდი ამბით დაიწყო
2 დღის წინ ჩემი საყვარელი მანქანა დამხვდა გახაზული და მგონი იმაზე უფრო ვერ გამოვხატე მწუხარება ვიდრე ამ ცუდ ამბავზე, რაც დღეს დილას გავიგე, სტივი დაიღუპა
http://www.apple.com/stevejobs/
ალბად მშვიდად წავიდა ამ ქვეყნად 2 დღის წინანდელი ახალი ვაშლის პრეზენტაციის შემდეგ.
http://www.apple.com/stevejobs/
ალბად მშვიდად წავიდა ამ ქვეყნად 2 დღის წინანდელი ახალი ვაშლის პრეზენტაციის შემდეგ.
Tuesday, June 7, 2011
Deploy app from XCode to your iPhone without 99$
ვინც დაინტერესდით ვაშლიფონის პროგრამირებით და ჯერ კიდევ ვერ მოახერხეთ თქვენი დაწერილი აპლიკაციის გადატანა iPhone-ში დეველოპერის ლიცენზიის გარეშე, მაშინ ეს პოსტი თქვენთვის ყოფილა :)
ძალიან ბევრი თვლის, რომ ზოგადად აიფონის პროგრამირება შეზღუდულია, ცუდია, ნაგავია, დებილების არის მხოლოდ, შეზღუდულები არიან ვინც Objective C-ზე წერენ, XCode-ში და ა.შ., მოკლედ რა დალევს უსაქმურ და ჭოროკინა ხალხს :), ჰოდა რომ დარწმუნდეთ იმაში, რომ აიფონის პროგრამირება არანაირად არ არის შეზღუდული, თუნდაც იმ კუთხით რომ თავისუფლად შეგიძლიათ დაწეროთ აპლიკაცია და გადაიტანოთ თქვენსავე აიფონში ზედმეტი ფასიანი ლიცენზიების გარეშე, წარმოგიდგენთ პატარა მაიმუნობებს :)))
პირველ რიგში, უნდა შევქმნათ ლიცენზია საკუთარი ხელმოწერით, რასაც გამოიყენებს IOS SDK კომპილაციის დროს და არ მოითხოვს ოფიციალურად ნაყიდ 99$-იან ეფლის ლიცენზიას.
ლიცენზიის შექმნა: ჩავრთათ Keychain Access, მენიუში მოძებნეთ Certificate Assistant და შემდეგ Create a Certificate.
დასახელებაში მიუთითეთ: XNA Gamer
ტიპში: Code Signing
აღნიშვნა დასვით "Let me override defaults" ველზე
და გადადით შემდეგ ეტაპზე, ვალიდაციაში რამდენი დღეც გსურთ იმდენი მიუთითეთ, უმჯობესი იქნება ბევრი :)
ელ-ფოსტის ველი დატოვეთ ცარიელი და დაასრულეთ.
შექმნილ სერთიფიკატზე, თქვენ დაინახავთ წითლად წარწერას: "This root certificate is not trusted". ასეც უნდა იყოს.
შემდეგ ჩართეთ Terminal_ი და გაუშვით შემდეგი ბრძანება:
sudo /usr/bin/sed -i .bak 's/XCiPhoneOSCodeSignContext/XCCodeSignContext/' /Developer/Platforms/iPhoneOS.platform/Info.plist
ეს ბრძანება დააბექაფებს Info.plist ფაილს, რომელიც არის ზემოთ ხსენებულ მისამართში და დარჩენილ ფაილში ჩაანაცვლებს ტექსტ: XCiPhoneOSCodeSignContext _ს
XCCodeSignContext_ით.
რის შემდეგაც გვეძლევა საშუალება, რომ აპლიკაცია დავაკომპილოთ საკუთარი ხელმოწერის მქონე სერთიფიკატით.
პ.ს. თუ XCode ჩართული გაქვთ, უმჯობესი იქნება რომ გადატვირთოთ, ან ცოტა ხნით გათიშოთ.
შემდეგი ეტაპი არის - XCode_ს მივცეთ საშუალება დაჯეილებული ვაშლიფონებისთვის დაგვიბილდოს აპლიკაცია.
ეს არის ეგრედწოდებული პაჩი XCode-სთვის.
შემდეგი ბრძანება გავუშვათ ტერნიმალში:
sudo /usr/bin/sed -i .bak '/_REQUIRED/N;s/YES/NO/' /Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS4.3.sdk/SDKSettings.plist
(შეიძლება თქვენ სხვა ვერსია გქონდეთ დაინსტალებული SDK_სი და XCode-ის და შესაბამისად მისამართში უნდა ჩაასწოროთ რომ შეცდომაზე არ გავიდეს)
მსგავსად წინა ბრძანების, ესეც დაგვიბექაფებს კონფიგის ფაილს, და ჩაგვისწორებს მონაცემებს, რომ ხელის მოწერაზე აღარ შეამოწმოს კოდი კომპილაციის დროს.
და ბოლო ეტაპი:
cd /Developer/Platforms/iPhoneOS.platform/Developer/Library/Xcode/Plug-ins/iPhoneOS\ Build\ System\ Support.xcplugin/Contents/MacOS/
dd if=iPhoneOS\ Build\ System\ Support of=working bs=500 count=255
/bin/mv -n iPhoneOS\ Build\ System\ Support iPhoneOS\ Build\ System\ Support.original
/bin/mv working iPhoneOS\ Build\ System\ Support
chmod a+x iPhoneOS\ Build\ System\ Support
ეს ბრძანებები შეგიძლიათ ცალ-ცალკე გაუშვათ ტერნიმალიდან, ან სკრიპტის ფაილი შექმნათ და ერთიანად გაუშვათ.
---------------------
patching - ი დასრულდა.
ეხლა შეგვიძლია დავბილდოთ ნებისმიერ აპლიკაცია, და გადავიტანოთ ჩვენს აიფონში.
ოღონდ ერთი პატარა ნიუანსი, ყოველი აპლიკაციის დაწერის დროს, ყოველ პროექტზე ასე რომ ვთქვათ, დაგვჭირდება სკრიპტის დამატება პროექტში.
შევქმნათ დირექტორია და ჩავაგდოთ შიგნით სკრიპტისთვის საჭირო ფაილი:
mkdir /Developer/xnagamer
cd /Developer/xnagamer
curl -O http://www.alexwhittemore.com/iphone/gen_entitlements.txt
mv gen_entitlements.txt gen_entitlements.py
chmod 777 gen_entitlements.py
ფაილის შექმნის შემდეგ, ჩავრთათ XCode და შევქმნათ პროექტი, მივუერთოთ ჩვენი აიფონი კომპს და XCode-ში დავანახოთ Device-ად.
(თუ არ იცით ეს როგორ კეთდება, უნდა შეხვიდეთ XCode მენიუში Window განყოფილებაში და აირჩიოთ Organizer, მარცხენა მენიუში მონიშნეთ თქვენი Device და მონიშვნა გაუკეთეთ "Use for development" ველზე.
ამის შემდეგ, მენიუ Project-ში მოძებნეთ "New Build Phase" და აირჩიეთ "New Run Script Build Phase", გამოსულ ფანჯარაში ჩასვით შემდეგი ტექსტი:
export CODESIGN_ALLOCATE=/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/codesign_allocate
if [ "${PLATFORM_NAME}" == "iphoneos" ]; then
/Developer/xnagamer/gen_entitlements.py "my.company.${PROJECT_NAME}" "${BUILT_PRODUCTS_DIR}/${WRAPPER_NAME}/${PROJECT_NAME}.xcent";
codesign -f -s "iPhone Developer" --entitlements "${BUILT_PRODUCTS_DIR}/${WRAPPER_NAME}/${PROJECT_NAME}.xcent" "${BUILT_PRODUCTS_DIR}/${WRAPPER_NAME}/"
fi
"${SYSTEM_DEVELOPER_DIR}/Tools/RunUnitTests" 1> /tmp/RunUnitTests.out
და დახურეთ.
დაბრუნდით ისევ Project მენიუში და აირჩიეთ "Edit Project Settings", გადადით Build ჩანართში და მოძებნეთ "Code Signing Identify" ელემენტი, ჩამოშალეთ გვერდით მნიშვნელობები და აირჩიეთ: "Don't Code Sign".
მზად არის, დაბილდეთ თქვენი აპლიკაცია და გაუშვით, თქვენს ვაშლიფონში.
პ.ს. თუ დივაისი არ გაქვთ მითითებული და გაქვთ სიმულატორი, მაშინ სკრიპტი უნდა წაშალოთ, თორემ ბილდვის დროს გავა შეცდომაზე.
ძალიან ბევრი თვლის, რომ ზოგადად აიფონის პროგრამირება შეზღუდულია, ცუდია, ნაგავია, დებილების არის მხოლოდ, შეზღუდულები არიან ვინც Objective C-ზე წერენ, XCode-ში და ა.შ., მოკლედ რა დალევს უსაქმურ და ჭოროკინა ხალხს :), ჰოდა რომ დარწმუნდეთ იმაში, რომ აიფონის პროგრამირება არანაირად არ არის შეზღუდული, თუნდაც იმ კუთხით რომ თავისუფლად შეგიძლიათ დაწეროთ აპლიკაცია და გადაიტანოთ თქვენსავე აიფონში ზედმეტი ფასიანი ლიცენზიების გარეშე, წარმოგიდგენთ პატარა მაიმუნობებს :)))
პირველ რიგში, უნდა შევქმნათ ლიცენზია საკუთარი ხელმოწერით, რასაც გამოიყენებს IOS SDK კომპილაციის დროს და არ მოითხოვს ოფიციალურად ნაყიდ 99$-იან ეფლის ლიცენზიას.
ლიცენზიის შექმნა: ჩავრთათ Keychain Access, მენიუში მოძებნეთ Certificate Assistant და შემდეგ Create a Certificate.
დასახელებაში მიუთითეთ: XNA Gamer
ტიპში: Code Signing
აღნიშვნა დასვით "Let me override defaults" ველზე
და გადადით შემდეგ ეტაპზე, ვალიდაციაში რამდენი დღეც გსურთ იმდენი მიუთითეთ, უმჯობესი იქნება ბევრი :)
ელ-ფოსტის ველი დატოვეთ ცარიელი და დაასრულეთ.
შექმნილ სერთიფიკატზე, თქვენ დაინახავთ წითლად წარწერას: "This root certificate is not trusted". ასეც უნდა იყოს.
შემდეგ ჩართეთ Terminal_ი და გაუშვით შემდეგი ბრძანება:
sudo /usr/bin/sed -i .bak 's/XCiPhoneOSCodeSignContext/XCCodeSignContext/' /Developer/Platforms/iPhoneOS.platform/Info.plist
ეს ბრძანება დააბექაფებს Info.plist ფაილს, რომელიც არის ზემოთ ხსენებულ მისამართში და დარჩენილ ფაილში ჩაანაცვლებს ტექსტ: XCiPhoneOSCodeSignContext _ს
XCCodeSignContext_ით.
რის შემდეგაც გვეძლევა საშუალება, რომ აპლიკაცია დავაკომპილოთ საკუთარი ხელმოწერის მქონე სერთიფიკატით.
პ.ს. თუ XCode ჩართული გაქვთ, უმჯობესი იქნება რომ გადატვირთოთ, ან ცოტა ხნით გათიშოთ.
შემდეგი ეტაპი არის - XCode_ს მივცეთ საშუალება დაჯეილებული ვაშლიფონებისთვის დაგვიბილდოს აპლიკაცია.
ეს არის ეგრედწოდებული პაჩი XCode-სთვის.
შემდეგი ბრძანება გავუშვათ ტერნიმალში:
sudo /usr/bin/sed -i .bak '/_REQUIRED/N;s/YES/NO/' /Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS4.3.sdk/SDKSettings.plist
(შეიძლება თქვენ სხვა ვერსია გქონდეთ დაინსტალებული SDK_სი და XCode-ის და შესაბამისად მისამართში უნდა ჩაასწოროთ რომ შეცდომაზე არ გავიდეს)
მსგავსად წინა ბრძანების, ესეც დაგვიბექაფებს კონფიგის ფაილს, და ჩაგვისწორებს მონაცემებს, რომ ხელის მოწერაზე აღარ შეამოწმოს კოდი კომპილაციის დროს.
და ბოლო ეტაპი:
cd /Developer/Platforms/iPhoneOS.platform/Developer/Library/Xcode/Plug-ins/iPhoneOS\ Build\ System\ Support.xcplugin/Contents/MacOS/
dd if=iPhoneOS\ Build\ System\ Support of=working bs=500 count=255
/bin/mv -n iPhoneOS\ Build\ System\ Support iPhoneOS\ Build\ System\ Support.original
/bin/mv working iPhoneOS\ Build\ System\ Support
chmod a+x iPhoneOS\ Build\ System\ Support
ეს ბრძანებები შეგიძლიათ ცალ-ცალკე გაუშვათ ტერნიმალიდან, ან სკრიპტის ფაილი შექმნათ და ერთიანად გაუშვათ.
---------------------
patching - ი დასრულდა.
ეხლა შეგვიძლია დავბილდოთ ნებისმიერ აპლიკაცია, და გადავიტანოთ ჩვენს აიფონში.
ოღონდ ერთი პატარა ნიუანსი, ყოველი აპლიკაციის დაწერის დროს, ყოველ პროექტზე ასე რომ ვთქვათ, დაგვჭირდება სკრიპტის დამატება პროექტში.
შევქმნათ დირექტორია და ჩავაგდოთ შიგნით სკრიპტისთვის საჭირო ფაილი:
mkdir /Developer/xnagamer
cd /Developer/xnagamer
curl -O http://www.alexwhittemore.com/iphone/gen_entitlements.txt
mv gen_entitlements.txt gen_entitlements.py
chmod 777 gen_entitlements.py
ფაილის შექმნის შემდეგ, ჩავრთათ XCode და შევქმნათ პროექტი, მივუერთოთ ჩვენი აიფონი კომპს და XCode-ში დავანახოთ Device-ად.
(თუ არ იცით ეს როგორ კეთდება, უნდა შეხვიდეთ XCode მენიუში Window განყოფილებაში და აირჩიოთ Organizer, მარცხენა მენიუში მონიშნეთ თქვენი Device და მონიშვნა გაუკეთეთ "Use for development" ველზე.
ამის შემდეგ, მენიუ Project-ში მოძებნეთ "New Build Phase" და აირჩიეთ "New Run Script Build Phase", გამოსულ ფანჯარაში ჩასვით შემდეგი ტექსტი:
export CODESIGN_ALLOCATE=/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/codesign_allocate
if [ "${PLATFORM_NAME}" == "iphoneos" ]; then
/Developer/xnagamer/gen_entitlements.py "my.company.${PROJECT_NAME}" "${BUILT_PRODUCTS_DIR}/${WRAPPER_NAME}/${PROJECT_NAME}.xcent";
codesign -f -s "iPhone Developer" --entitlements "${BUILT_PRODUCTS_DIR}/${WRAPPER_NAME}/${PROJECT_NAME}.xcent" "${BUILT_PRODUCTS_DIR}/${WRAPPER_NAME}/"
fi
"${SYSTEM_DEVELOPER_DIR}/Tools/RunUnitTests" 1> /tmp/RunUnitTests.out
და დახურეთ.
დაბრუნდით ისევ Project მენიუში და აირჩიეთ "Edit Project Settings", გადადით Build ჩანართში და მოძებნეთ "Code Signing Identify" ელემენტი, ჩამოშალეთ გვერდით მნიშვნელობები და აირჩიეთ: "Don't Code Sign".
მზად არის, დაბილდეთ თქვენი აპლიკაცია და გაუშვით, თქვენს ვაშლიფონში.
პ.ს. თუ დივაისი არ გაქვთ მითითებული და გაქვთ სიმულატორი, მაშინ სკრიპტი უნდა წაშალოთ, თორემ ბილდვის დროს გავა შეცდომაზე.
Subscribe to:
Comments (Atom)




