14 Temmuz 2016 Perşembe

XCode8 How to use CocoaPod frameworks written in Swift 2.3 (CocoaPods Lagecy Swift)

If you are developing iOS apps with using XCode8 (with Swift 3.x or Swift 2.3) but your CocoaPod project always gets compile error because of your 3rd party targets implemented in Swift 2.3, you need to set SWIFT_VERSION property in build settings to '2.3'.

For dynamic frameworks, this property shown as "Use Legacy Swift Language Version" - Yes, No.

But after every pod update, CocoaPods removes this settings from Pods project and you need to set this settings again, manually.

To acheive this problem, you can use post_install script below in your Podfile :


9 Haziran 2016 Perşembe

Jenkins xcodebuild DVTAssertions: ASSERTION FAILURE DVTFrameworks-10179/DVTFoundation/Multicore/DVTFuture.mm:365

I faced DVTAssertions: ASSERTION FAILED problem today, when I try to build iOS swift project with Jenkins.

To solve problem, I just eject the connected iPhone from Mac's USB port. Still I don't know what is the reason. Problem occured only on Jenkins, not XCode.

Full build log:

xcodebuild[4174:49484]  DVTAssertions: ASSERTION FAILURE in /Library/Caches/com.apple.xbs/Sources/DVTFrameworks/DVTFrameworks-10179/DVTFoundation/Multicore/DVTFuture.mm:365
Details:  Attempted to transition to the failed state, but did not provide an error.

    Progress:    Initial
    Result:      (null)
    Error:       (null)
    Started at:    0   -[DVTFuture init] (in DVTFoundation)
  1   -[DVTFuture initWithBlock:] (in DVTFoundation)
  2   DVTDownloadable_AsyncInstallPackages (in DVTFoundation)
  3   __61-[DVTDownloadableOperationDownload downloadableOperationMain]_block_invoke.284 (in DVTFoundation)
  4   __61-[DVTDownloadableOperationDownload downloadableOperationMain]_block_invoke.310 (in DVTFoundation)
  5   DVTDownloadable_PerformBlockWithAttachedDiskImage (in DVTFoundation)
  6   -[DVTDownloadableOperationDownload downloadableOperationMain] (in DVTFoundation)
  7   -[DVTDownloadableOperation main] (in DVTFoundation)
  8   -[__NSOperationInternal _start:] (in Foundation)
  9   __NSOQSchedule_f (in Foundation)
 10   _dispatch_client_callout (in libdispatch.dylib)
 11   _dispatch_queue_drain (in libdispatch.dylib)
 12   _dispatch_queue_invoke (in libdispatch.dylib)
 13   _dispatch_root_queue_drain (in libdispatch.dylib)
 14   _dispatch_worker_thread3 (in libdispatch.dylib)
 15   _pthread_wqthread (in libsystem_pthread.dylib)
 16   start_wqthread (in libsystem_pthread.dylib)

    Finished at: (null)
Object:   
Method:   -_internalSetState:result:error:
Thread:   {number = 22, name = (null)}
Hints: None
Backtrace:
  0   -[DVTAssertionHandler handleFailureInMethod:object:fileName:lineNumber:assertionSignature:messageFormat:arguments:] (in DVTFoundation)
  1   _DVTAssertionHandler (in DVTFoundation)
  2   _DVTAssertionFailureHandler (in DVTFoundation)
  3   -[DVTFuture _internalSetState:result:error:] (in DVTFoundation)
  4   ___Z39DVTDispatchLockPerformLockedWriterBlockIU8__strongU13block_pointerFU13block_pointerFvvEvEEDTclfp0_EEP15DVTDispatchLockT__block_invoke (in DVTFoundation)
  5   _dispatch_client_callout (in libdispatch.dylib)
  6   _dispatch_barrier_sync_f_invoke (in libdispatch.dylib)
  7   DVTDispatchBarrierSync (in DVTFoundation)
  8   -[DVTDispatchLock performLockedBlock:] (in DVTFoundation)
  9   decltype(fp0()) DVTDispatchLockPerformLockedWriterBlock(DVTDispatchLock*, void () block_pointer () block_pointer __strong) (in DVTFoundation)
 10   -[DVTFuture setState:result:error:] (in DVTFoundation)
 11   -[DVTFuture failWithError:] (in DVTFoundation)
 12   __DVTDownloadable_AsyncInstallPackages_block_invoke_2 (in DVTFoundation)
 13   __DVTDispatchAsync_block_invoke (in DVTFoundation)
 14   _dispatch_call_block_and_release (in libdispatch.dylib)
 15   _dispatch_client_callout (in libdispatch.dylib)
 16   _dispatch_root_queue_drain (in libdispatch.dylib)
 17   _dispatch_worker_thread3 (in libdispatch.dylib)
 18   _pthread_wqthread (in libsystem_pthread.dylib)
 19   start_wqthread (in libsystem_pthread.dylib)
Build step 'Xcode' marked build as failure
Finished: FAILURE

24 Ağustos 2015 Pazartesi

vmware,virtualbox sanal diskleri (vmdk) birden fazla dosyaya bölmek

VMware sanal diskleri .vmdk uzantılı dosyalarda tutuyor. İnternetten doğrudan bir sanal işletim sistemi indirmişseniz ve bunu fat32 ile formatlanmış bir usb bellekte taşıyorsanız, sanal diskinizi birden fazla dosyaya bölmeniz gerekebilir.

Bölme işlemi için kullanacağımız uygulama, vmware-vdiskmanager.exe. Yalnızca VMware player kullanıyorsanız ve bu dosya elinizde yoksa, doğrudan vmware'ın sitesinden ücretsiz olarak bu aracı edinebilirsiniz. En son http://kb.vmware.com/kb/1023856 adresinde attachments kısmındaydı.

2gb boyutunda, kullanıldıkça allocate edilen diskler için :

vmware-vdiskmanager.exe -r old.vmdk -t 1 new.vmdk

2gb boyutunda, önceden allocate edilen diskler için :

vmware-vdiskmanager.exe -r old.vmdk -t 3 new.vmdk

Disk types:
     0                   : single growable virtual disk
     1                   : growable virtual disk split in 2GB files
     2                   : preallocated virtual disk
     3                   : preallocated virtual disk split in 2GB files
     4                   : preallocated ESX-type virtual disk
     5                   : compressed disk optimized for streaming
     6                   : thin provisioned virtual disk - ESX 3.x and above


Not : .exe diyerek işlemi windows altında yaptığımı da açık etmiş oldum. Aynı uygulamanın linux versiyonu da bulunmakta.
-----

Aynı işlem VirtualBox altında;

VBoxManage clonehd old.vmdk new.vmdk --format VMDK --variant Split2G

Komutuyla yapılabiliyor.

23 Temmuz 2015 Perşembe

Linux ile rar dosyalarını açmak

Linux altında rar dosyalarını açmak için kullandığım yöntem 7zip + 7zip-rar paketi kombinasyonu.

ubuntu türevi dağıtımlarda bunu :

sudo apt-get install p7zip-full p7zip-rar

komutu sonrasında

7z e rar-file.rar

komutlarıyla gerçekleştirmek mümkün.

7z komutları listesi ise şu şekilde :


Usage: 7z <command></command> [<switches>...] <archive_name> [<file_names>...]
       [<@listfiles...>]

<commands>
  a: Add files to archive
  b: Benchmark
  d: Delete files from archive
  e: Extract files from archive (without using directory names)
  l: List contents of archive
  t: Test integrity of archive
  u: Update files to archive
  x: eXtract files with full paths
<switches>
  -ai[r[-|0]]{@listfile|!wildcard}: Include archives
  -ax[r[-|0]]{@listfile|!wildcard}: eXclude archives
  -bd: Disable percentage indicator
  -i[r[-|0]]{@listfile|!wildcard}: Include filenames
  -m{Parameters}: set compression Method
  -o{Directory}: set Output directory
  -p{Password}: set Password
  -r[-|0]: Recurse subdirectories
  -scs{UTF-8 | WIN | DOS}: set charset for list files
  -sfx[{name}]: Create SFX archive
  -si[{name}]: read data from stdin
  -slt: show technical information for l (List) command
  -so: write data to stdout
  -ssc[-]: set sensitive case mode
  -t{Type}: Set type of archive
  -u[-][p#][q#][r#][x#][y#][z#][!newArchiveName]: Update options
  -v{Size}[b|k|m|g]: Create volumes
  -w[{path}]: assign Work directory. Empty path means a temporary directory
  -x[r[-|0]]]{@listfile|!wildcard}: eXclude filenames
  -y: assume Yes on all queries

</switches></commands></file_names></archive_name></switches>

22 Temmuz 2015 Çarşamba

Mac OS Internet Recovery yükleme problemi ve f2002 hatası

Internet recovery olayına güvenerek Macbook'unuzun tüm diskini silmişseniz ve recovery ekranında bilgisayar kilitli kalıp belli bir süre sonrasında da f2002 hatası alıyorsanız, Apple'ın recovery serverına ulaşamıyorsunuz demektir.

Amerika'da olsak, sunucular ayakta olmayabilir diyebilirsiniz. Ancak Türkiye için, internet sağlayıcıdan kaynaklı bir problem olması muhtemel.

Bir superonline kullanıcısı olarak bende meydana gelen hata, superonline dns çözümleyicisinin Apple sunucularının ip adreslerini bulamıyor oluşuydu.

Çözüm için :
1 - Cep telefonunuzda kullandığınız internet ücretsizse ya da ucuzsa telefonunuzu hotspot olarak kullanarak operatörünüz üzerinden bağlantı kurmayı deneyin.

2 - Modeminizin DNS ayarlarını değiştirebiliyorsanız, OpenDNS ya da Google DNS gibi serviler üzerinden bağlantı kurmayı deneyin.

3 - Modeminiz DNS ayarlarını değiştirmeye izin vermiyorsa, (Bana verilen Huawei modeli bu şekildeydi) ağa bağlanan bir başka bilgisayarın DNS ayarlarını değiştirerek internetini ad-hoc olarak yeniden açmayı deneyin.

Kritik olan bir şekilde Apple bilgisayarınızın Apple sunucularının ip adreslerini çözümlemesini sağlamak.

Kolay gelsin.

15 Haziran 2015 Pazartesi

Git push error '[remote rejected] master -> master (branch is currently checked out)' hatası

Git push error '[remote rejected] master -> master (branch is currently checked out)' hatası

Remote repository bare repository'e çevrildiğinde bu hata sonlanıyor. Aşağıdaki komutun remote lokasyonda çalıştırılması gerekiyor.

git config --bool core.bare true

Ayrıntılı kaynak : http://stackoverflow.com/a/3251126/860189

16 Şubat 2015 Pazartesi

[.Net Framework] Kullandığım decompiler ve obfuscator

.Net Framework uygulamalarını geliştirme sırasında compile edilen dll dosyalarını incelemek için ve bu dosyaları karıştırmak için şu anda aşağıdaki uygulamaları kullanıyorum :

Decompiler : ILSpy
Obfuscator : ConfuserEx


Related Posts Plugin for WordPress, Blogger...